• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangetasks.php
  • Класс: CDavExchangeTasks
  • Вызов: CDavExchangeTasks::ConvertTaskToArray
private function ConvertTaskToArray($taskItem)
{
	$arResultItem = array();

	$arItemId = $taskItem->GetPath("/Task/ItemId");
	if (!empty($arItemId))
	{
		$arResultItem["XML_ID"] = $arItemId[0]->GetAttribute("Id");
		$arResultItem["MODIFICATION_LABEL"] = $arItemId[0]->GetAttribute("ChangeKey");
	}

	$arSubject = $taskItem->GetPath("/Task/Subject");
	if (!empty($arSubject))
	{
		$arResultItem["SUBJECT"] = $this->Encode($arSubject[0]->GetContent());
	}

	$arBody = $taskItem->GetPath("/Task/Body");
	if (!empty($arBody))
	{
		$arResultItem["BODY"] = $this->Encode($arBody[0]->GetContent());
		$arResultItem["BODY_TYPE"] = $arBody[0]->GetAttribute("BodyType");
	}

	$arDateTimeCreated = $taskItem->GetPath("/Task/DateTimeCreated");
	if (!empty($arDateTimeCreated))
	{
		$arResultItem["DATE_CREATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arDateTimeCreated[0]->GetContent());
	}

	$arImportance = $taskItem->GetPath("/Task/Importance");
	if (!empty($arImportance))
	{
		$arResultItem["IMPORTANCE"] = $arImportance[0]->GetContent();
	}

	$arReminderIsSet = $taskItem->GetPath("/Task/ReminderIsSet");
	if (!empty($arReminderIsSet) && ($arReminderIsSet[0]->GetContent() === "true"))
	{
		$arReminderMinutesBeforeStart = $taskItem->GetPath("/Task/ReminderMinutesBeforeStart");
		if (!empty($arReminderMinutesBeforeStart))
		{
			$arResultItem["REMINDER_MINUTES_BEFORE_START"] = $arReminderMinutesBeforeStart[0]->GetContent();
		}
	}

	$arActualWork = $taskItem->GetPath("/Task/ActualWork");
	if (!empty($arActualWork))
	{
		$arResultItem["ACTUAL_WORK"] = $arActualWork[0]->GetContent();
	}

	$arBillingInformation = $taskItem->GetPath("/Task/BillingInformation");
	if (!empty($arBillingInformation))
	{
		$arResultItem["BILLING_INFORMATION"] = $arBillingInformation[0]->GetContent();
	}

	$arMileage = $taskItem->GetPath("/Task/Mileage");
	if (!empty($arMileage))
	{
		$arResultItem["MILEAGE"] = $arMileage[0]->GetContent();
	}

	$arStartDate = $taskItem->GetPath("/Task/StartDate");
	if (!empty($arStartDate))
	{
		$arResultItem["START_DATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arStartDate[0]->GetContent());
	}

	$arDueDate = $taskItem->GetPath("/Task/DueDate");
	if (!empty($arDueDate))
	{
		$arResultItem["DUE_DATE"] = CDavICalendarTimeZone::GetFormattedServerDateTime($arDueDate[0]->GetContent());
	}

	$arIsComplete = $taskItem->GetPath("/Task/IsComplete");
	if (!empty($arIsComplete))
	{
		$arResultItem["IS_COMPLETE"] = (($arIsComplete[0]->GetContent() === "true") ? true : false);
	}

	$arIsRecurring = $taskItem->GetPath("/Task/IsRecurring");
	if (!empty($arIsRecurring))
	{
		$arResultItem["IS_RECURRING"] = (($arIsRecurring[0]->GetContent() === "true") ? true : false);
	}

	$arRecurrence = $taskItem->GetPath("/Task/Recurrence");
	if (!empty($arRecurrence))
	{
		$ar = $this->ConvertRecurrenceToArray($arRecurrence[0]);
		if (!empty($ar))
		{
			$arResultItem = array_merge($arResultItem, $ar);
			$arResultItem["IS_RECURRING"] = true;
		}
	}

	$arPercentComplete = $taskItem->GetPath("/Task/PercentComplete");
	if (!empty($arPercentComplete))
	{
		$arResultItem["PERCENT_COMPLETE"] = $arPercentComplete[0]->GetContent();
	}

	$arStatus = $taskItem->GetPath("/Task/Status");
	if (!empty($arStatus))
	{
		$arResultItem["STATUS"] = $arStatus[0]->GetContent();
	}

	$arExtendedProperty = $taskItem->GetPath("/Task/ExtendedProperty");
	$extendedPropertiesCount = count($arExtendedProperty);
	for ($i = 0; $i < $extendedPropertiesCount; $i++)
	{
		$arTmp = $arExtendedProperty[$i]->GetContent();

		$propertyName  = $arTmp[0]->GetAttribute('PropertyName');
		$propertyValue = $arTmp[1]->GetContent();

		$arResultItem['ExtendedProperty'][$i] = array(
			'Name'  => $propertyName,
			'Value' => $this->Encode(base64_decode($propertyValue))
		);
	}

	$arStatusDescription = $taskItem->GetPath("/Task/StatusDescription");
	if (!empty($arStatusDescription))
	{
		$arResultItem["STATUS_DESCRIPTION"] = $arStatusDescription[0]->GetContent();
	}

	$arTotalWork = $taskItem->GetPath("/Task/TotalWork");
	if (!empty($arTotalWork))
	{
		$arResultItem["TOTAL_WORK"] = $arTotalWork[0]->GetContent();
	}

	$arOwner = $taskItem->GetPath("/Task/Owner");
	if (!empty($arOwner))
	{
		$arResultItem["OWNER"] = $this->Encode($arOwner[0]->GetContent());
	}

	return $arResultItem;
}