• Модуль: support
  • Путь к файлу: ~/bitrix/modules/support/classes/general/reminder.php
  • Класс: CAllTicketReminder
  • Вызов: CAllTicketReminder::RecalculateLastMessageDeadline
static function RecalculateLastMessageDeadline($RSD = true)
{
	global $DB;
	$err_mess = (self::err_mess())."
Function: RecalculateLastMessage
Line: "; $DB->StartUsingMasterOnly(); $strSql = "SELECT count(*) C FROM b_ticket"; $rs = $DB->Query($strSql, false, $err_mess.__LINE__); $resC = $rs->Fetch(); if(!is_array($resC)) { return true; } if(!isset($resC["C"]) || $resC["C"] == 0) { return true; } $strUsers = implode(",", CTicket::GetSupportTeamAndAdminUsers()); $strSql0 = " b_ticket INNER JOIN ( SELECT T.ID TID, M.DATE_CREATE DATE_CREATE, M.ID ID, " . CTicket::isnull("Q.LMBS", "'Y'") . " LMBS FROM b_ticket as T LEFT JOIN ( SELECT TM.TICKET_ID ID, MIN(TM.ID) M_ID, 'N' LMBS FROM b_ticket_message TM INNER JOIN ( SELECT T.ID ID, MAX(" . CTicket::isnull("TM.ID", "0") . ") M_ID FROM b_ticket T LEFT JOIN b_ticket_message TM ON T.ID = TM.TICKET_ID AND (NOT(TM.IS_LOG='Y')) AND (NOT(TM.IS_HIDDEN='Y')) AND (NOT(TM.NOT_CHANGE_STATUS='Y')) AND TM.OWNER_USER_ID IN ($strUsers) WHERE T.DATE_CLOSE IS NULL GROUP BY T.ID ) AS Q ON TM.TICKET_ID = Q.ID AND TM.ID > Q.M_ID AND (NOT(TM.IS_LOG='Y')) AND (NOT(TM.IS_HIDDEN='Y')) AND (NOT(TM.NOT_CHANGE_STATUS='Y')) GROUP BY TM.TICKET_ID ) AS Q ON T.ID = Q.ID LEFT JOIN b_ticket_message AS M ON Q.M_ID = M.ID WHERE T.DATE_CLOSE IS NULL ) AS M ON b_ticket.ID = M.TID "; $sql = " UPDATE $strSql0 SET b_ticket.D_1_USER_M_AFTER_SUP_M = M.DATE_CREATE, b_ticket.ID_1_USER_M_AFTER_SUP_M = M.ID, b_ticket.LAST_MESSAGE_BY_SUPPORT_TEAM = M.LMBS "; $res = $DB->Query($sql, true); $res = $DB->Query("UPDATE b_ticket SET SUPPORT_DEADLINE = null, SUPPORT_DEADLINE_NOTIFY = null WHERE LAST_MESSAGE_BY_SUPPORT_TEAM = 'Y'", true); if($RSD) { self::RecalculateSupportDeadline(); } $DB->StopUsingMasterOnly(); }