Пример #1
0
 /**
  * Cette fonction retourne la dernère adresse d'un path
  * @param int $pathId : L'id du path
  * @return mixed : La dernière adresse du path sous forme d'un numéro de rue ou faux si le camion n'existe pas
  */
 public function path_last_address($pathId)
 {
     global $db;
     if (!($position = $db->getFromTableWhere('position', ['path_id' => $pathId], $order_by = 'at', $desc = true, $limit = 1))) {
         return false;
     }
     $position = $position[0];
     $address = internalTools::getAdressFromLatitudeAndLongitude($position['latitude'], $position['longitude']);
 }
Пример #2
0
 /**
  * Cette fonction permet de demander une intervention pour un employé
  * @param int $pathId : L'id du path sur lequel il faut intervenir
  * @param int $repairerId : L'id du réparateur à contacter
  */
 public function askForIntervention($pathId, $repairerId)
 {
     global $logger;
     global $db;
     $logger->log('info', 'Access Back Office, ask for intervention for path id : ' . $pathId . ' and repairer id : ' . $repairerId);
     $retourOk = json_encode(['success' => true]);
     $retourKo = json_encode(['success' => false]);
     if (!$db->getFromTableWhere('path', ['id' => $pathId])) {
         $logger->log('warning', 'No path with id ' . $pathId . ' find in database');
         echo $retourKo;
         return false;
     }
     $availablesRepairers = $db->getAvailablesRepairers();
     $isAvailable = false;
     foreach ($availablesRepairers as $availablesRepairer) {
         if ($availablesRepairer['id'] == $repairerId) {
             $repairer = $availablesRepairer;
             $isAvailable = true;
             break;
         }
     }
     if (!$isAvailable) {
         $logger->log('warning', 'repairer with id : ' . $repairerId . ' isn\'t available');
         echo $retourKo;
         return false;
     }
     $intervention = array('path_id' => $pathId, 'repairer_id' => $repairerId, 'status' => internalConstants::$interventionStatus['WAIT']);
     if (!$db->insertIntoTable('intervention', $intervention)) {
         $logger->log('error', 'can\'t save intevention : ' . json_encode($intervention));
         echo $retourKo;
         return false;
     }
     $interventionId = $db->lastId();
     //On envoie un SMS au réparateur
     $internalSms = new internalSms();
     $paths = $db->getFromTableWhere('path', ['id' => $pathId]);
     $path = $paths[0];
     $path['truck'] = $db->getFromTableWhere('truck', ['id' => $path['truck_id']])[0];
     $path['position'] = $db->getFromTableWhere('position', ['path_id' => $path['id']], $order_by = 'at', $desc = true, $limit = 1)[0];
     $text = "Une intervention sur le camion N°" . $path['truck']['matriculation'] . " vous attend à l'adresse suivante : " . internalTools::getAdressFromLatitudeAndLongitude($path['position']['latitude'], $path['position']['longitude']) . "\n" . "Pour valider l'intervention, renvoyez le SMS suivant à ce numéro : 'intervention:" . $interventionId . ":ok'\n" . "\n" . "Si vous n'avez pas répondu d'ici 5 minutes l'intervention sera annulée.";
     $logger->log('info', 'Send SMS to repairer id : ' . $repairer['id'] . ' (' . $repairer['phone'] . ') with message : ' . $text);
     $internalSms = new internalSms();
     $internalSms->sendSmsToNumber($text, $repairer['phone']);
     echo $retourOk;
     return true;
 }