= 3600){
$duration = array($hours,$minutes,$seconds);
}else{
$duration = array($minutes,$seconds);
}
return implode(':', $duration);
}
return "00:00";
}
setlocale(LC_TIME, 'fr_FR.utf8', 'fra');
session_start();
if (!isset($_SESSION['auth'])) {
header("location:index.php");
}
// print_r($_SESSION);
require_once("../inc/confNetisse.php");
$locale = 'fr_FR.UTF-8';
setlocale(LC_ALL, $locale);
$table = 'ca_statistiques';
$daysagoQ = "";
if (isset($_SESSION['profiles'])) {
// GET PROFILE IDs FROM PROFILE NAMES IN RETURNED XML
$profiles = "";
//print "
"; print_r($_SESSION['profiles']);print "
";
foreach ($_SESSION['profiles'] as $value) {
$q = "SELECT id_profil FROM ca_profils WHERE nom = :nom";
$values = [':nom' => $value];
$result = excuteQuery($q, $values);
if ($result['status']) {
$r = $result['stmt'];
$id_profil = $r->fetch( PDO::FETCH_ASSOC )['id_profil'];
$profiles .= $id_profil . ',';
}else{
wts_die($stmt->error);
}
}
$profiles = rtrim($profiles, ',');
// CONSTRUCT THE PERMISSIONS ARRAY
$query = "SELECT type_permission FROM ca_profil_permission LEFT JOIN ca_permissions ON ca_permissions.id_permission = ca_profil_permission.id_permission WHERE ca_profil_permission.id_profil IN (:id_profil)";
$values = array(':id_profil' => $profiles);
} else if (isset($_SESSION['profil'])) {
// CONSTRUCT THE PERMISSIONS ARRAY
$query = "SELECT type_permission FROM ca_profil_permission LEFT JOIN ca_permissions ON ca_permissions.id_permission = ca_profil_permission.id_permission LEFT JOIN ca_profils ON ca_profil_permission.id_profil = ca_profils.id_profil WHERE ca_profils.profil=:profil";
$values = array(':profil' => intval($_SESSION['profil']));
}
if ($query != "") {
$result = excuteQuery($query, $values);
$permissionsResult = $result['stmt'];
$permissionsArray = array();
while ($perm = $permissionsResult->fetchObject()) {
$permissionsArray[] = $perm->type_permission;
}
//SET PERMISSIONS ARRAY IN SESSION SO WE CAN USE IT IN OTHER PAGES
$_SESSION['permissions'] = $permissionsArray;
} else {
header("location:index.php");
}
// echo "";var_dump($_SESSION['permissions']);
$viewContent = (isset($_SESSION['permissions']) && in_array("view_homepage", $_SESSION['permissions'])) ? 1 : 0;
$empty = !in_array('view_homepage', $_SESSION['permissions']) ? 1 : 0;
// $lastCronQ = "SELECT date_format(date_arrivee,'%d/%m/%Y') last_cron FROM ca_clients ORDER BY date_arrivee DESC LIMIT 0,1";
// $lastCronR = $GLOBALS['cnx']->query($lastCronQ);
// $lastCronO = $lastCronR->fetchObject();
// $lastCron = $lastCronO->last_cron;
function hms($laps)
{
$laps = sprintf("%.0f",$laps);
if ($laps >= 3600)
return sprintf("%d:%02d:%02d", $laps / 3600, ($laps / 60) % 60, $laps % 60);
else
return sprintf("%2d:%02d", $laps / 60, $laps % 60);
}
if($viewContent){
$qagcList = "SELECT id_agence, nom_agence FROM ca_agences WHERE is_active=:is_active AND supp=:supp ORDER BY nom_agence ASC";
if($_SESSION['profil'] != 100){
$qagcList = "SELECT id_agence, nom_agence FROM ca_agences a WHERE id_agence IN (SELECT id_agence FROM ca_links WHERE id_admin = ". intval($_SESSION["id"]) .") AND is_active=:is_active AND supp=:supp ORDER BY nom_agence ASC" ;
}
$values_agc_list = array(':is_active' => 1, ':supp' => 0);
$result_agc_list = excuteQuery($qagcList, $values_agc_list);
$res_agc_list = $result_agc_list['stmt'];
$AGC_LIST = array();
$agc_filter = array();
if($result_agc_list['status']){
while ($row = $res_agc_list->fetchObject()){
$obj = new stdClass();
$obj->id_agence = $row->id_agence;
$obj->nom_agence = $row->nom_agence;
$AGC_LIST[] = $obj;
$agc_filter[] = $row->id_agence;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
//filter global
$DEB = isset($_REQUEST["debg"])?$_REQUEST["debg"].' 00:00:00':'';
$FIN = isset($_REQUEST["fing"])?$_REQUEST["fing"].' 23:59:59':'';
$AGENCES = isset($_GET['agencies'])?$_GET['agencies']:array();
$agc_arr = array();
$nb_agences = "Toutes les agences";
$nom_agences = "Toutes les agences";
if($AGENCES){
foreach ($AGENCES as $a) {
$agc_arr[] = intval($a);
}
$AGC_IN_FILTER_NB_Q = "SELECT COUNT(id_agence) nb FROM ca_agences WHERE id_agence IN (".implode(',', $agc_arr).")";
$AGC_IN_FILTER_Q = "SELECT id_agence, nom_agence FROM ca_agences WHERE id_agence IN (".implode(',', $agc_arr).")";
$AGC_IN_FILTER_STMT = excuteQuery($AGC_IN_FILTER_Q);
$AGC_IN_FILTER_NB_STMT = excuteQuery($AGC_IN_FILTER_NB_Q);
$AGC_IN_FILTER_ROWS = $AGC_IN_FILTER_STMT['stmt'];
$a = $AGC_IN_FILTER_NB_STMT['stmt']->fetch(PDO::FETCH_OBJ)->nb;
if(count($AGC_LIST) > $AGC_IN_FILTER_NB_STMT['stmt']->fetch(PDO::FETCH_OBJ)->nb){
$nb_agences = $a." agences";
}
$agc_list_arr = array();
while ($rowa = $AGC_IN_FILTER_ROWS->fetchObject()) {
$agc_list_arr[] = $rowa->nom_agence;
}
if (count($agc_list_arr) == count($AGC_LIST)) {
$nom_agences ="Toutes les agences";
}else{
$nom_agences = implode(', ', $agc_list_arr);
}
}
$periodeArriveeMotifsQ = "";
$periodeArriveeQ="";
$agcQ="";
$agcMotifsQ="";
if($_SESSION["profil"] != 100 && !isset($_GET['agencies'])){
$agcQ=" AND c.id_agence IN(".implode(',', $_SESSION["agences"]).")";
$agcMotifsQ=" AND c.id_agence IN(".implode(',', $_SESSION["agences"]).")";
}
$valuesg = array();
if(($DEB!="") && ($FIN!="")){
$dd = date('Y-m-d',strtotime($DEB)).' 00:00:00';
$df = date('Y-m-d',strtotime($FIN)).' 23:59:59';
$periodeArriveeQ .= " AND date_arrivee BETWEEN :deb AND :fin";
$periodeArriveeMotifsQ = " AND c.date_arrivee BETWEEN :deb AND :fin";
$valuesg[':deb'] = $dd;
$valuesg[':fin'] = $df;
}
if(!$periodeArriveeQ && !$periodeArriveeMotifsQ){
$ddQ = date('Y-m-01') . ' 00:00:00';
$daysagoQ = " AND date_arrivee >= '".$ddQ."'";
}
if($AGENCES){
if((count($AGENCES)>0)&&($AGENCES!="null")){
if(($DEB=="") && ($FIN=="")){
$agcQ .= "AND c.id_agence IN (".implode(',', $AGENCES).")";
$agcMotifsQ .= "AND c.id_agence IN (".implode(',', $AGENCES).")";
//$valuesg[':id_agence'] = implode(',', $AGENCES);
}else{
$agcMotifsQ .= " AND c.id_agence IN (".implode(',', $AGENCES).")";
$agcQ .= " AND c.id_agence IN (".implode(',', $AGENCES).")";
//$valuesg[':id_agence'] = implode(',', $AGENCES);
}
}
}
//durée attente request
$q_duree_attente = "SELECT rdv,
AVG(CASE WHEN rdv=1 AND date_priseencharge AND date_priseencharge >= date_arrivee THEN TIMESTAMPDIFF(SECOND, date_arrivee, date_priseencharge) END) as dureerdv,
AVG(CASE WHEN rdv=0 AND date_priseencharge AND date_priseencharge >= date_arrivee THEN TIMESTAMPDIFF(SECOND, date_arrivee, date_priseencharge) END) as dureesrdv,
AVG(CASE WHEN rdv=5 AND date_priseencharge AND date_priseencharge >= date_arrivee THEN TIMESTAMPDIFF(SECOND, date_arrivee, date_priseencharge) END) as dureeship /*Livraison*/
FROM ".$table." c
LEFT JOIN ca_agences a ON a.id_agence = c.id_agence
WHERE a.supp=0 AND rdv NOT IN(3,4)
".$periodeArriveeQ.$agcQ.$daysagoQ."
GROUP BY rdv";
if(count($valuesg)>0){
$stmt = excuteQuery($q_duree_attente, $valuesg);
$result_1 = $stmt['stmt'];
}else{
$result_1 = $GLOBALS['cnx']->query($q_duree_attente);
}
$DURATIONS_ATTENTE = array();
if($result_1->rowCount() >0){
while ($row = $result_1->fetchObject()){
$obj = new stdClass();
switch ($row->rdv) {
case 0:
$obj->type = 'SRDV';
$obj->duree = hms($row->dureesrdv);
$obj->color = '#2196f3';
break;
case 1:
$obj->type = 'RDV';
$obj->duree = hms($row->dureerdv);
$obj->color = '#f44336';
break;
case 5:
$obj->type = 'Livraison';
$obj->duree = hms($row->dureeship);
$obj->color = $GLOBALS["PILE_CONF"]["COLORS"]["SHIP"];
break;
}
$DURATIONS_ATTENTE[] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
// var_dump($DURATIONS_ATTENTE);die();
//durée entretien request
$q_duree_entretien = "SELECT rdv,
AVG(CASE WHEN rdv=1 AND date_cloture AND date_cloture >= date_priseencharge THEN TIMESTAMPDIFF(SECOND, date_priseencharge, date_cloture) END) as duree_ent_rdv,
AVG(CASE WHEN rdv=0 AND date_cloture AND date_cloture >= date_priseencharge THEN TIMESTAMPDIFF(SECOND, date_priseencharge, date_cloture) END) as duree_ent_srdv,
AVG(CASE WHEN rdv=5 AND date_cloture AND date_cloture >= date_priseencharge THEN TIMESTAMPDIFF(SECOND, date_priseencharge, date_cloture) END) as duree_ent_ship /*Livraison*/
FROM ".$table." c
LEFT JOIN ca_agences a ON a.id_agence = c.id_agence
WHERE a.supp=0 AND rdv NOT IN(3,4)
".$periodeArriveeQ.$agcQ.$daysagoQ."
GROUP BY rdv";
if(count($valuesg)>0){
$stmt = excuteQuery($q_duree_entretien, $valuesg);
$result_2 = $stmt['stmt'];
}else{
$result_2 = $GLOBALS['cnx']->query($q_duree_entretien);
}
$DURATIONS_ENTRETIEN = array();
if($result_2->rowCount() >0){
while ($row = $result_2->fetchObject()){
$obj = new stdClass();
switch ($row->rdv) {
case 0:
$obj->type = 'SRDV';
$obj->duree = hms($row->duree_ent_srdv);
$obj->color = '#2196f3';
break;
case 1:
$obj->type = 'RDV';
$obj->duree = hms($row->duree_ent_rdv);
$obj->color = '#f44336';
break;
case 5:
$obj->type = 'Livraison';
$obj->duree = hms($row->duree_ent_ship);
$obj->color = $GLOBALS["PILE_CONF"]["COLORS"]["SHIP"];
break;
}
$DURATIONS_ENTRETIEN[] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
//Nombre de visite (RDV/SRDV) request
$q_nb_visite = "SELECT rdv,
COUNT(CASE when rdv = '0' then 1 END ) as noAppointment,
COUNT(CASE when rdv = '1' then 1 END ) as appointment,
COUNT(CASE when rdv = '5' then 1 END ) as ship
FROM ".$table." c
LEFT JOIN ca_agences a ON a.id_agence = c.id_agence
WHERE a.supp=0 AND rdv NOT IN(3,4)
".$periodeArriveeQ.$agcQ.$daysagoQ."
GROUP BY rdv";
if(count($valuesg)>0){
$stmt = excuteQuery($q_nb_visite, $valuesg);
$result_3 = $stmt['stmt'];
}else{
$result_3 = $GLOBALS['cnx']->query($q_nb_visite);
}
$NB_VISITES = array();
if($result_3->rowCount() >0){
while ($row = $result_3->fetchObject()){
$obj = new stdClass();
switch ($row->rdv) {
case 0:
$obj->type = 'SRDV';
$obj->visite = $row->noAppointment;
$obj->color = '#2196f3';
break;
case 1:
$obj->type = 'RDV';
$obj->visite = $row->appointment;
$obj->color = '#f44336';
break;
case 5:
$obj->type = 'Livraison';
$obj->visite = $row->ship;
$obj->color = $GLOBALS["PILE_CONF"]["COLORS"]["SHIP"];
break;
}
$NB_VISITES[count($NB_VISITES)] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
//Agences (ACTIF/INACTIF) request
$q_agences = "SELECT is_active,COUNT(*) nb
FROM ca_agences
WHERE supp = :supp";
if($_SESSION['profil'] != 100){
$qagcByProfil = " AND id_agence IN (SELECT id_agence FROM ca_links WHERE id_admin = ". intval($_SESSION["id"]) .")" ;
$q_agences.=$qagcByProfil;
}
$q_agences .= " GROUP BY is_active";
$values_agences = array(':supp' => 0);
$stmt_agences = excuteQuery($q_agences, $values_agences);
$result_4 = $stmt_agences['stmt'];
$AGENCES_LIST = array();
if($result_4->rowCount() >0){
while ($row = $result_4->fetchObject()){
$obj = new stdClass();
$obj->type = $row->is_active == 1?'Actives':'Inactives';
$obj->value = $row->nb;
$obj->title_popup = $row->is_active ==1 ?'Agences actives':'Agences inactives';
$obj->status = $row->is_active;
$obj->color = $row->is_active == 1?'#3366cc':'#dc3912';
$AGENCES_LIST[count($AGENCES_LIST)] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
//Motifs request
$joinQ = count($values)>0?" LEFT JOIN ".$table." c ON cm.id_client=c.id_client":"";
$rdvQ = count($values)>0?"AND rdv = 0":"";
$q_motifs = "SELECT cm.id_motif,COUNT(cm.id_motif) nb, m.titre, m.code
FROM ca_historique_client_motifs cm
".$joinQ."
LEFT JOIN ca_motifs m ON cm.id_motif=m.id_motif
LEFT JOIN ca_agences a ON a.id_agence = c.id_agence
WHERE a.supp=0
".$periodeArriveeMotifsQ.$agcMotifsQ.$daysagoQ."
".$rdvQ."
GROUP BY cm.id_motif";
if(count($valuesg)>0){
$stmt = excuteQuery($q_motifs, $valuesg);
$result_5 = $stmt['stmt'];
}else{
$result_5 = $GLOBALS['cnx']->query($q_motifs);
}
$MOTIFS_LIST = array();
if($result_5->rowCount() >0){
while ($row = $result_5->fetchObject()){
$obj = new stdClass();
$obj->type = $row->titre;
$obj->code = $row->code;
$obj->value = $row->nb;
$MOTIFS_LIST[count($MOTIFS_LIST)] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
//NFC request
$q_nfc = "SELECT nfcprov,COUNT(*) nb
FROM ".$table." c LEFT JOIN ca_agences a ON a.id_agence = c.id_agence WHERE a.supp=0 AND rdv NOT IN(3,4)
".$periodeArriveeQ.$agcQ.$daysagoQ."
GROUP BY nfcprov";
if(count($valuesg)>0){
$stmt = excuteQuery($q_nfc, $valuesg);
$result_6 = $stmt['stmt'];
}else{
$result_6 = $GLOBALS['cnx']->query($q_nfc);
}
$NFC_LIST = array();
if($result_6->rowCount() >0){
while ($row = $result_6->fetchObject()){
$obj = new stdClass();
$obj->type = $row->nfcprov == 1?'NFC':'Standard';
$obj->value = $row->nb;
$obj->color = $row->nfcprov == 1?'#2196f3':'#f44336';
$NFC_LIST[count($NFC_LIST)] = $obj;
}
// 0D80B1/008992/582583/931918/E30613/009597/ED1B2F
}
}
?>
Administration des bornes d'orientation
">
rowCount() == 0 && count($values)>0){?>
Aucun résultat
Type |
Visite |
type;?>
|
visite);?>
|
Durée moyenne d'attente
rowCount() == 0 && count($values)>0){ ?>
Aucun résultat
rowCount() == 0 && count($values)>0){ ?> style="display:none;" style="width: 60%; height: 200px;display: inline-block;" >
rowCount() == 0 && count($values)>0){ ?>style="display:none;">
Type |
Durée |
type;?>
|
duree;?>
|
Durée moyenne d'entretien
rowCount() == 0 && count($values)>0){ ?>
Aucun résultat
rowCount() == 0 && count($values)>0){ ?> style="display:none;">
Type |
Durée |
type;?>
|
duree;?>
|
rowCount() == 0 && count($values)>0){ ?>
Aucun résultat
Motif |
Visite |
type)){
?>
code;?>
type;?>
|
value);?>
|
Type d'identification
rowCount() == 0 && count($values)>0){ ?>
Aucun résultat
Type |
Visite |
type == 'NFC'){
$nfc_val = $nfc_val + $NFC->value;
}else{
$standard_val = $standard_val + $NFC->value;
}
}
?>
Standard |
|
NFC |
|
Bienvenue sur le Back-Office d'administration.