Files
CRM/EncaissementAjouter.php
BACHIR SOULDI 2794e62571 first commit
2025-09-28 08:49:37 +01:00

378 lines
22 KiB
PHP

<?php
require_once 'include/utils/utils.php';
require_once 'includes/Loader.php';
vimport ('includes.runtime.EntryPoint');
require_once 'SUtiles.php';
@session_start();
global $adb;
$current_user = Users_Record_Model::getCurrentUserModel();
$roleid = $current_user->get('roleid');
$userId = $current_user->get('id');
$viewer = new Vtiger_Viewer();
$viewer->assign('MODULE', 'Home');
$viewer->assign('SELECTED_MENU_CATEGORY', 'MARKETING');
$viewer->assign('COMPANY_LOGO', Vtiger_CompanyDetails_Model::getInstanceById()->getLogo());
$viewer->assign('COMPANY_DETAILS_SETTINGS',new Settings_Vtiger_CompanyDetails_Model());
$viewer->assign('USER_MODEL', $current_user);
$viewer->assign('CURRENT_USER_MODEL', $current_user);
$viewer->assign('PAGETITLE','Ajouter Encaissement ');
$viewer->view('CustomDashboard.tpl');
if(isset($_POST['saveEncaissement'])) {
//uploaded File
$lien = null;
if($_FILES['image']['name'] != ""){
$file_name = $_FILES['image']['name'];
$file_tmp =$_FILES['image']['tmp_name'];
$ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
$datetime = date("Ymdhis");
$extensionToMinuscule = strtolower($ext);
$lien="file_upload/".$datetime.".".$extensionToMinuscule;
$valid_ext = array("png","jpeg","jpg" ,"gif");
if(in_array($ext, $valid_ext)){
move_uploaded_file($file_tmp,$lien);
}
}
$dateTime_creation = date("Y-m-d h:i:s", strtotime('1 hour'));
$commentaire = isset($_POST['commentaire']) ? $_POST['commentaire'] : null ;
$sql3 = 'INSERT INTO `encaissement` (`code_client` , `type_encaissement`, `numero_transaction`, `banque`, `montant`,`date_reception`,
`date_paiement`,`statut`,`image_lien`,`date_encaissement`,`user_id`,`dateTime_creation` , `commentaire`)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)';
$params3 = array($_POST['code_client'] ,
$_POST['type_encaissement'] ,
$_POST['numero_transaction'] ,
$_POST['banque'] ,
$_POST['montant'] ,
$_POST['date_reception'] ,
$_POST['date_paiement'] ,
$_POST['statut'] ,
$lien ,
$_POST['date_encaissement'] ,
$userId ,
$dateTime_creation ,
$commentaire
);
$adb->pquery($sql3, $params3);
$last_id = $adb->getLastInsertID();
$sql4 = 'INSERT INTO `encaissement_facture` (`code_encaissement` , `date_echeance`, `numero_facture`) VALUES(?,?,?)';
$params4 = array($last_id ,
$_POST['date_echeance'] ,
$_POST['numero_facture']
);
$adb->pquery($sql4, $params4);
unset($_POST);
header("Location: index.php?module=Encaissement&view=Encaissement");
}
function getAllGrossiste(){
global $adb;
$query5 = "SELECT accountid,accountname FROM `vtiger_account` WHERE `industry`='grossiste' ";
$result5 =$adb->query($query5);
$Grossistes=array();
while ($recordinfo = $adb->fetch_array($result5)) {
$Grossistes[] = $recordinfo;
}
return $Grossistes;
}
echo'
<div class="main-container main-container-Accounts">
<form id="EncaissementForm" action="?module=EncaissementAjouter&view=EncaissementAjouter" method="post" enctype="multipart/form-data">
<div class="container-fluid" style="margin:15px 15px 15px 15px;">
<div class=" detailview-header-block">
<div class="fieldBlockContainer" data-block="LBL_ADDRESS_INFORMATION">
<h4 class="fieldBlockHeader">Details Encaissement</h4>
<hr>
<table class="table table-borderless addressBlock">
<tbody>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span> Client&nbsp;&nbsp;</td>
<td class="fieldValue">
<select class="js-example-basic-single form-control" style="width:200px;" name="code_client" required>
<option value=""></option>';
$Grossistes=getAllGrossiste();
foreach ($Grossistes as $Grossiste) {
echo '<option value="'.$Grossiste['accountid'].'">'.$Grossiste['accountname'].'</option>';
}
echo '
</select>
</td>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Type encaissement&nbsp;&nbsp;</td>
<td class="fieldValue">
<select class="js-example-basic-single form-control" style="width:200px;" name="type_encaissement" required>
<option value=""></option>
<option value="Cheque">Cheque</option>
<option value="Espece">Espece</option>
<option value="Virement">Virement</option>
<option value="Traite">Traite</option>
</select>
</td>
</tr>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>N° Transaction&nbsp;</td>
<td class="fieldValue"><input type="text" class="inputElement " name="numero_transaction" autocomplete="off" required></td>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Banque&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="text" class="inputElement " name="banque" autocomplete="off" required></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Date réception&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="date" class="inputElement " name="date_reception" required></td>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Date paiement&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="date" class="inputElement " name="date_paiement" required></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Date échéance&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="date" class="inputElement " name="date_echeance" required></td>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Date Encaissement&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="date" class="inputElement " name="date_encaissement" required></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Statut&nbsp;&nbsp;</td>
<td class="fieldValue">
<select class="js-example-basic-single form-control" style="width:200px;" name="statut" required>
<option value=""></option>
<option value="Encaisse">Encaissé</option>
<option value="Rejete">Rejeté</option>
</select>
</td>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>N° facture&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="text" class="inputElement " name="numero_facture" autocomplete="off" required></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle"><span class="redColor">*</span>Montant&nbsp;&nbsp;</td>
<td class="fieldValue"><input type="number" class="inputElement" step="any" name="montant" min="0" required></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle">Commentaire&nbsp;&nbsp;</td>
<td class="fieldValue" colspan="3"><textarea class="inputElement textAreaElement col-lg-12" name="commentaire" rows="3" cols="3"></textarea></td>
</tr>
<tr>
<td class="fieldLabel alignMiddle">Image/Photo&nbsp;&nbsp;</td>
<td class="fieldValue">
<div class="fileUploadContainer text-left">
<div class="fileUploadBtn btn btn-primary">
<span><i class="fa fa-laptop"></i> Télécharger</span>
<input onchange="ValidateSize(this)" type="file" class="inputElement " name="image" value="" accept="image/*" >
</div>
<div class="uploadedFileDetails ">
<div class="uploadedFileSize">
</div>
<div class="uploadedFileName"></div>
</div>
</div>
<div class="redColor" id="message"></div>
</td>
</tr>
</tbody>
</table>
<div><img id="output" /></div>
</div>
</div>
</div>
</div>
<div class="modal-overlay-footer" style="border-left: 42px solid #efefef;">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12 ">
<button class="btn btn-success saveButton" type="submit" name="saveEncaissement" id="buttonEnregistrer" value="saveEncaissement" >Enregistrer</button>
<a class="cancelLink" href="javascript:history.back()" type="reset">Annuler</a>
</div>
</div>
</div>
</form>';
$viewer->view('CustomDashboardFooter.tpl');
?>
<!-- script pour liste déroulante -->
<script>
$(document).ready(function() {
$('.js-example-basic-single').select2();
});
$(document).ready(function() {
$('.js-example-basic-multiple').select2();
});
function cacherButtonEnregistrer(){
$("#buttonEnregistrer").hide();
}
function ValidateSize(file) {
var FileSize = file.files[0].size / 1024 / 1024; // in MB
var extension = file.files[0].type;
if (extension == "image/jpeg" || extension == "image/jpg" || extension == "image/png" ) {
if (FileSize > 3 ) {
alert('Taille maximum autorisée 3 MB');
}else{
document.getElementById("message").textContent = file.files[0].name;
var reader = new FileReader();
reader.onload = function(){
var output = document.getElementById('output');
output.src = reader.result;
};
reader.readAsDataURL(event.target.files[0]);
output.style.width = "560px";
}
}else{ alert('Vérifier le format du fichier');}
}
</script>
<script type="text/javascript" src="layouts/v7/lib/jquery/purl.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/select2/select2.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery.class.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery-ui-1.11.3.custom/jquery-ui.js"></script>
<script type="text/javascript" src="layouts/v7/lib/todc/js/bootstrap.min.js"></script>
<script type="text/javascript" src="libraries/jquery/jstorage.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery-validation/jquery.validate.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery.slimscroll.min.js"></script>
<script type="text/javascript" src="libraries/jquery/jquery.ba-outside-events.min.js"></script>
<script type="text/javascript" src="libraries/jquery/defunkt-jquery-pjax/jquery.pjax.js"></script>
<script type="text/javascript" src="libraries/jquery/multiplefileupload/jquery_MultiFile.js"></script>
<script type="text/javascript" src="resources/jquery.additions.js"></script>
<script type="text/javascript" src="layouts/v7/lib/bootstrap-notify/bootstrap-notify.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/websockets/reconnecting-websocket.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery-play-sound/jquery.playSound.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/malihu-custom-scrollbar/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/malihu-custom-scrollbar/jquery.mCustomScrollbar.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/autoComplete/jquery.textcomplete.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery.qtip.custom/jquery.qtip.js"></script>
<script type="text/javascript" src="libraries/jquery/jquery-visibility.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/momentjs/moment.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/daterangepicker/moment.min.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/daterangepicker/jquery.daterangepicker.js"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/jquery.timeago.js"></script>
<script type="text/javascript" src="libraries/jquery/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="libraries/jquery/ckeditor/adapters/jquery.js"></script>
<script type='text/javascript' src='layouts/v7/lib/anchorme_js/anchorme.min.js'></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Class.js?v=7.1.0"></script>
<script type='text/javascript' src="layouts/v7/resources/helper.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/resources/application.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Utils.js?v=7.1.0"></script>
<script type='text/javascript' src="layouts/v7/modules/Vtiger/resources/validation.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/bootbox/bootbox.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Base.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Vtiger.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Calendar/resources/TaskManagement.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Import/resources/Import.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Emails/resources/EmailPreview.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Base.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Google/resources/Settings.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/CkEditor.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Documents/resources/Documents.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/bootstrap/js/eternicode-bootstrap-datepicker/js/bootstrap-datepicker.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/bootstrap/js/eternicode-bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/timepicker/jquery.timepicker.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/lazyYT/lazyYT.min.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Header.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Edit.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Popup.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Field.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jquery_windowmsg.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/BasicSearch.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/AdvanceFilter.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/SearchAdvanceFilter.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/AdvanceSearch.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/BaseList.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/List.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/AdvanceSearchList.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/RecordSelectTracker.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Pagination.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Import/resources/Popup.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Emails/resources/MassEdit.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/EmailsRelatedPopup.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/sadropdown.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/posabsolute-jQuery-Validation-Engine/js/languages/jquery.validationEngine-fr.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Vtiger.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jquery.stickytableheaders.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/gridster/jquery.gridster.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/jquery.jqplot.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.canvasTextRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.pieRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.barRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.categoryAxisRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.pointLabels.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.funnelRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/jqplot/plugins/jqplot.logAxisRenderer.min.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/VtJqplotInterface.js?v=7.1.0"></script>
<script type="text/javascript" src="libraries/jquery/vtchart.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/jquery/gridster/jquery.gridster.min.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/DashBoard.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/dashboards/Widget.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/Detail.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Reports/resources/Detail.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Reports/resources/ChartDetail.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/modules/Vtiger/resources/CkEditor.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/bootstrap-daterangepicker/moment.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/lib/bootstrap-daterangepicker/daterangepicker.js?v=7.1.0"></script>
<script type="text/javascript" src="layouts/v7/resources/v7_client_compat.js?v=7.1.0"></script>
<!-- Added in the end since it should be after less file loaded -->
<script type="text/javascript" src="libraries/bootstrap/js/less.min.js"></script>
<!-- Enable tracking pageload time -->
<script type="text/javascript">var _REQSTARTTIME = "1589749969";
jQuery(document).ready(function() {
window._PAGEREADYAT = new Date();
}
);
jQuery(window).load(function() {
window._PAGELOADAT = new Date();
window._PAGELOADREQSENT = false;
// Transmit the information to server about page render time now.
if (typeof _REQSTARTTIME != 'undefined') {
// Work with time converting it to GMT (assuming _REQSTARTTIME set by server is also in GMT)
var _PAGEREADYTIME = _PAGEREADYAT.getTime() / 1000.0;
// seconds
var _PAGELOADTIME = _PAGELOADAT.getTime() / 1000.0;
// seconds
var data = {
page_request: _REQSTARTTIME, page_ready: _PAGEREADYTIME, page_load: _PAGELOADTIME };
data['page_xfer'] = (_PAGELOADTIME - _REQSTARTTIME).toFixed(3);
data['client_tzoffset']= -1*_PAGELOADAT.getTimezoneOffset()*60;
data['client_now'] = JSON.parse(JSON.stringify(new Date()));
if (!window._PAGELOADREQSENT) {
// To overcome duplicate firing on Chrome
window._PAGELOADREQSENT = true;
}
}
}
);
</script>
</html>