public function getAverageTimePeriodPerAgentsImmat( $profileId,$granularity, $startDate, $endDate) { $dbAccess = $this->connectMysqlDatabase(); if (!$dbAccess['dbConnection']) { $logDebug = " Echec getQueueCallTopFiveReasonStats() " . $dbAccess['errorMessage'] . " " . $dbAccess['errorCode'] . " MSISDN :: $this->msisdn"; $this->svaLog->writeSystemLog($logDebug); die("IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES"); } else { $profileSql = ""; $userSql = ""; $limitSql = ""; $statusSql = ""; $campaignSql = ""; $date1Sql = ""; $date2Sql = ""; $serviceSql = ""; $sqlQuery = " SELECT DATE_FORMAT(a.close_datetime_d, '$granularity') AS periode, b.user_name_v AS agent, TIME_FORMAT(SEC_TO_TIME(AVG(TIMESTAMPDIFF(SECOND, a.ack_datetime_d, a.close_datetime_d))), '%H:%i:%s') AS temps_moyen_traitement, TIME_FORMAT(SEC_TO_TIME(AVG(TIMESTAMPDIFF(SECOND, a.creation_datetime_d, a.close_datetime_d))), '%H:%i:%s') AS temps_moyen, COUNT(*) AS total_tickets FROM queue_tickets_tab a JOIN master_users_tab b ON a.user_id_n = b.user_id_n WHERE a.close_datetime_d BETWEEN '$startDate' AND '$endDate' GROUP BY periode, agent ORDER BY periode ASC, temps_moyen_traitement ASC; "; // echo $sqlQuery; $sqlResult = mysql_query($sqlQuery, $dbAccess['dbConnection']); $this->closeMysqlConnection($dbAccess['dbConnection']); } return $this->mysqlRessourceJson($sqlResult); } public function QueueActivateTicket2($itemId, $newStatus, $userId) { $dbAccess = $this->connectMysqlDatabase(); if (!$dbAccess['dbConnection']) { die("IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES"); } // Récupérer l'object_number $sqlQuery = " SELECT b.object_number_n FROM master_users_tab a JOIN queue_object_dls_tab b ON a.user_id_n = b.user_id_n WHERE a.user_id_n = $userId "; $sqlResult = mysql_query($sqlQuery, $dbAccess['dbConnection']); $queryData = mysql_fetch_array($sqlResult); $objNumber = $queryData['object_number_n']; // UPDATE PROTÉGÉ $sqlQuery = " UPDATE queue_tickets_tab SET status_n = $newStatus, user_id_n = $userId, object_number_n = '$objNumber', ack_datetime_d = NOW(), is_played_n = 1 WHERE item_id_n = $itemId AND status_n = -1 "; mysql_query($sqlQuery, $dbAccess['dbConnection']); $affected = mysql_affected_rows($dbAccess['dbConnection']); $this->closeMysqlConnection($dbAccess['dbConnection']); if ($affected === 0) { // Ticket déjà pris return false; } return true; } //modifier voir public function getQueueNextTicketIdNoServiceCheck($userId) { $nextTicketId = 0; $dbAccess = $this->connectMysqlDatabase(); if (!$dbAccess['dbConnection']) { $logDebug = " Echec getQueueNextTicketIdNoServiceCheck() " . $dbAccess['errorMessage'] . " " . $dbAccess['errorCode'] . " MSISDN :: $this->msisdn"; $this->svaLog->writeSystemLog($logDebug); die("IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES"); } else { // Requête SANS vérification de service - prend simplement le prochain ticket avec status -1 $sqlQuery = " SELECT q.item_id_n FROM queue_tickets_tab q WHERE q.status_n = -1 ORDER BY q.item_id_n ASC LIMIT 1 "; $sqlResult = mysql_query($sqlQuery, $dbAccess['dbConnection']); $queryData = mysql_fetch_array($sqlResult); $nextTicketId = $queryData['item_id_n']; if($nextTicketId) { // Récupérer l'object_number de l'utilisateur $sqlQuery = " SELECT object_number_n FROM master_users_tab a, queue_object_dls_tab b WHERE a.user_id_n = b.user_id_n AND a.user_id_n = $userId "; $sqlResult = mysql_query($sqlQuery, $dbAccess['dbConnection']); $queryData = mysql_fetch_array($sqlResult); $objNumber = $queryData['object_number_n']; // Mettre à jour le ticket $sqlQuery = " UPDATE queue_tickets_tab SET status_n = 2, user_id_n = $userId, object_number_n = $objNumber, ack_datetime_d = NOW(), is_played_n = 1 WHERE item_id_n = $nextTicketId AND status_n = -1 "; mysql_query($sqlQuery, $dbAccess['dbConnection']); $affected = mysql_affected_rows($dbAccess['dbConnection']); if ($affected == 0) { // Ticket déjà pris par quelqu'un d'autre $nextTicketId = 0; } } $this->closeMysqlConnection($dbAccess['dbConnection']); } return $nextTicketId; }