• Модуль: 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__); } }