388 lines
26 KiB
PHP
388 lines
26 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','Encaissement');
|
|
|
|
$viewer->view('CustomDashboard.tpl');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(isset($_POST['valider'])) {
|
|
|
|
$Factures = getFacturesAndEncaissements($_POST['code_client'],$userId,$roleid);
|
|
|
|
$sumFactures = sumFactures($_POST['code_client'] , $userId , $roleid);
|
|
|
|
$sumEncaissements = sumEncaissements($_POST['code_client'], $userId , $roleid);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function result($Factures){
|
|
|
|
|
|
|
|
echo '
|
|
|
|
<tr>
|
|
|
|
<td style="text-align:center;">'.$Factures['libelle'].'</td>
|
|
|
|
<td style="text-align:center;">'.$Factures['date'].'</td>
|
|
|
|
<td id="credit" style="text-align:center;">';if($Factures['libelle'] == "Encaissement"){ echo number_format($Factures['total'],2,',','.');}else{echo "0";} echo'</td>
|
|
|
|
<td id="debit" style="text-align:center;">';if($Factures['libelle'] == "Facture"){echo number_format($Factures['total'],2,',','.');}else{echo "0";} echo'</td>
|
|
|
|
</tr> ';
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getFacturesAndEncaissements($idClient,$idUser,$roleid){
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
if ($_POST['dateF'] != null && $_POST['dateD'] != null ) {
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT invoiceid as id , inv.invoicedate as date,inv.total as total ,'Facture' as libelle FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.setype='Invoice' and inv.accountid=".$idClient." and CAST(crm.createdtime as date) >= '".$_POST['dateD']."' and CAST(crm.createdtime as date) <= '".$_POST['dateF']."' UNION SELECT code_encaissement as id , date_encaissement as date ,montant as total ,'Encaissement' as libelle FROM encaissement WHERE code_client =".$idClient." and CAST(dateTime_creation as date) >= '".$_POST['dateD']."' and CAST(dateTime_creation as date) <= '".$_POST['dateF']."' Order by date";
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
$query1 = "SELECT invoiceid as id , inv.invoicedate as date,inv.total as total ,'Facture' as libelle FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.smownerid=".$idUser." and crm.setype='Invoice' and inv.accountid=".$idClient." and CAST(crm.createdtime as date) >= '".$_POST['dateD']."' and CAST(crm.createdtime as date) <= '".$_POST['dateF']."' UNION SELECT code_encaissement as id , date_encaissement as date ,montant as total ,'Encaissement' as libelle FROM encaissement WHERE code_client =".$idClient." and user_id=".$idUser." and CAST(dateTime_creation as date) >= '".$_POST['dateD']."' and CAST(dateTime_creation as date) <= '".$_POST['dateF']."' Order by date";
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT invoiceid as id , inv.invoicedate as date,inv.total as total ,'Facture' as libelle FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.setype='Invoice' and inv.accountid=".$idClient." UNION SELECT code_encaissement as id , date_encaissement as date ,montant as total ,'Encaissement' as libelle FROM encaissement WHERE code_client =".$idClient." Order by date";
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
$query1 = "SELECT invoiceid as id , inv.invoicedate as date,inv.total as total ,'Facture' as libelle FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.smownerid=".$idUser." and crm.setype='Invoice' and inv.accountid=".$idClient." UNION SELECT code_encaissement as id , date_encaissement as date ,montant as total ,'Encaissement' as libelle FROM encaissement WHERE code_client =".$idClient." and user_id=".$idUser." Order by date";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$sql_get_result1 = $adb->query($query1);
|
|
|
|
$Factures = array();
|
|
|
|
|
|
|
|
while ($recordinfo = $adb->fetch_array($sql_get_result1)) {
|
|
|
|
$Factures[] = $recordinfo;
|
|
|
|
}
|
|
|
|
return $Factures;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function sumEncaissements($idClient , $idUser ,$roleid){
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
if ($_POST['dateF'] != null && $_POST['dateD'] != null ) {
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT sum(montant) as total FROM encaissement WHERE code_client =".$idClient." and CAST(dateTime_creation as date) >= '".$_POST['dateD']."' and CAST(dateTime_creation as date) <= '".$_POST['dateF']."'";
|
|
|
|
}else{
|
|
|
|
$query1 = "SELECT sum(montant) as total FROM encaissement WHERE code_client =".$idClient." and user_id=".$idUser." and CAST(dateTime_creation as date) >= '".$_POST['dateD']."' and CAST(dateTime_creation as date) <= '".$_POST['dateF']."'";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else{
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT sum(montant) as total FROM encaissement WHERE code_client ='".$idClient."' ";
|
|
|
|
|
|
|
|
}else{
|
|
|
|
$query1 = "SELECT sum(montant) as total FROM encaissement WHERE code_client =".$idClient." and user_id=".$idUser." ";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$sql_get_result1 = $adb->query($query1);
|
|
|
|
$sumEncaissements = array();
|
|
|
|
|
|
|
|
while ($recordinfo = $adb->fetch_array($sql_get_result1)) {
|
|
|
|
$sumEncaissements[] = $recordinfo;
|
|
|
|
}
|
|
|
|
return $sumEncaissements;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function sumFactures($idClient , $idUser , $roleid){
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
if ($_POST['dateF'] != null && $_POST['dateD'] != null ) {
|
|
|
|
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT sum(inv.total) as total FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.setype='Invoice' and inv.accountid=".$idClient." and CAST(crm.createdtime as date) >= '".$_POST['dateD']."' and CAST(crm.createdtime as date) <= '".$_POST['dateF']."'";
|
|
|
|
}else{
|
|
|
|
$query1 = "SELECT sum(inv.total) as total FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.smownerid=".$idUser." and crm.setype='Invoice' and inv.accountid=".$idClient." and CAST(crm.createdtime as date) >= '".$_POST['dateD']."' and CAST(crm.createdtime as date) <= '".$_POST['dateF']."'";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
if(isDG($roleid)){
|
|
|
|
$query1 = "SELECT sum(inv.total) as total FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.setype='Invoice' and inv.accountid=".$idClient." ";
|
|
|
|
}else{
|
|
|
|
$query1 = "SELECT sum(inv.total) as total FROM vtiger_crmentity crm JOIN vtiger_invoice inv ON inv.invoiceid = crm.crmid and crm.deleted=0 and crm.smownerid=".$idUser." and crm.setype='Invoice' and inv.accountid=".$idClient." ";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$sql_get_result1 = $adb->query($query1);
|
|
|
|
$sumFactures = array();
|
|
|
|
|
|
|
|
while ($recordinfo = $adb->fetch_array($sql_get_result1)) {
|
|
|
|
$sumFactures[] = $recordinfo;
|
|
|
|
}
|
|
|
|
return $sumFactures;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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 '
|
|
|
|
<form action="index.php?module=EncaissementBalance&view=EncaissementBalance" method="post">
|
|
|
|
<div class="main-container main-container-Accounts">
|
|
|
|
<div class="container-fluid" style="margin:15px 15px 15px 15px;">
|
|
|
|
<div class=" detailview-header-block">
|
|
|
|
<div class="row" >
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
<label for="client">Client  </label>
|
|
|
|
<select class="js-example-basic-single form-control" name="code_client" required>
|
|
|
|
<option value=""></option>';
|
|
|
|
$Grossistes=getAllGrossiste();
|
|
|
|
foreach ($Grossistes as $Grossiste) {
|
|
|
|
|
|
|
|
echo '<option value="'.$Grossiste['accountid'].'">'.$Grossiste['accountname'].'</option>';
|
|
|
|
}
|
|
|
|
echo '
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-3" >
|
|
|
|
<label for="DateD">Date début</label>
|
|
|
|
<input class="form-control" type="date" id="dateD" name="dateD">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
<label for="DateF">Date fin</label>
|
|
|
|
<input class="form-control" type="date" id="dateF" name="dateF">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
<button type="submit" name="valider" class="btn btn-success saveButton" style="margin-top:21px;"> Valider</button>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<div class=" detailview-header-block" style="margin-top:15px;">
|
|
|
|
<div class="row" style="margin: 5px 0px 0px 0px;">
|
|
|
|
<div class="col">
|
|
|
|
|
|
|
|
<table class="js-dynamitable table table-bordered" >
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<th>Libellé<span class="js-sorter-desc glyphicon glyphicon-chevron-down pull-right"></span> <span class="js-sorter-asc glyphicon glyphicon-chevron-up pull-right"></span> </th>
|
|
|
|
<th>Date</th>
|
|
|
|
<th>Débit<span class="js-sorter-desc glyphicon glyphicon-chevron-down pull-right"></span> <span class="js-sorter-asc glyphicon glyphicon-chevron-up pull-right"></span> </th>
|
|
|
|
<th>Crédit<span class="js-sorter-desc glyphicon glyphicon-chevron-down pull-right"></span> <span class="js-sorter-asc glyphicon glyphicon-chevron-up pull-right"></span> </th>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<th><input class="js-filter form-control" type="text" value=""></th>
|
|
|
|
<th><input class="js-filter form-control" type="text" value=""></th>
|
|
|
|
<th><input class="js-filter form-control" type="text" value=""></th>
|
|
|
|
<th><input class="js-filter form-control" type="text" value=""></th>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>';
|
|
|
|
if (sizeof($Factures) > 0) {
|
|
|
|
foreach ($Factures as $Factures) {
|
|
|
|
result($Factures);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
echo '</tbody>
|
|
|
|
<tfoot>
|
|
|
|
<tr>
|
|
|
|
<td></td>
|
|
|
|
<td style="font-weight:bold; text-align:center; font-size: 15px;">Solde</td>
|
|
|
|
<td style="font-weight:bold; text-align:center; font-size: 15px;">'.number_format($sumEncaissements[0]['total'],2,',','.').'</td>
|
|
|
|
<td style="font-weight:bold; text-align:center; font-size: 15px;">'.number_format($sumFactures[0]['total'],2,',','.').'</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td></td>
|
|
|
|
<td></td>
|
|
|
|
<td style="font-weight:bold; text-align:center; font-size: 15px;">Total</td>
|
|
|
|
<td style="font-weight:bold; text-align:center; font-size: 15px;">'.number_format( $sumEncaissements[0]['total'] - $sumFactures[0]['total'] ,2,',','.').'</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
</tfoot>';
|
|
|
|
}
|
|
|
|
echo '</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>';
|
|
|
|
|
|
|
|
|
|
|
|
$viewer->view('CustomDashboardFooter.tpl');
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- script pour liste déroulante -->
|
|
|
|
<script>
|
|
|
|
$(document).ready(function() {
|
|
|
|
$('.js-example-basic-single').select2();
|
|
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(function() {
|
|
|
|
|
|
|
|
var TotalValue = 0;
|
|
|
|
|
|
|
|
$("tr #debit").each(function(index,value){
|
|
|
|
currentRow = parseFloat($(this).text());
|
|
|
|
TotalValue += currentRow
|
|
|
|
});
|
|
|
|
|
|
|
|
document.getElementById('solde1').innerHTML = TotalValue;
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
$(function() {
|
|
|
|
|
|
|
|
|
|
|
|
var TotalValue2 = 0;
|
|
|
|
|
|
|
|
$("tr #credit").each(function(index,value){
|
|
|
|
currentRow2 = parseFloat($(this).text());
|
|
|
|
TotalValue2 += currentRow2
|
|
|
|
});
|
|
|
|
|
|
|
|
document.getElementById('solde2').innerHTML = TotalValue2;
|
|
|
|
|
|
|
|
});
|
|
|
|
</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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- dynamitable pour le filtre-->
|
|
|
|
<script>
|
|
|
|
! function (t) {
|
|
|
|
"use strict";
|
|
|
|
t.fn.dynamitable = function (e) {
|
|
|
|
var n = this,
|
|
|
|
i = new function (t) {
|
|
|
|
this.getIndex = function (t) {
|
|
|
|
return t.parents("tr").children("td, th").index(t)
|
|
|
|
}, this.getBody = function () {
|
|
|
|
return t.find("tbody")
|
|
|
|
}, this.getRows = function () {
|
|
|
|
return this.getBody().children("tr")
|
|
|
|
}, this.getField = function (t, e) {
|
|
|
|
return e.children("td, th").eq(t)
|
|
|
|
}, this.getValue = function (t, e) {
|
|
|
|
return this.getField(t, e).text()
|
|
|
|
}
|
|
|
|
}(t(this));
|
|
|
|
return this.filterList = [], this.displayAll = function () {
|
|
|
|
return i.getRows().each(function () {
|
|
|
|
t(this).show()
|
|
|
|
}), this
|
|
|
|
}, this.filter = function (e, n) {
|
|
|
|
var r = new RegExp(n, "i");
|
|
|
|
return i.getRows().each(function () {
|
|
|
|
!0 !== r.test(i.getValue(e, t(this))) && t(this).hide()
|
|
|
|
}), this
|
|
|
|
}, this.addFilter = function (e) {
|
|
|
|
n.filterList.push(e);
|
|
|
|
var r = function () {
|
|
|
|
n.displayAll(), t(n.filterList).each(function (e, r) {
|
|
|
|
t(n).find(r).each(function () {
|
|
|
|
var e = t(this);
|
|
|
|
n.filter(i.getIndex(e.parent("td, th")), e.val())
|
|
|
|
})
|
|
|
|
})
|
|
|
|
};
|
|
|
|
return t(e).on("change keyup keydown", r), r(), this
|
|
|
|
}, this.addSorter = function (e, r) {
|
|
|
|
return t(n).find(e).each(function () {
|
|
|
|
var e = t(this),
|
|
|
|
s = i.getIndex(e.parent("td, th"));
|
|
|
|
e.on("click", function () {
|
|
|
|
n.sorter(s, r)
|
|
|
|
})
|
|
|
|
}), this
|
|
|
|
}, this.sorter = function (e, n) {
|
|
|
|
return i.getBody().append(i.getRows().detach().sort(function (r, s) {
|
|
|
|
var d = i.getValue(e, t(r)),
|
|
|
|
a = i.getValue(e, t(s)),
|
|
|
|
c = "desc" === n ? !0 : !1;
|
|
|
|
return "" !== d.replace(/[^\d-]/g, "") && "" !== a.replace(/[^\d-]/g, "") && (d = parseFloat(d.replace(/[^\d,.-]/g, "")), a = parseFloat(a.replace(/[^\d,.-]/g, ""))), d === a ? 0 : d > a ? c ? 1 : -1 : c ? -1 : 1
|
|
|
|
})), this
|
|
|
|
}, this
|
|
|
|
}, t(document).find(".js-dynamitable").each(function () {
|
|
|
|
t(this).dynamitable().addFilter(".js-filter").addSorter(".js-sorter-asc", "asc").addSorter(".js-sorter-desc", "desc")
|
|
|
|
})
|
|
|
|
}(jQuery);
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
</html>
|