Example #1
0
 /**
  * Cron action on tasks : ExpiredTasks
  *
  * @param $task for log, if NULL display
  *
  **/
 static function cronResourcesTask($task = NULL)
 {
     global $DB, $CFG_GLPI;
     if (!$CFG_GLPI["use_mailing"]) {
         return 0;
     }
     $message = array();
     $cron_status = 0;
     $resourcetask = new self();
     $query_expired = $resourcetask->queryAlert();
     $querys = array(Alert::END => $query_expired);
     $task_infos = array();
     $task_messages = array();
     foreach ($querys as $type => $query) {
         $task_infos[$type] = array();
         foreach ($DB->request($query) as $data) {
             $entity = $data['entities_id'];
             $message = $data["name"] . ": " . Html::convDate($data["date_end"]) . "<br>\n";
             $task_infos[$type][$entity][] = $data;
             if (!isset($tasks_infos[$type][$entity])) {
                 $task_messages[$type][$entity] = __('Not finished tasks', 'resources') . "<br />";
             }
             $task_messages[$type][$entity] .= $message;
         }
     }
     foreach ($querys as $type => $query) {
         foreach ($task_infos[$type] as $entity => $tasks) {
             Plugin::loadLang('resources');
             if (NotificationEvent::raiseEvent("AlertExpiredTasks", new PluginResourcesResource(), array('entities_id' => $entity, 'tasks' => $tasks))) {
                 $message = $task_messages[$type][$entity];
                 $cron_status = 1;
                 if ($task) {
                     $task->log(Dropdown::getDropdownName("glpi_entities", $entity) . ":  {$message}\n");
                     $task->addVolume(1);
                 } else {
                     Session::addMessageAfterRedirect(Dropdown::getDropdownName("glpi_entities", $entity) . ":  {$message}");
                 }
             } else {
                 if ($task) {
                     $task->log(Dropdown::getDropdownName("glpi_entities", $entity) . ":  Send tasks alert failed\n");
                 } else {
                     Session::addMessageAfterRedirect(Dropdown::getDropdownName("glpi_entities", $entity) . ":  Send tasks alert failed", false, ERROR);
                 }
             }
         }
     }
     return $cron_status;
 }