- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasksync.php
- Класс: CTaskSync
- Вызов: CTaskSync::AddItem
static function AddItem($arFields)
{
global $DB;
if ( ! (CModule::IncludeModule("dav") && CDavExchangeTasks::IsExchangeEnabled()) )
{
return;
}
$bodyType = 'html';
if (
isset($arFields['DESCRIPTION_IN_BBCODE'])
&& ($arFields['DESCRIPTION_IN_BBCODE'] === 'Y')
)
{
$bodyType = 'text';
}
$priorityMapping = array_flip(self::$PriorityMapping);
$arModifyEventArray = array(
"USER_ID" => $arFields["RESPONSIBLE_ID"],
"SUBJECT" => $arFields["TITLE"],
"BODY" => $arFields["DESCRIPTION"],
"IMPORTANCE" => $priorityMapping[mb_strtolower($arFields["PRIORITY"])],
'GUID' => $arFields['GUID'] ?? null,
//'SERIALIZED_DATA' => serialize(array('DESCRIPTION' => $arFields["DESCRIPTION"], 'TITLE' => $arFields["TITLE"])),
"ACTUAL_WORK" => (int)($arFields["DURATION_FACT"] ?? 0) * 60,
"STATUS" => self::$StatusMappingReverse[$arFields["STATUS"]],
"TOTAL_WORK" => (int)($arFields["DURATION_PLAN"] ?? 0) * 60,
"BODY_TYPE" => $bodyType
);
if ($arFields["START_DATE_PLAN"])
{
$arModifyEventArray["START_DATE"] = $arFields["START_DATE_PLAN"];
}
if ($arFields["DEADLINE"])
{
$arModifyEventArray["DUE_DATE"] = $arFields["DEADLINE"];
}
$result = CDavExchangeTasks::DoAddItem($arModifyEventArray["USER_ID"], $arModifyEventArray);
if (array_key_exists("XML_ID", $result))
{
$arExchangeFields = array(
"EXCHANGE_MODIFIED" => $result["MODIFICATION_LABEL"],
"EXCHANGE_ID" => $result["XML_ID"]
);
$strUpdate = $DB->PrepareUpdate("b_tasks", $arExchangeFields, "tasks");
$strSql = "UPDATE b_tasks SET ".$strUpdate." WHERE ID=".$arFields["ID"];
$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
}
}