2016-04-08 16:06:50 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace manager\module;
|
|
|
|
use \manager\sessionManager;
|
|
|
|
use \manager\ManagerError;
|
2016-05-22 12:49:20 +00:00
|
|
|
use \manager\lightdb;
|
2016-04-08 16:06:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-30 09:33:01 +00:00
|
|
|
class chart{
|
2016-04-08 16:06:50 +00:00
|
|
|
|
|
|
|
|
2016-05-22 12:54:57 +00:00
|
|
|
/* RETOURNE UN JEU DE DONNEES POUR LE SENS DE COMMUNICATION (MANQUE/ENTRANT/SORTANT)
|
2016-04-08 16:06:50 +00:00
|
|
|
*
|
|
|
|
*/
|
2016-05-22 14:41:12 +00:00
|
|
|
public static function direction($params){
|
2016-04-18 09:30:38 +00:00
|
|
|
extract($params);
|
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
$subject = intval($subject);
|
|
|
|
|
|
|
|
|
|
|
|
/* [1] On récupère les données de ce sujet
|
|
|
|
=========================================================*/
|
|
|
|
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
|
|
|
$data = $db->fetch($subject);
|
|
|
|
$db->close();
|
|
|
|
|
|
|
|
// Si erreur
|
|
|
|
if( $data === false )
|
|
|
|
return array( 'ModuleError' => ManagerError::ModuleError );
|
2016-04-08 16:06:50 +00:00
|
|
|
|
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* [2] S'il a un journal d'appel, on renvoie les données
|
|
|
|
=========================================================*/
|
|
|
|
if( isset($data['logs']) && is_array($data['logs']) ){
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* (1) On initialise les compteurs */
|
|
|
|
$MISSED = 0;
|
|
|
|
$OUTGOING = 0;
|
|
|
|
$INCOMING = 0;
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* (2) On incrémente les compteurs */
|
|
|
|
foreach($data['logs'] as $log){
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* (3) Si ce n'est pas un appel, on passe au suivant */
|
|
|
|
if( $log['type'] != 0 )
|
|
|
|
continue;
|
2016-04-18 09:30:38 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* (4) On incrémente les types */
|
|
|
|
$MISSED += ($log['direction']==2) ? 1 : 0;
|
|
|
|
$OUTGOING += ($log['direction']==1) ? 1 : 0;
|
|
|
|
$INCOMING += ($log['direction']==0) ? 1 : 0;
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
}
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* [3] Si aucun journal d'appel
|
|
|
|
=========================================================*/
|
|
|
|
}else{
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
/* (1) On initialise les compteurs */
|
|
|
|
$MISSED = 0;
|
|
|
|
$OUTGOING = 0;
|
|
|
|
$INCOMING = 0;
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:49:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return array(
|
|
|
|
'ModuleError' => ManagerError::Success,
|
|
|
|
'labels' => array('ENTRANT', 'SORTANT', 'MANQUÉ'),
|
|
|
|
'data' => array($INCOMING, $OUTGOING, $MISSED)
|
|
|
|
);
|
|
|
|
}
|
2016-04-08 16:06:50 +00:00
|
|
|
|
2016-05-22 12:54:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (APPEL/SMS)
|
|
|
|
*
|
|
|
|
*/
|
2016-05-22 14:41:12 +00:00
|
|
|
public static function type($params){
|
2016-05-22 12:54:57 +00:00
|
|
|
extract($params);
|
|
|
|
|
|
|
|
$subject = intval($subject);
|
|
|
|
|
|
|
|
|
|
|
|
/* [1] On récupère les données de ce sujet
|
|
|
|
=========================================================*/
|
|
|
|
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
|
|
|
$data = $db->fetch($subject);
|
|
|
|
$db->close();
|
|
|
|
|
|
|
|
// Si erreur
|
|
|
|
if( $data === false )
|
|
|
|
return array( 'ModuleError' => ManagerError::ModuleError );
|
|
|
|
|
|
|
|
|
|
|
|
/* [2] S'il a un journal d'appel, on renvoie les données
|
|
|
|
=========================================================*/
|
|
|
|
if( isset($data['logs']) && is_array($data['logs']) ){
|
|
|
|
|
|
|
|
/* (1) On initialise les compteurs */
|
|
|
|
$PHONE = 0;
|
|
|
|
$SMS = 0;
|
|
|
|
|
|
|
|
/* (2) On incrémente les compteurs */
|
|
|
|
foreach($data['logs'] as $log){
|
|
|
|
|
|
|
|
/* (3) On incrémente les compteurs */
|
|
|
|
$PHONE += ($log['type']==0) ? 1 : 0;
|
|
|
|
$SMS += ($log['type']==1) ? 1 : 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/* [3] Si aucun journal d'appel
|
|
|
|
=========================================================*/
|
|
|
|
}else{
|
|
|
|
|
|
|
|
/* (1) On initialise les compteurs */
|
2016-05-22 13:20:49 +00:00
|
|
|
$H = 0;
|
|
|
|
$F = 0;
|
2016-05-22 12:54:57 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return array(
|
|
|
|
'ModuleError' => ManagerError::Success,
|
|
|
|
'labels' => array('APPELS', 'SMS'),
|
|
|
|
'data' => array($PHONE, $SMS)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2016-05-22 13:20:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* RETOURNE UN JEU DE DONNEES POUR LE SEXE DES CONTACTS
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static function sexe($params){
|
|
|
|
extract($params);
|
|
|
|
|
|
|
|
$subject = intval($subject);
|
|
|
|
|
|
|
|
|
|
|
|
/* [1] On récupère les données de ce sujet
|
|
|
|
=========================================================*/
|
|
|
|
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
|
|
|
$data = $db->fetch($subject);
|
|
|
|
$db->close();
|
|
|
|
|
|
|
|
// Si erreur
|
|
|
|
if( $data === false )
|
|
|
|
return array( 'ModuleError' => ManagerError::ModuleError );
|
|
|
|
|
|
|
|
|
|
|
|
/* [2] S'il a un journal d'appel, on renvoie les données
|
|
|
|
=========================================================*/
|
|
|
|
if( isset($data['logs']) && is_array($data['logs']) ){
|
|
|
|
|
|
|
|
/* (1) On initialise les compteurs */
|
|
|
|
$H = 0;
|
|
|
|
$F = 0;
|
|
|
|
|
|
|
|
/* (2) On incrémente les compteurs */
|
|
|
|
foreach($data['logs'] as $log){
|
|
|
|
|
|
|
|
/* (3) On récupère le contact associé */
|
|
|
|
$associatedContact = null;
|
|
|
|
foreach($data['contacts'] as $contact)
|
|
|
|
if( $log['id'] == $contact['id'] )
|
|
|
|
$associatedContact = $contact;
|
|
|
|
|
|
|
|
// Si on ne trouve pas, on passe au suivant
|
|
|
|
if( is_null($associatedContact) )
|
|
|
|
continue;
|
|
|
|
|
|
|
|
/* (4) On incrémente les compteurs */
|
|
|
|
$H += ($associatedContact['sexe']==0) ? 1 : 0;
|
|
|
|
$F += ($associatedContact['sexe']==1) ? 1 : 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/* [3] Si aucun journal d'appel
|
|
|
|
=========================================================*/
|
|
|
|
}else{
|
|
|
|
|
|
|
|
/* (1) On initialise les compteurs */
|
|
|
|
$H = 0;
|
|
|
|
$F = 0;
|
|
|
|
|
|
|
|
}/* (1) On initialise les compteurs */
|
|
|
|
|
|
|
|
|
|
|
|
return array(
|
|
|
|
'ModuleError' => ManagerError::Success,
|
|
|
|
'labels' => array('HOMME', 'FEMME'),
|
|
|
|
'data' => array($H, $F)
|
|
|
|
);
|
|
|
|
}
|
2016-04-08 16:06:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-04-18 09:30:38 +00:00
|
|
|
?>
|