diff --git a/config/modules.json b/config/modules.json index 9af840c..0c9e22d 100755 --- a/config/modules.json +++ b/config/modules.json @@ -106,6 +106,14 @@ "chart": { + "communication_direction": { + "description": "Renvoie les données pour un graphique sur les sens de communications", + "permissions": ["admin"], + "parameters": { + "subject": { "description": "Identifiant du sujet à étudier,", "type": "id" } + } + }, + "communication_type": { "description": "Renvoie les données pour un graphique sur les types de communications", "permissions": ["admin"], diff --git a/manager/module/chart.php b/manager/module/chart.php index 0eade16..580df15 100755 --- a/manager/module/chart.php +++ b/manager/module/chart.php @@ -11,10 +11,10 @@ class chart{ - /* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (MANQUE/ENTRANT/SORTANT) + /* RETOURNE UN JEU DE DONNEES POUR LE SENS DE COMMUNICATION (MANQUE/ENTRANT/SORTANT) * */ - public static function communication_type($params){ + public static function communication_direction($params){ extract($params); $subject = intval($subject); @@ -73,6 +73,66 @@ ); } + + + + + /* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (APPEL/SMS) + * + */ + public static function communication_type($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 */ + $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 */ + $MISSED = 0; + $OUTGOING = 0; + $INCOMING = 0; + + } + + + return array( + 'ModuleError' => ManagerError::Success, + 'labels' => array('APPELS', 'SMS'), + 'data' => array($PHONE, $SMS) + ); + } + } diff --git a/test-charts/communication-direction.php b/test-charts/communication-direction.php new file mode 100644 index 0000000..e38b2c3 --- /dev/null +++ b/test-charts/communication-direction.php @@ -0,0 +1,57 @@ + + +
+ +