186 lines
16 KiB
PHP
186 lines
16 KiB
PHP
<link rel="stylesheet" href="jscss/leaflet.css"/>
|
|
|
|
<link rel="stylesheet" href="jscss/leaflet-routing-machine.css" />
|
|
|
|
<style>
|
|
|
|
.mymap{
|
|
|
|
height:100%;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once 'include/utils/utils.php';
|
|
|
|
require_once 'includes/Loader.php';
|
|
|
|
vimport ('includes.runtime.EntryPoint');
|
|
|
|
require_once 'SUtiles.php';
|
|
|
|
@session_start();
|
|
|
|
global $adb;
|
|
|
|
|
|
|
|
//test
|
|
|
|
$current_user = Users_Record_Model::getCurrentUserModel();
|
|
|
|
$roleid = $current_user->get('roleid');
|
|
|
|
|
|
|
|
$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('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','map');
|
|
|
|
$viewer->assign('LANGUAGE_STRINGS', Vtiger_Language_Handler::export('Home', 'jsLanguageStrings'));
|
|
|
|
$viewer->view('CustomDashboard.tpl');
|
|
|
|
|
|
|
|
function getAccountsDetails($type){
|
|
|
|
global $adb;
|
|
|
|
$query = "SELECT scf.cf_986 , scf.cf_988 ,acc.accountid , acc.accountname
|
|
|
|
from vtiger_account as acc ,vtiger_accountscf as scf
|
|
|
|
WHERE acc.accountid = scf.accountid and acc.industry = '".$type."'
|
|
|
|
and LENGTH(scf.cf_986) > 0 and LENGTH(scf.cf_988) > 0 ";
|
|
|
|
$sql_get_result = $adb->query($query);
|
|
|
|
$result= array();
|
|
|
|
while ($recordinfo = $adb->fetch_array($sql_get_result)) {
|
|
|
|
$result[] = $recordinfo;
|
|
|
|
}
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
$types = ['Medecin' , 'Grossiste', 'Pharmacie'];
|
|
|
|
$Medecin = getAccountsDetails($types[0]);
|
|
|
|
$Grossiste = getAccountsDetails($types[1]);
|
|
|
|
$Pharmacie = getAccountsDetails($types[2]);
|
|
|
|
|
|
|
|
|
|
|
|
echo '<div class="main-container main-container-Accounts">
|
|
|
|
<div class="container-fluid" style="margin:15px 15px 15px 15px;">
|
|
|
|
<div class="detailview-header-block" style="height: 100%;">
|
|
|
|
<div id="weathermap" class="mymap"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>';echo count($result)."ggg";
|
|
|
|
|
|
|
|
$viewer->view('CustomDashboardFooter.tpl');
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="jscss/leaflet.js"></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>
|
|
|
|
|
|
|
|
var Medecin = <?php echo json_encode($Medecin); ?>;
|
|
|
|
var Grossiste = <?php echo json_encode($Grossiste); ?>;
|
|
|
|
var Pharmacie = <?php echo json_encode($Pharmacie); ?>;
|
|
|
|
$( document ).ready(function() {
|
|
|
|
|
|
|
|
|
|
|
|
document.getElementById('weathermap').innerHTML = "<div id='map' style='width: 100%; height: 100%;'></div>"
|
|
|
|
var map = L.map("map");
|
|
|
|
|
|
|
|
L.tileLayer("http://{s}.tile.osm.org/{z}/{x}/{y}.png").addTo(map);
|
|
|
|
|
|
|
|
map.setView([28,1], 5);
|
|
|
|
|
|
|
|
var myRenderer = L.canvas({ padding: 0.5 });
|
|
|
|
|
|
|
|
|
|
|
|
for(var i=1 ; i < Medecin.length ; i++){
|
|
|
|
var x = parseFloat(Medecin[i]['cf_986']);
|
|
|
|
var y = parseFloat(Medecin[i]['cf_988']);
|
|
|
|
if( Number.isNaN(x) != true && Number.isNaN(y) != true ){
|
|
|
|
L.circleMarker([x,y], {
|
|
|
|
renderer: myRenderer,
|
|
|
|
radius: 8,
|
|
|
|
fillColor: "#ff7800",
|
|
|
|
color: "#000",
|
|
|
|
weight: 1,
|
|
|
|
opacity: 1,
|
|
|
|
fillOpacity: 0.8
|
|
|
|
}).addTo(map).bindPopup('<a href="index.php?module=Accounts&view=Detail&record='+Medecin[i]['accountid']+'&app=INVENTORY">'+Medecin[i]['accountname']+'</a>');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for(var u=1 ; u < Grossiste.length ; u++){
|
|
|
|
var x = parseFloat(Grossiste[u]['cf_986']);
|
|
|
|
var y = parseFloat(Grossiste[u]['cf_988']);
|
|
|
|
if( Number.isNaN(x) != true && Number.isNaN(y) != true ){
|
|
|
|
L.circleMarker([x,y], {
|
|
|
|
renderer: myRenderer,
|
|
|
|
radius: 8,
|
|
|
|
fillColor: "#fff",
|
|
|
|
color: "#000",
|
|
|
|
weight: 1,
|
|
|
|
opacity: 1,
|
|
|
|
fillOpacity: 0.8
|
|
|
|
}).addTo(map).bindPopup('<a href="index.php?module=Accounts&view=Detail&record='+Grossiste[u]['accountid']+'&app=INVENTORY">'+Grossiste[u]['accountname']+'</a>');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for(var g=1 ; g < Pharmacie.length ; g++){
|
|
|
|
var x = parseFloat(Pharmacie[g]['cf_986']);
|
|
|
|
var y = parseFloat(Pharmacie[g]['cf_988']);
|
|
|
|
if( Number.isNaN(x) != true && Number.isNaN(y) != true ){
|
|
|
|
L.circleMarker([x,y], {
|
|
|
|
renderer: myRenderer,
|
|
|
|
radius: 8,
|
|
|
|
fillColor: "#38f",
|
|
|
|
color: "#000",
|
|
|
|
weight: 1,
|
|
|
|
opacity: 1,
|
|
|
|
fillOpacity: 0.8
|
|
|
|
}).addTo(map).bindPopup('<a href="index.php?module=Accounts&view=Detail&record='+Pharmacie[g]['accountid']+'&app=INVENTORY">'+Pharmacie[g]['accountname']+'</a>');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/javascript">CsrfMagic.end();</script>
|
|
|
|
</body>
|
|
|
|
|
|
|
|
</html>
|