static function SplitTicket($arParam)
{
global $DB;
$err_mess = (CAllTicket::err_mess())."
Function: SplitTicket
Line: ";
$intLastTicketID = intval($arParam['SOURCE_TICKET_ID']);
$arTicket = CTicket::GetByID($intLastTicketID, $lang = LANG, $checkRights="N", $get_user_name="N", $get_extra_names="N")->Fetch();
$arSite = CSite::GetById($arTicket['SITE_ID'])->Fetch();
$stLastTicketTitle = htmlspecialcharsEx($arParam['SOURCE_TICKET_TITLE']);
$intSplitMesageID = intval($arParam['SOURCE_MESSAGE_NUM']);
$stSplitMesageDate = MakeTimeStamp($arParam['SOURCE_MESSAGE_DATE'], "DD.MM.YYYY HH:MI:SS") ? $arParam['SOURCE_MESSAGE_DATE'] : '';
BitrixMainLocalizationLoc::loadLanguageFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/support/admin/ticket_edit.php', $arSite['LANGUAGE_ID']);
// add to the previous post about ticket allocation of posts in a separate branch
$arFields = array(
"MESSAGE_CREATED_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
"MESSAGE_CREATED_MODULE_NAME" => "support",
"MESSAGE_CREATED_GUEST_ID" => "null",
"MESSAGE_SOURCE_ID" => $arParam['SOURCE_MESSAGE_ID'],
"MESSAGE" => BitrixMainLocalizationLoc::getMessage("SUP_SPLIT_MESSAGE_USER_1", array("#MESSAGE_DATE#" => $stSplitMesageDate, "#TITLE#" => '# '.$arParam['SPLIT_TICKET_ID'].' "'.$arParam['SPLIT_TICKET_TITLE'].'"'), $arSite['LANGUAGE_ID']),
"LOG" => "N",
"HIDDEN" => "N",
"NOT_CHANGE_STATUS" => "Y",
"MESSAGE_AUTHOR_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
);
CTicket::AddMessage($intLastTicketID, $arFields, $arFiles=Array(), "N");
// add to the previous post about ticket allocation of posts in a separate branch (support log)
$arFields_log = array(
"MESSAGE_CREATED_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
"MESSAGE_CREATED_MODULE_NAME" => "support",
"MESSAGE_CREATED_GUEST_ID" => "null",
"MESSAGE_SOURCE_ID" => $arParam['SOURCE_MESSAGE_ID'],
"MESSAGE" => BitrixMainLocalizationLoc::getMessage("SUP_SPLIT_MESSAGE_LOG_1", array("#MESSAGE_ID#" => $intSplitMesageID, "#TITLE#" => ' # '.$arParam['SPLIT_TICKET_ID'].' "'.$arParam['SPLIT_TICKET_TITLE'].'"'), $arSite['LANGUAGE_ID']),
"LOG" => "Y",
);
CTicket::AddMessage($intLastTicketID, $arFields_log, $arFiles_log=Array(), "N");
// add a new ticket allocation message posted in a separate branch
$arFields = array(
"MESSAGE_CREATED_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
"MESSAGE_CREATED_MODULE_NAME" => "support",
"MESSAGE_CREATED_GUEST_ID" => "null",
"MESSAGE_SOURCE_ID" => $arParam['SOURCE_MESSAGE_ID'],
"MESSAGE" => BitrixMainLocalizationLoc::getMessage("SUP_SPLIT_MESSAGE_USER_2", array("#MESSAGE_DATE#" => $stSplitMesageDate, "#TITLE#" => '# '.$intLastTicketID.' "'.$stLastTicketTitle.'"'), $arSite['LANGUAGE_ID']),
"LOG" => "N",
"HIDDEN" => "N",
"NOT_CHANGE_STATUS" => "Y",
"MESSAGE_AUTHOR_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
);
CTicket::AddMessage($arParam['SPLIT_TICKET_ID'], $arFields, $arFiles=Array(), "N");
// add a new ticket allocation message posted in a separate branch (support log)
$arFields_log = array(
"MESSAGE_CREATED_USER_ID" => $arParam['SPLIT_MESSAGE_USER_ID'],
"MESSAGE_CREATED_MODULE_NAME" => "support",
"MESSAGE_CREATED_GUEST_ID" => "null",
"MESSAGE_SOURCE_ID" => $arParam['SOURCE_MESSAGE_ID'],
"MESSAGE" => BitrixMainLocalizationLoc::getMessage("SUP_SPLIT_MESSAGE_LOG_2", array("#MESSAGE_ID#" => $intSplitMesageID, "#TITLE#" => ' # '.$intLastTicketID.' "'.$stLastTicketTitle.'"'), $arSite['LANGUAGE']),
"LOG" => "Y",
);
CTicket::AddMessage($arParam['SPLIT_TICKET_ID'], $arFields_log, $arFiles_log=Array(), "N");
// If the message that we want to separate, there are attached files, copy them
if (isset($arParam['SPLIT_ATTACH_FILE']))
{
$res = CTicket::GetMessageList('ID', 'ASC', array('TICKET_ID'=>$arParam['SPLIT_TICKET_ID']));
$MESSAGE = $res->Fetch();
foreach($arParam['SPLIT_ATTACH_FILE'] as $key => $iAttachFile)
{
$fid = CFile::CopyFile(intval($iAttachFile));
if ($fid>0)
{
$arFields_fi = array(
"HASH" => "'".$DB->ForSql(md5(uniqid(mt_rand(), true).time()), 255)."'",
"MESSAGE_ID" => $MESSAGE['ID'],
"FILE_ID" => $fid,
"TICKET_ID" => $arParam['SPLIT_TICKET_ID'],
"EXTENSION_SUFFIX" => "null"
);
$DB->Insert("b_ticket_message_2_file",$arFields_fi, $err_mess.__LINE__);
}
}
}
}