- Enabled SMTP debugging in PHPMailer for better error tracking. - Added a "Test send email" link in the Inventory Detail View for quick email testing. - Implemented automatic PDF generation and email sending upon Sales Order creation. - Created a new action for sending Sales Order emails with attached PDFs. - Added a new AJAX action for testing outgoing email server configurations. - Updated outgoing server settings to use new SMTP credentials. - Improved email templates for better user experience. - Added test scripts for validating PDF generation and email sending.
2103 lines
36 KiB
PHP
2103 lines
36 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('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');
|
||
|
||
|
||
|
||
$currentDate = new DateTime();
|
||
|
||
$year = $currentDate->format("Y");
|
||
|
||
$month = $currentDate->format("m");
|
||
|
||
$day = $currentDate->format("d");
|
||
|
||
|
||
|
||
|
||
|
||
if(showNewDashBoard($userId) != 1){ header("Location: index.php?module=Home&view=DashBoard");}
|
||
|
||
|
||
|
||
echo'
|
||
|
||
<div id="SplashScreen"></div>
|
||
|
||
<div class="main-container main-container-Accounts">
|
||
|
||
<div class="container-fluid" style="margin:15px 15px 15px 15px;">
|
||
|
||
<div class="fieldBlockContainer" data-block="LBL_ADDRESS_INFORMATION">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div id="DashBoardBC" >
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="flex-container" >
|
||
|
||
<div onclick="openFullscreen();"><img src="file_upload/fullscreen.svg" alt=""></div>
|
||
|
||
<div onclick="closeFullscreen();"><img src="file_upload/close_fullscreen.svg" alt=""></div>
|
||
|
||
<div onclick="LoadALLDashBoard();" ><img src="file_upload/refresh.svg" alt=""></div>';
|
||
|
||
if(!isPharma($roleid) && $roleid != 'H10')
|
||
|
||
echo '<div><strong><a href="index.php?module=MonitoringVMPlanning&view=MonitoringVMPlanning">Monitoring Promotion Medicale</a></strong></div>';
|
||
|
||
echo '<div><strong><a href="index.php?module=MonitoringVpBCTotal&view=MonitoringVpBCTotal">Monitoring Commercial</a></strong></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12 W-50">
|
||
|
||
<div class="card color1">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="Produit" class="danger">0</h3>
|
||
|
||
<span class="statuts"><a href="index.php?module=Products&view=List&app=INVENTORY">Produit</a></span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fab fa fa-archive danger font-large-2 float-right"></i>
|
||
|
||
<i class="icon-rocket "></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color2">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="Pharmacie" class="success">0</h3>
|
||
|
||
<span class="statuts"><a href="index.php?module=Accounts&view=List&app=INVENTORY&search_params=%5B%5B%5B%22industry%22,%22e%22,%22Pharmacie%22%5D%5D%5D">Pharmacie</a></span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-dot-circle-o success font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color3">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="Medecin" class="warning">0</h3>
|
||
|
||
<span class="statuts"><a href="index.php?module=Accounts&view=List&app=INVENTORY&search_params=%5B%5B%5B%22industry%22,%22e%22,%22Medecin%22%5D%5D%5D">Médecin</a></span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 warning font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color4">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="vm" class="primary">0</h3>
|
||
|
||
<span class="statuts">Délégué Médical</span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 primary font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color5">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="vp" class="danger">0</h3>
|
||
|
||
<span class="statuts">Délégué Commercial</span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 danger font-large-2 float-right"></i>
|
||
|
||
<i class="icon-rocket "></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color6">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="sm" class="success">0</h3>
|
||
|
||
<span class="statuts">Superviseur Médical</span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 success font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color7">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="sc" class="warning">0</h3>
|
||
|
||
<span class="statuts">Superviseur Commercial</span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 warning font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="col-xl-3 col-sm-3 col-12">
|
||
|
||
<div class="card color8">
|
||
|
||
<div class="card-content">
|
||
|
||
<div class="card-body">
|
||
|
||
<div class="media d-flex">
|
||
|
||
<div class="media-body text-left">
|
||
|
||
<h3 id="kam" class="primary">0</h3>
|
||
|
||
<span class="statuts">KAM</span>
|
||
|
||
</div>
|
||
|
||
<div class="align-self-center">
|
||
|
||
<i class="app-icon-list fa fa-user fa-2 primary font-large-2 float-right"></i>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-xl-12 col-sm-12 col-12">
|
||
|
||
<div class="card" id="Ca_par_wilaya1" style="padding:20px;"></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-xl-3 col-sm-12 col-12">
|
||
|
||
|
||
|
||
<div class="card" id="gro1" style="padding:20px;">
|
||
|
||
<h3 id="totalca"></h3>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-6 col-12">
|
||
|
||
<div class="card" id="pharmacie1" style="padding:20px;">
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-6 col-12">
|
||
|
||
<div class="card" id="canvas1" style="padding:20px;">
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-6 col-12">
|
||
|
||
<div class="card" id="vpr1" style="padding:20px;">
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div class="col-xl-3 col-sm-6 col-12">
|
||
|
||
<div class="card" id="vmr1" style="padding:20px;">
|
||
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-xl-3 col-sm-6 col-12">
|
||
|
||
<div class="card" id="Ca_par_region1" style="padding:20px;"></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
';
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
$viewer->view('CustomDashboardFooter.tpl');
|
||
|
||
?>
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
|
||
.center {
|
||
|
||
display: block;
|
||
|
||
margin-left: auto;
|
||
|
||
margin-right: auto;
|
||
|
||
|
||
|
||
}
|
||
|
||
.card {
|
||
|
||
position: relative;
|
||
|
||
display: -webkit-box;
|
||
|
||
display: -webkit-flex;
|
||
|
||
display: -ms-flexbox;
|
||
|
||
display: flex;
|
||
|
||
-webkit-box-orient: vertical;
|
||
|
||
-webkit-box-direction: normal;
|
||
|
||
-webkit-flex-direction: column;
|
||
|
||
-ms-flex-direction: column;
|
||
|
||
flex-direction: column;
|
||
|
||
min-width: 0;
|
||
|
||
background-clip: border-box;
|
||
|
||
border: 1px solid rgba(0,0,0,.06);
|
||
|
||
border-radius: .25rem;
|
||
|
||
margin-bottom: 1.875rem;
|
||
|
||
border: none;
|
||
|
||
border-radius: 0;
|
||
|
||
box-shadow: 0 10px 40px 0 rgb(62 57 107 / 7%), 0 2px 9px 0 rgb(62 57 107 / 6%);
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
.card-body {
|
||
|
||
-webkit-box-flex: 1;
|
||
|
||
-webkit-flex: 1 1 auto;
|
||
|
||
-ms-flex: 1 1 auto;
|
||
|
||
flex: 1 1 auto;
|
||
|
||
min-height: 1px;
|
||
|
||
padding: 1.5rem;
|
||
|
||
}
|
||
|
||
|
||
|
||
.d-flex {
|
||
|
||
display: -webkit-box!important;
|
||
|
||
display: -webkit-flex!important;
|
||
|
||
display: -ms-flexbox!important;
|
||
|
||
display: flex!important;
|
||
|
||
}
|
||
|
||
|
||
|
||
.media {
|
||
|
||
display: flex;
|
||
|
||
-webkit-box-align: start;
|
||
|
||
-webkit-align-items: flex-start;
|
||
|
||
-ms-flex-align: start;
|
||
|
||
align-items: flex-start;
|
||
|
||
}
|
||
|
||
.media, .progress-bar {
|
||
|
||
display: -webkit-box;
|
||
|
||
display: -webkit-flex;
|
||
|
||
display: -ms-flexbox;
|
||
|
||
}
|
||
|
||
.d-flex {
|
||
|
||
display: -ms-flexbox!important;
|
||
|
||
display: flex!important;
|
||
|
||
}
|
||
|
||
|
||
|
||
.text-left {
|
||
|
||
text-align: left!important;
|
||
|
||
}
|
||
|
||
|
||
|
||
.media-body {
|
||
|
||
-webkit-box-flex: 1;
|
||
|
||
-webkit-flex: 1;
|
||
|
||
-ms-flex: 1;
|
||
|
||
flex: 1;
|
||
|
||
}
|
||
|
||
.danger {
|
||
|
||
color: #fff!important;
|
||
|
||
}
|
||
|
||
.h3, h3 {
|
||
|
||
font-size: 2rem;
|
||
|
||
}
|
||
|
||
.align-self-center {
|
||
|
||
-webkit-align-self: center!important;
|
||
|
||
-ms-flex-item-align: center!important;
|
||
|
||
align-self: center!important;
|
||
|
||
}
|
||
|
||
.float-right {
|
||
|
||
float: right!important;
|
||
|
||
}
|
||
|
||
.font-large-2 {
|
||
|
||
font-size: 3rem!important;
|
||
|
||
}
|
||
|
||
.success {
|
||
|
||
color: #fff;
|
||
|
||
}
|
||
|
||
.warning {
|
||
|
||
color: #fff;
|
||
|
||
}
|
||
|
||
.primary {
|
||
|
||
color: #fff;
|
||
|
||
}
|
||
|
||
.statuts {
|
||
|
||
color: #fff;
|
||
|
||
font-size: 1.5rem;
|
||
|
||
}
|
||
|
||
/* Safari syntax */
|
||
|
||
:-webkit-full-screen {
|
||
|
||
background-color: #fff;
|
||
|
||
padding : 30px;
|
||
|
||
overflow-y: scroll;
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
/* IE11 */
|
||
|
||
:-ms-fullscreen {
|
||
|
||
background-color: #fff;
|
||
|
||
padding : 30px;
|
||
|
||
overflow-y: scroll;
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
/* Standard syntax */
|
||
|
||
:fullscreen {
|
||
|
||
background-color: #fff;
|
||
|
||
padding : 30px;
|
||
|
||
overflow-y: scroll;
|
||
|
||
|
||
|
||
}
|
||
|
||
.color1{
|
||
|
||
background-image: linear-gradient(to right, #fe5d70, #fe909d);
|
||
|
||
}
|
||
|
||
.color2{
|
||
|
||
background-image: linear-gradient(to right, #01a9ac, #01dbdf);
|
||
|
||
}
|
||
|
||
.color3{
|
||
|
||
background-image: linear-gradient(to right, #0ac282, #0df3a3);
|
||
|
||
}
|
||
|
||
.color4 {
|
||
|
||
background-image: linear-gradient(to right, #fe9365, #feb798);
|
||
|
||
}
|
||
|
||
.color5 {
|
||
|
||
background-image:linear-gradient(to right, #f7b529, #f7cf79);
|
||
|
||
}
|
||
|
||
.color6 {
|
||
|
||
background-image: linear-gradient(to right, #b9c500, #e8f158);
|
||
|
||
}
|
||
|
||
.color7 {
|
||
|
||
background-image: linear-gradient(to right, #929292, #ccdae0);
|
||
|
||
}
|
||
|
||
.color8 {
|
||
|
||
background-image: linear-gradient(to right, #6c5ce7, #948ec1);
|
||
|
||
}
|
||
|
||
.flex-container {
|
||
|
||
display: flex;
|
||
|
||
flex-wrap: nowrap;
|
||
|
||
}
|
||
|
||
|
||
|
||
.flex-container > div {
|
||
|
||
margin: 10px;
|
||
|
||
text-align: center;
|
||
|
||
line-height: 30px;
|
||
|
||
}
|
||
|
||
|
||
|
||
.dashboard_select {
|
||
|
||
padding: 5px;
|
||
|
||
border: 2px solid rgba(0, 0, 0, 0.1);
|
||
|
||
border-radius: 3px;
|
||
|
||
min-width: 100px;
|
||
|
||
font-weight: bold;
|
||
|
||
color: #464646;
|
||
|
||
}
|
||
|
||
.card:hover {
|
||
|
||
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
|
||
|
||
cursor: pointer;
|
||
|
||
}
|
||
|
||
|
||
|
||
</style>
|
||
|
||
<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>
|
||
|
||
<script src="file_upload/Chart.min.js" type="text/javascript"></script>
|
||
|
||
<script src="file_upload/jquery.animateNumbers.min.js" type="text/javascript"></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>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function PackCA(data) {
|
||
|
||
|
||
|
||
let Pack = [];
|
||
|
||
let ca = [];
|
||
|
||
let total = 0;
|
||
|
||
|
||
|
||
for(var c = 0; c < data.length ; c++){
|
||
|
||
var rowG = data[c];
|
||
|
||
Pack.push(rowG[0]);
|
||
|
||
ca.push(rowG[1]);
|
||
|
||
total = total + parseFloat(rowG[1]);
|
||
|
||
}
|
||
|
||
$("#totalca").text("TOTAL: "+new Intl.NumberFormat("de-DE").format(total.toFixed(2))+' DA');
|
||
|
||
|
||
|
||
$( "#gro" ).remove( );
|
||
|
||
$( "#gro1" ).append( ' <canvas id="gro" width="600" height="230"></canvas>' );
|
||
|
||
|
||
|
||
var ctx = document.getElementById('gro');
|
||
|
||
var myChart = new Chart(ctx, {
|
||
|
||
type: 'bar',
|
||
|
||
data: {
|
||
|
||
labels: Pack,
|
||
|
||
datasets: [{
|
||
|
||
label: "Chiffre d'affaire",
|
||
|
||
data: ca,
|
||
|
||
backgroundColor: [
|
||
|
||
'rgba(255, 99, 132, 0.2)',
|
||
|
||
'rgba(54, 162, 235, 0.2)',
|
||
|
||
'rgba(255, 206, 86, 0.2)',
|
||
|
||
'rgba(75, 192, 192, 0.2)',
|
||
|
||
'rgba(153, 102, 255, 0.2)',
|
||
|
||
'rgba(255, 159, 64, 0.2)'
|
||
|
||
],
|
||
|
||
borderColor: [
|
||
|
||
'rgba(255, 99, 132, 1)',
|
||
|
||
'rgba(54, 162, 235, 1)',
|
||
|
||
'rgba(255, 206, 86, 1)',
|
||
|
||
'rgba(75, 192, 192, 1)',
|
||
|
||
'rgba(153, 102, 255, 1)',
|
||
|
||
'rgba(255, 159, 64, 1)'
|
||
|
||
],
|
||
|
||
borderWidth: 1
|
||
|
||
}]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
scales: {
|
||
|
||
y: {
|
||
|
||
beginAtZero: true
|
||
|
||
}
|
||
|
||
},
|
||
|
||
title:{
|
||
|
||
display:true,
|
||
|
||
text:'CA Par Pack'
|
||
|
||
},
|
||
|
||
onClick: event => {
|
||
|
||
const datasetIndex = myChart.getElementAtEvent(event)[0]._datasetIndex;
|
||
|
||
const model = myChart.getElementsAtEvent(event)[datasetIndex]._model;
|
||
|
||
//console.log(model.datasetLabel+" : "+model.label);
|
||
|
||
window.location.replace('index.php?module=SalesOrder&parent=&page=1&view=List&viewname=26&orderby=&sortorder=&app=SALES&search_params=%5B%5B%5B%22potential_id%22%2C%22c%22%2C%22'+model.label+'%22%5D%5D%5D');
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function Pharmacie_par_region(data) {
|
||
|
||
|
||
|
||
let region = [];
|
||
|
||
let cap = [];
|
||
|
||
|
||
|
||
for(var c = 0; c < data.length ; c++){
|
||
|
||
var rowG = data[c];
|
||
|
||
region.push(rowG[0]);
|
||
|
||
cap.push(rowG[1]);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
$( "#pharmacie" ).remove( );
|
||
|
||
$( "#pharmacie1" ).append( '<canvas id="pharmacie" width="200" height="100"></canvas>' );
|
||
|
||
new Chart(document.getElementById('pharmacie'), {
|
||
|
||
type: 'doughnut',
|
||
|
||
data: {
|
||
|
||
labels: region,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
label: "Population (millions)",
|
||
|
||
backgroundColor: ["#bdb2ff", "#ffd6a5","#caffbf","#e8c3b9","#c45850" ,"#4cd137" ,"#353b48","#e84118","#9c88ff","#fbc531"],
|
||
|
||
data: cap
|
||
|
||
}
|
||
|
||
]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: 'Pharmacie Par Région'
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function Medecin_par_region(data) {
|
||
|
||
|
||
|
||
let region = [];
|
||
|
||
let cap = [];
|
||
|
||
|
||
|
||
for(var c = 0; c < data.length ; c++){
|
||
|
||
var rowG = data[c];
|
||
|
||
region.push(rowG[0]);
|
||
|
||
cap.push(rowG[1]);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
$( "#canvas" ).remove( );
|
||
|
||
$( "#canvas1" ).append( '<canvas id="canvas" width="200" height="100"></canvas>' );
|
||
|
||
new Chart(document.getElementById('canvas'), {
|
||
|
||
type: 'doughnut',
|
||
|
||
data: {
|
||
|
||
labels: region,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
label: "Population (millions)",
|
||
|
||
backgroundColor: ["#bdb2ff", "#ffd6a5","#caffbf","#e8c3b9","#c45850" ,"#4cd137" ,"#353b48","#e84118","#9c88ff","#fbc531"],
|
||
|
||
data: cap
|
||
|
||
}
|
||
|
||
]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: 'Médecin Par Région'
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function Vp_par_region(data) {
|
||
|
||
|
||
|
||
let region = [];
|
||
|
||
let cap = [];
|
||
|
||
|
||
|
||
for(let vp = 0; vp < data.length ; vp++){
|
||
|
||
let rowG = data[vp];
|
||
|
||
region.push(rowG[0]);
|
||
|
||
cap.push(rowG[1]);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
$( "#vpr" ).remove( );
|
||
|
||
$( "#vpr1" ).append( '<canvas id="vpr" width="200" height="100"></canvas>' );
|
||
|
||
new Chart(document.getElementById('vpr'), {
|
||
|
||
type: 'doughnut',
|
||
|
||
data: {
|
||
|
||
labels: region,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
label: "Population (millions)",
|
||
|
||
backgroundColor: ["#bdb2ff", "#ffd6a5","#caffbf","#e8c3b9","#c45850" ,"#4cd137" ,"#353b48","#e84118","#9c88ff","#fbc531"],
|
||
|
||
data: cap
|
||
|
||
}
|
||
|
||
]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: 'Délégué Commercial Par Région'
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function Vm_par_region(data) {
|
||
|
||
|
||
|
||
let region = [];
|
||
|
||
let cap = [];
|
||
|
||
|
||
|
||
for(let vp = 0; vp < data.length ; vp++){
|
||
|
||
let rowG = data[vp];
|
||
|
||
region.push(rowG[0]);
|
||
|
||
cap.push(rowG[1]);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
$( "#vmr" ).remove( );
|
||
|
||
$( "#vmr1" ).append( '<canvas id="vmr" width="200" height="100"></canvas>' );
|
||
|
||
new Chart(document.getElementById('vmr'), {
|
||
|
||
type: 'doughnut',
|
||
|
||
data: {
|
||
|
||
labels: region,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
label: "Population (millions)",
|
||
|
||
backgroundColor: ["#bdb2ff", "#ffd6a5","#caffbf","#e8c3b9","#c45850" ,"#4cd137" ,"#353b48","#e84118","#9c88ff","#fbc531"],
|
||
|
||
data: cap
|
||
|
||
}
|
||
|
||
]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: 'Délégué Médical Par Région'
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function Ca_par_region(data) {
|
||
|
||
var year = <?php echo json_encode($year); ?>;
|
||
|
||
let region = [];
|
||
|
||
let cap = [];
|
||
|
||
|
||
|
||
for(let vp = 0; vp < data.length ; vp++){
|
||
|
||
let rowG = data[vp];
|
||
|
||
region.push(rowG[0]);
|
||
|
||
cap.push(rowG[1].toFixed(2));
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
$( "#Ca_par_region" ).remove( );
|
||
|
||
$( "#Ca_par_region1" ).append( '<canvas id="Ca_par_region" width="200" height="100"></canvas>' );
|
||
|
||
new Chart(document.getElementById('Ca_par_region'), {
|
||
|
||
type: 'doughnut',
|
||
|
||
data: {
|
||
|
||
labels: region,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
label: "Population (millions)",
|
||
|
||
backgroundColor: ["#bdb2ff", "#ffd6a5","#caffbf","#e8c3b9","#c45850" ,"#4cd137" ,"#353b48","#e84118","#9c88ff","#fbc531"],
|
||
|
||
data: cap
|
||
|
||
}
|
||
|
||
]
|
||
|
||
},
|
||
|
||
options: {
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: "Chiffre d'affaire Par Région entre 2020 et "+year
|
||
|
||
}
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function Ca_par_wilaya(data){
|
||
|
||
var year = <?php echo json_encode($year); ?>;
|
||
|
||
let wilaya = [];
|
||
|
||
let total = [];
|
||
|
||
|
||
|
||
for(let vp = 0; vp < data.length ; vp++){
|
||
|
||
let row = data[vp];
|
||
|
||
wilaya.push(row[0]);
|
||
|
||
total.push(row[1]);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
$( "#Ca_par_wilaya" ).remove( );
|
||
|
||
$( "#Ca_par_wilaya1" ).append( ' <canvas id="Ca_par_wilaya"></canvas>' );
|
||
|
||
|
||
|
||
|
||
|
||
var chart = new Chart(document.getElementById('Ca_par_wilaya'), {
|
||
|
||
type: "horizontalBar",
|
||
|
||
options: {
|
||
|
||
responsive: true,
|
||
|
||
maintainAspectRatio: false,
|
||
|
||
legend: {
|
||
|
||
display: false
|
||
|
||
},
|
||
|
||
title: {
|
||
|
||
display: true,
|
||
|
||
text: "TOP 25 CA par Wilaya "+year
|
||
|
||
},
|
||
|
||
tooltips: {
|
||
|
||
mode: 'label',
|
||
|
||
label: 'mylabel',
|
||
|
||
callbacks: {
|
||
|
||
label: function(tooltipItem, data) {
|
||
|
||
return tooltipItem.xLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")+" DA"; }, },
|
||
|
||
}
|
||
|
||
},
|
||
|
||
data: {
|
||
|
||
labels: wilaya,
|
||
|
||
datasets: [
|
||
|
||
{
|
||
|
||
data: total,
|
||
|
||
backgroundColor: '#74b9ff',
|
||
|
||
}
|
||
|
||
]
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
/* View in fullscreen */
|
||
|
||
var elem = document.getElementById("DashBoardBC");
|
||
|
||
function openFullscreen() {
|
||
|
||
if (elem.requestFullscreen) {
|
||
|
||
elem.requestFullscreen();
|
||
|
||
} else if (elem.webkitRequestFullscreen) { /* Safari */
|
||
|
||
elem.webkitRequestFullscreen();
|
||
|
||
} else if (elem.msRequestFullscreen) { /* IE11 */
|
||
|
||
elem.msRequestFullscreen();
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
/* Close fullscreen */
|
||
|
||
function closeFullscreen() {
|
||
|
||
if (document.exitFullscreen) {
|
||
|
||
document.exitFullscreen();
|
||
|
||
} else if (document.webkitExitFullscreen) { /* Safari */
|
||
|
||
document.webkitExitFullscreen();
|
||
|
||
} else if (document.msExitFullscreen) { /* IE11 */
|
||
|
||
document.msExitFullscreen();
|
||
|
||
}
|
||
|
||
}
|
||
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
<script>
|
||
|
||
function box(data) {
|
||
|
||
|
||
|
||
|
||
|
||
$("#Produit").empty();
|
||
|
||
$("#Produit").animateNumbers(data['nbr_produits'][0], true, 2000);
|
||
|
||
$("#Pharmacie").empty();
|
||
|
||
$("#Pharmacie").animateNumbers(data['nbr_pharmacie'][0] , true, 2000);
|
||
|
||
$("#Medecin").empty();
|
||
|
||
$("#Medecin").animateNumbers(data['nbr_medecin'][0], true, 2000);
|
||
|
||
$("#vm").empty();
|
||
|
||
$("#vm").animateNumbers(data['nbr_delegue_medical'][0] , true, 2000);
|
||
|
||
$("#vp").empty();
|
||
|
||
$("#vp").animateNumbers(data['nbr_delegue_commercial'][0], true, 2000);
|
||
|
||
$("#sm").empty();
|
||
|
||
$("#sm").animateNumbers(data['nbr_superviseur_medical'][0], true, 2000);
|
||
|
||
$("#sc").empty();
|
||
|
||
$("#sc").animateNumbers(data['nbr_superviseur_commercial'][0], true, 2000);
|
||
|
||
$("#kam").empty();
|
||
|
||
$("#kam").animateNumbers(data['nbr_kam'][0], true, 2000);
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function LoadALLDashBoard() {
|
||
|
||
$.ajax({
|
||
|
||
type: "GET",
|
||
|
||
url: "index.php?module=DashBoardAjax&view=DashBoardAjax&action=all",
|
||
|
||
|
||
|
||
success: function (data) {
|
||
|
||
let cleanData = data.trim();
|
||
|
||
data = data.replace('{', '{');
|
||
|
||
console.log(data);
|
||
|
||
// Remove anything starting from the first <script> tag (and everything after)
|
||
const scriptIndex = cleanData.indexOf('<script>');
|
||
if (scriptIndex !== -1) {
|
||
cleanData = cleanData.substring(0, scriptIndex);
|
||
}
|
||
|
||
// Optional: remove BOM characters if present
|
||
cleanData = cleanData.replace(/^\uFEFF/, '');
|
||
|
||
// Now you can safely parse
|
||
let dataResult;
|
||
try {
|
||
dataResult = JSON.parse(cleanData);
|
||
console.log("✅ Parsed JSON:", dataResult);
|
||
} catch (e) {
|
||
console.error("❌ Invalid JSON:", cleanData);
|
||
console.error(e);
|
||
}
|
||
|
||
|
||
// var dataResult = JSON.parse(data);
|
||
|
||
box(dataResult);
|
||
|
||
|
||
|
||
if(dataResult['pack_ca'].length > 0){
|
||
|
||
PackCA(dataResult['pack_ca']);
|
||
|
||
}
|
||
|
||
if(dataResult['pharmacie_region'].length > 0){
|
||
|
||
Pharmacie_par_region(dataResult['pharmacie_region']);
|
||
|
||
}
|
||
|
||
if(dataResult['medecin_region'].length > 0){
|
||
|
||
Medecin_par_region(dataResult['medecin_region']) ;
|
||
|
||
}
|
||
|
||
if(dataResult['nbr_vp_region'].length > 0){
|
||
|
||
Vp_par_region(dataResult['nbr_vp_region']);
|
||
|
||
}
|
||
|
||
if(dataResult['nbr_vm_region'].length > 0){
|
||
|
||
Vm_par_region(dataResult['nbr_vm_region']);
|
||
|
||
}
|
||
|
||
if(dataResult['ca_par_region'].length > 0){
|
||
|
||
Ca_par_region(dataResult['ca_par_region']);
|
||
|
||
}
|
||
|
||
|
||
|
||
if(dataResult['ca_par_wilaya'].length > 0){
|
||
|
||
Ca_par_wilaya(dataResult['ca_par_wilaya']);
|
||
|
||
}
|
||
|
||
|
||
|
||
},
|
||
|
||
error: function(data){
|
||
|
||
console.log(data);
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function getSplashScreen(){
|
||
|
||
$.ajax({
|
||
|
||
type: "GET",
|
||
|
||
url: "index.php?module=SplashScreenAjax&view=SplashScreenAjax",
|
||
|
||
contentType: "application/json; charset=utf-8",
|
||
|
||
success: function(result) {
|
||
|
||
$("#SplashScreen").html(result);
|
||
|
||
}
|
||
|
||
});
|
||
|
||
}
|
||
|
||
|
||
|
||
$(document).ready(function() {
|
||
|
||
try {
|
||
|
||
getSplashScreen();
|
||
|
||
LoadALLDashBoard();
|
||
|
||
|
||
// const menuButton = document.querySelector('.app-navigator .app-icon');
|
||
// menuButton.addEventListener('click', toggleSidebar);
|
||
|
||
// function toggleSidebar() {
|
||
// console.log('clicked');
|
||
|
||
// const mainContainer = document.querySelector('.main-container');
|
||
// const sidebar = document.querySelector('.vertical-menu');
|
||
// const tabContainerD = document.querySelector('.tabContainer');
|
||
// const dashboard = document.querySelector('.dashboard');
|
||
|
||
// const isOpen = sidebar.classList.contains('open');
|
||
|
||
// if (isOpen) {
|
||
// sidebar.classList.remove('open');
|
||
// sidebar.style.width = '0px';
|
||
// if (mainContainer) mainContainer.style.marginLeft = '0px';
|
||
// if (tabContainerD) tabContainerD.style.marginLeft = '0px';
|
||
// if (dashboard) dashboard.style.marginLeft = '0px';
|
||
// } else {
|
||
// sidebar.classList.add('open');
|
||
// sidebar.style.width = '250px';
|
||
// if (mainContainer) mainContainer.style.marginLeft = '250px';
|
||
// if (tabContainerD) tabContainerD.style.marginLeft = '250px';
|
||
// if (dashboard) dashboard.style.marginLeft = '250px';
|
||
// }
|
||
// }
|
||
}
|
||
|
||
catch(err) {
|
||
|
||
console.log(err.message);
|
||
|
||
}
|
||
|
||
});
|
||
|
||
|
||
|
||
</script>
|
||
|
||
</html>
|