Example #1
0
 function SendAgent()
 {
     global $DB;
     /** @noinspection PhpDynamicAsStaticMethodCallInspection */
     $arFilter = array("<=REMIND_DATE" => (string) new \Bitrix\Main\Type\DateTime());
     $rsReminders = CTaskReminders::GetList(array("date" => "asc"), $arFilter);
     while ($arReminder = $rsReminders->Fetch()) {
         $rsTask = CTasks::GetByID($arReminder["TASK_ID"], false);
         if ($arTask = $rsTask->Fetch()) {
             // remind about not closed tasks only
             if ($arTask['CLOSED_DATE'] === NULL) {
                 /** @noinspection PhpDynamicAsStaticMethodCallInspection */
                 $rsUser = CUser::GetByID($arReminder["USER_ID"]);
                 if ($arUser = $rsUser->Fetch()) {
                     $arTask["PATH_TO_TASK"] = CTaskNotifications::GetNotificationPath($arUser, $arTask["ID"]);
                     $arFilterForSendedRemind = array_merge($arFilter, array('TASK_ID' => $arReminder['TASK_ID'], 'USER_ID' => $arReminder['USER_ID'], 'TRANSPORT' => $arReminder['TRANSPORT'], 'TYPE' => $arReminder['TYPE']));
                     CTaskReminders::Delete($arFilterForSendedRemind);
                     if ($arReminder["TRANSPORT"] == self::REMINDER_TRANSPORT_EMAIL || !CModule::IncludeModule("socialnetwork") || !CTaskReminders::__SendJabberReminder($arUser["ID"], $arTask)) {
                         CTaskReminders::__SendEmailReminder($arUser["EMAIL"], $arTask);
                     }
                 }
             }
         }
     }
     // Some older items can still exists (for removed users, etc.)
     CTaskReminders::Delete($arFilter);
     return "CTaskReminders::SendAgent();";
 }