- Модуль: support
- Путь к файлу: ~/bitrix/modules/support/classes/general/reminder.php
- Класс: CAllTicketReminder
- Вызов: CAllTicketReminder::RecalculateSupportDeadline
static function RecalculateSupportDeadline($arFilter = array())
{
global $DB;
$err_mess = (CAllTicketReminder::err_mess())."
Function: RecalculateSupportDeadline
Line: ";
$arSqlSearch = Array();
if(!is_array($arFilter)) $arFilter = array();
foreach($arFilter as $key => $val)
{
if((is_array($val) && count($val) <= 0) || (!is_array($val) && (string) $val == '')) continue;
$key = mb_strtoupper($key);
if (is_array($val)) $val = implode(" | ",$val);
switch($key)
{
case "ID":
$arSqlSearch[] = GetFilterQuery("T.ID", $val, "N");
break;
case "SLA_ID":
$arSqlSearch[] = GetFilterQuery("T.SLA_ID", $val, "N");
break;
}
}
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSql = "
SELECT
T.ID ID,
T.SLA_ID,
" . $DB->DateToCharFunction("T.DEADLINE_SOURCE_DATE", "FULL") . " DEADLINE_SOURCE_DATE,
" . $DB->DateToCharFunction("T.D_1_USER_M_AFTER_SUP_M", "FULL") . " D_1_USER_M_AFTER_SUP_M,
T.IS_OVERDUE,
SLA.RESPONSE_TIME_UNIT,
SLA.RESPONSE_TIME,
SLA.NOTICE_TIME_UNIT,
SLA.NOTICE_TIME
FROM
b_ticket T
INNER JOIN b_ticket_sla SLA
ON T.SLA_ID = SLA.ID
AND T.LAST_MESSAGE_BY_SUPPORT_TEAM = 'N'
AND (T.DATE_CLOSE IS NULL)
WHERE
$strSqlSearch
";
$rsTicket = $DB->Query($strSql, false, $err_mess . __LINE__);
while($arTicket = $rsTicket->Fetch())
{
self::RecalculateSupportDeadlineForOneTicket($arTicket);
}
}