391 lines
24 KiB
PHP
391 lines
24 KiB
PHP
<?php
|
|
|
|
|
|
|
|
require_once 'include/utils/utils.php';
|
|
|
|
require_once 'includes/Loader.php';
|
|
|
|
require_once 'SUtiles.php';
|
|
|
|
vimport ('includes.runtime.EntryPoint');
|
|
|
|
|
|
|
|
|
|
|
|
global $current_user;
|
|
|
|
$current_user = Users_Record_Model::getCurrentUserModel();
|
|
|
|
$roleid = $current_user->get('roleid');
|
|
|
|
$userId = $current_user->get('id');
|
|
|
|
$viewer = new Vtiger_Viewer();
|
|
|
|
|
|
|
|
$viewer->assign('CURRENTDATE', Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j')));
|
|
|
|
$viewer->assign('MODULE', 'Home');
|
|
|
|
$viewer->assign('MODULE_NAME', 'Home');
|
|
|
|
$viewer->assign('QUALIFIED_MODULE', 'Home');
|
|
|
|
$viewer->assign('PARENT_MODULE', '');
|
|
|
|
$viewer->assign('VIEW', 'DashBoard');
|
|
|
|
$menuModelsList = Vtiger_Menu_Model::getAll(true);
|
|
|
|
$menuStructure = Vtiger_MenuStructure_Model::getInstanceFromMenuList($menuModelsList, 'Home');
|
|
|
|
uksort($menuModelsList, array('Vtiger_MenuStructure_Model', 'sortMenuItemsByProcess'));
|
|
|
|
$viewer->assign('SELECTED_MENU_CATEGORY', 'MARKETING');
|
|
|
|
$viewer->assign('SELECTED_MENU_CATEGORY_LABEL', 'Tableau de bord');
|
|
|
|
//$viewer->assign('SELECTED_CATEGORY_MENU_LIST', $menuGroupedByParent['MARKETING']);
|
|
|
|
$viewer->assign('MENUS', $menuModelsList);
|
|
|
|
$viewer->assign('QUICK_CREATE_MODULES', Vtiger_Menu_Model::getAllForQuickCreate());
|
|
|
|
$viewer->assign('MENU_STRUCTURE', $menuStructure);
|
|
|
|
$viewer->assign('MENU_SELECTED_MODULENAME', 'Home');
|
|
|
|
$viewer->assign('MENU_TOPITEMS_LIMIT', $menuStructure->getLimit());
|
|
|
|
$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);
|
|
|
|
require_once 'libraries/csrf-magic/csrf-magic.php';
|
|
|
|
$viewer->assign('HOME_MODULE_MODEL', Vtiger_Module_Model::getInstance('Home'));
|
|
|
|
$viewer->assign('HEADER_LINKS', Vtiger_Header_View::getHeaderLinks());
|
|
|
|
$viewer->assign('ANNOUNCEMENT', Vtiger_Header_View::getAnnouncement());
|
|
|
|
$viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules());
|
|
|
|
$viewer->assign('INVENTORY_MODULES', getInventoryModules());
|
|
|
|
$viewer->assign('PAGETITLE','Tableau de bord');
|
|
|
|
$viewer->assign('LANGUAGE_STRINGS', Vtiger_Language_Handler::export('Home', 'jsLanguageStrings'));
|
|
|
|
$viewer->view('CustomDashboard.tpl');
|
|
|
|
|
|
|
|
//get year
|
|
|
|
$currentDate = new DateTime();
|
|
|
|
$year = $currentDate->format("Y");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getPicklistPack(){
|
|
|
|
global $adb;
|
|
|
|
$query = "SELECT potentialid ,potentialname,accountname
|
|
|
|
FROM vtiger_potential , vtiger_account
|
|
|
|
WHERE vtiger_potential.related_to = vtiger_account.accountid
|
|
|
|
ORDER BY `vtiger_potential`.`potentialid` DESC";
|
|
|
|
$result =$adb->query($query);
|
|
|
|
|
|
|
|
$res=array();
|
|
|
|
while ($recordinfo = $adb->fetch_array($result)) {
|
|
|
|
$res[] = $recordinfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $res;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getResult($packs,$datedeb,$datefin){
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
$filtre_values = array();
|
|
|
|
$packs = isset($packs) ? array_push($filtre_values," vtiger_salesorder.potentialid IN (" . implode(',', $packs) . ")") : "";
|
|
|
|
$datedeb = $datedeb <> '' ? array_push($filtre_values,"vtiger_salesorder.duedate >= '".$datedeb."'") : "";
|
|
|
|
$datefin = $datefin <> '' ? array_push($filtre_values,"vtiger_salesorder.duedate <= '".$datefin."'") : "";
|
|
|
|
|
|
|
|
|
|
|
|
if(count($filtre_values) > 0){
|
|
|
|
$sql=" and ".implode(" and ",$filtre_values);
|
|
|
|
|
|
|
|
}else{
|
|
|
|
$sql = "";
|
|
|
|
}
|
|
|
|
|
|
|
|
$query = "SELECT vtiger_account.accountname as compte,cf_854 as grossistes,vtiger_salesorder.subtotal as chiffre_affaire ,
|
|
|
|
vtiger_salesorder.discount_percent as remise_percent, acf.cf_992 as accountwilay
|
|
|
|
,vtiger_salesorder.potentialid as pack_id ,cf_1125 as ba1 , cf_1131 as ba2 , cf_1129 as tba1 ,
|
|
|
|
cf_1133 as tba2 ,cf_1127 as avoir , vtiger_potential.potentialname as pack_name,
|
|
|
|
vtiger_salesorder.salesorderid ,CONCAT(vtiger_users.first_name ,' ', vtiger_users.last_name) as fullname, vtiger_salesorder.duedate
|
|
|
|
FROM vtiger_crmentity
|
|
|
|
LEFT JOIN vtiger_salesorder ON (vtiger_salesorder.salesorderid = vtiger_crmentity.crmid )
|
|
|
|
LEFT JOIN vtiger_salesordercf ON (vtiger_salesordercf.salesorderid = vtiger_crmentity.crmid )
|
|
|
|
LEFT JOIN vtiger_account ON (vtiger_salesorder.accountid = vtiger_account.accountid )
|
|
|
|
LEFT JOIN vtiger_accountscf acf ON (acf.accountid = vtiger_account.accountid)
|
|
|
|
LEFT JOIN vtiger_potential ON (vtiger_salesorder.potentialid = vtiger_potential.potentialid )
|
|
|
|
and (vtiger_crmentity.crmid = vtiger_salesorder.salesorderid )
|
|
|
|
LEFT JOIN vtiger_users ON (vtiger_crmentity.smownerid = vtiger_users.id )
|
|
|
|
WHERE vtiger_salesorder.potentialid <> 0
|
|
|
|
and vtiger_salesorder.discount_percent > 0 and vtiger_crmentity.deleted = 0
|
|
|
|
".$sql;
|
|
|
|
|
|
|
|
$result =$adb->query($query);
|
|
|
|
|
|
|
|
$res=array();
|
|
|
|
while ($recordinfo = $adb->fetch_array($result)) {
|
|
|
|
$res[] = $recordinfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $res;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(isset($_POST['save'])){
|
|
|
|
$packs = $_POST['packs'];
|
|
|
|
$datedeb = $_POST['datedeb'];
|
|
|
|
$datefin = $_POST['datefin'];
|
|
|
|
$result = getResult($packs,$datedeb,$datefin);
|
|
|
|
}else{
|
|
|
|
$result = getResult(null,null,null);
|
|
|
|
}
|
|
|
|
|
|
|
|
$rows = count($result);
|
|
|
|
|
|
|
|
echo '
|
|
|
|
|
|
|
|
<div class="main-container main-container-Accounts">
|
|
|
|
<div id="scrollbar" style="margin:15px 15px 15px 15px; border:1px solid #ecf0f1; overflow-y: scroll; overflow-x: scroll; height: 100% ;border:1px solid #bdc3c7;">
|
|
|
|
|
|
|
|
<button type="button" onclick=\'exportThisWithParameter("tabcenter", "Suivi_Pack.xls")\' class="btn btn-success">Exporter Vers Excel</button>
|
|
|
|
|
|
|
|
<div style="text-align: center ;">
|
|
|
|
<div style="display: inline; text-align: center ;font-size: 24px;">Suivi Pack ( '; echo $rows ; echo ' )</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
|
|
|
<form action="?module=MonitoringPack&view=MonitoringPack" method="post" enctype="multipart/form-data">
|
|
|
|
<div class="form-row">
|
|
|
|
<div class="form-group col-md-6">
|
|
|
|
<label for="inputState">Pack</label>
|
|
|
|
<select class="js-example-basic-multiple form-control" name="packs[]" multiple="multiple">';
|
|
|
|
$Packs = getPicklistPack();
|
|
|
|
if(isset($_POST['packs'])){
|
|
|
|
foreach ($Packs as $Pack) {
|
|
|
|
if (in_array($Pack['potentialid'], $_POST['packs'])) {
|
|
|
|
echo '<option value="'.$Pack['potentialid'].'" selected>'.$Pack['potentialname'].' >> '.$Pack['accountname'].'</option>';
|
|
|
|
}else{
|
|
|
|
echo '<option value="'.$Pack['potentialid'].'" >'.$Pack['potentialname'].' >> '.$Pack['accountname'].'</option>';
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
foreach ($Packs as $Pack) {
|
|
|
|
echo '<option value="'.$Pack['potentialid'].'" >'.$Pack['potentialname'].' >> '.$Pack['accountname'].'</option>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
echo '</select>
|
|
|
|
</div>
|
|
|
|
<div class="form-group col-md-3">
|
|
|
|
<label for="inputState">Date debut</label>
|
|
|
|
<input id="datedeb" name="datedeb" type="date" class="form-control" '; if(isset($_POST['datedeb'])) echo "value=".$_POST['datedeb']; echo '>
|
|
|
|
</div>
|
|
|
|
<div class="form-group col-md-3">
|
|
|
|
<label for="inputState">Date fin</label>
|
|
|
|
<input id="datefin" name="datefin" type="date" class="form-control" '; if(isset($_POST['datefin'])) echo "value=".$_POST['datefin']; echo '>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="form-row">
|
|
|
|
<div class="form-group col-md-2">
|
|
|
|
<button class="btn btn-success" type="submit" name="save" value="save">Rechercher</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<table id="tabcenter" class="table table-bordered table-striped" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<tr class="center borderline">
|
|
|
|
<th >Assigné à</th>
|
|
|
|
<th >Pack</th>
|
|
|
|
<th >Compte</th>
|
|
|
|
<th >Grossiste</th>
|
|
|
|
<th >Date Commande</th>
|
|
|
|
<th >Chiffre D'affaire</th>
|
|
|
|
<th >Pourcentage De Remise </th>
|
|
|
|
<th >Remise Sophal</th>
|
|
|
|
<th >Bon Achat 1 </th>
|
|
|
|
<th >Type De Bon Achat 1</th>
|
|
|
|
<th >Bon Achat 2 </th>
|
|
|
|
<th >Type De Bon Achat 2</th>
|
|
|
|
<th >Avoir</th>
|
|
|
|
<th>Wilaya</th>
|
|
|
|
<th>Bon de commande N°</th>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
<tbody id="values"></tbody>
|
|
|
|
</table></div></div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$viewer->view('CustomDashboardFooter.tpl');
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
#scrollbar::-webkit-scrollbar {
|
|
|
|
width: 10px;
|
|
|
|
height: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
#scrollbar::-webkit-scrollbar-thumb {
|
|
|
|
background: #aaa;
|
|
|
|
border-radius: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
#scrollbar::-webkit-scrollbar-track {
|
|
|
|
background: #F0F0F0;
|
|
|
|
border-radius: 10px;
|
|
|
|
}
|
|
|
|
#scrollbar::-webkit-scrollbar-thumb:horizontal:hover,
|
|
|
|
#scrollbar::-webkit-scrollbar-thumb:vertical:hover {
|
|
|
|
background: #999999;
|
|
|
|
border-radius: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
th, td
|
|
|
|
{
|
|
|
|
|
|
|
|
text-align : center;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.center
|
|
|
|
{
|
|
|
|
text-align : center;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<script type="text/javascript" src="SUtiles.js"></script>
|
|
|
|
<script>
|
|
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
|
|
|
$('.js-example-basic-multiple').select2();
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
function loadTable(data)
|
|
|
|
{
|
|
|
|
$('#tabcenter tr').slice(1).remove();
|
|
|
|
|
|
|
|
var totalsCA = [];
|
|
|
|
var totalsRemise = [];
|
|
|
|
if(data.length > 0) {
|
|
|
|
|
|
|
|
for(var i = 0; i < data.length; i++) {
|
|
|
|
var row = data[i];
|
|
|
|
var ca = parseFloat(row['chiffre_affaire']);
|
|
|
|
var remise = parseFloat(row['remise_percent']);
|
|
|
|
var sophalRemise = parseFloat(((ca*remise)/100));
|
|
|
|
$('#values').append(
|
|
|
|
"<tr class='center borderline'>"
|
|
|
|
+"<td>"+row['fullname']+"</td>"
|
|
|
|
+"<td>"+row['pack_name']+"</td>"
|
|
|
|
+"<td>"+row['compte']+"</td>"
|
|
|
|
+"<td>"+row['grossistes']+"</td>"
|
|
|
|
+"<td>"+row['duedate']+"</td>"
|
|
|
|
+"<td>"+ca.toFixed(2)+"</td>"
|
|
|
|
+"<td >"+remise.toFixed(2)+" %</td>"
|
|
|
|
+"<td >"+sophalRemise.toFixed(2)+"</td>"
|
|
|
|
+"<td>"+parseFloat(row['ba1']).toFixed(2)+"</td>"
|
|
|
|
+"<td>"+row['tba1']+"</td>"
|
|
|
|
+"<td>"+parseFloat(row['ba2']).toFixed(2)+"</td>"
|
|
|
|
+"<td>"+row['tba2']+"</td>"
|
|
|
|
+"<td>"+parseFloat(row['avoir']).toFixed(2)+"</td>"
|
|
|
|
+"<td>"+row['accountwilay']+"</td>"
|
|
|
|
+"<td><span class='value'> <a href='index.php?module=SalesOrder&view=Detail&record="+row['salesorderid']+"&mode=showDetailViewByMode&requestMode=full&tab_label=Bon%20de%20commande%20Details&app=SALES'>"+row['salesorderid']+"</a></span></td>"
|
|
|
|
|
|
|
|
+"</tr>"
|
|
|
|
);
|
|
|
|
|
|
|
|
totalsCA.push(ca);
|
|
|
|
totalsRemise.push(sophalRemise);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// totals chiffre affaire
|
|
|
|
var sum = 0;
|
|
|
|
for(var j = 0; j < totalsCA.length; j++) {
|
|
|
|
sum += totalsCA[j];
|
|
|
|
}
|
|
|
|
// totals remise sophal
|
|
|
|
var sum2 = 0;
|
|
|
|
for(var r = 0; r < totalsRemise.length; r++) {
|
|
|
|
sum2 += totalsRemise[r];
|
|
|
|
}
|
|
|
|
$('#values').append(
|
|
|
|
"<tr class='center borderline'>"
|
|
|
|
+"<td style='font-weight: bold;' colspan='5'>Total</td>"
|
|
|
|
+"<td style='font-weight: bold;'>"+sum.toFixed(2)+"</td>"
|
|
|
|
+"<td ></td>"
|
|
|
|
+"<td style='font-weight: bold;'>"+sum2.toFixed(2)+"</td>"
|
|
|
|
+"<td></td>"
|
|
|
|
+"<td></td>"
|
|
|
|
+"<td></td>"
|
|
|
|
+"<td></td>"
|
|
|
|
+"<td></td>"
|
|
|
|
+"<td></td>"
|
|
|
|
|
|
|
|
+"</tr>"
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = <?php echo json_encode($result); ?>;
|
|
|
|
loadTable(result);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</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>
|
|
|
|
<script type="text/javascript">CsrfMagic.end();</script></body>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
var exportThisWithParameter = (function () {
|
|
|
|
var uri = 'data:application/vnd.ms-excel;base64,',
|
|
|
|
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv=Content-Type content="text/html; charset=utf-8"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets> <x:ExcelWorksheet><x:Name>{worksheet}</x:Name> <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions> </x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook> </xml><![endif]--></head><body> <table>{table}</table></body></html>',
|
|
|
|
base64 = function (s) {
|
|
|
|
return window.btoa(unescape(encodeURIComponent(s)))
|
|
|
|
},
|
|
|
|
format = function (s, c) {
|
|
|
|
return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; })
|
|
|
|
}
|
|
|
|
return function (tableID, excelName) {
|
|
|
|
tableID = document.getElementById(tableID)
|
|
|
|
var ctx = { worksheet: excelName || 'Worksheet', table: tableID.innerHTML }
|
|
|
|
// window.location.href = uri + base64(format(template, ctx))
|
|
|
|
var link = document.createElement("a");
|
|
|
|
link.download = excelName;
|
|
|
|
//link.charset = 'utf-8';
|
|
|
|
link.href = uri + base64(format(template, ctx));
|
|
|
|
link.click();
|
|
|
|
}
|
|
|
|
})()
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</html>
|