• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/settings/section/calendar.php
  • Класс: Bitrix\Crm\Activity\Settings\Section\Calendar
  • Вызов: Calendar::prepareEntity
public function prepareEntity(OptionallyConfigurable $entity, bool $skipActiveSectionCheck = false): void
{
	if (isset($this->data['fromText']))
	{
		$start = (DateTime::createFromUserTime($this->data['fromText']))->toString();
		$end = (DateTime::createFromUserTime($this->data['toText']))->toString();

		$entity->setAdditionalFields([
			'DEADLINE' => $start,
			'START_TIME' => $start,
			'END_TIME' => $end,
		]);

		return;
	}

	$calendarEventId = $entity->getCalendarEventId();

	if (!$calendarEventId || !$this->isCalendarIncluded)
	{
		return;
	}

	if (!$skipActiveSectionCheck && empty($this->data['active']))
	{
		$this->unbindAndDeleteCalendarEvent($entity, $calendarEventId);

		return;
	}

	$eventData = CCalendarEvent::GetById($calendarEventId);
	$deadline = clone($entity->getDeadline());
	$start = $deadline->toString();
	$entity->setAdditionalFields([
		'DEADLINE' => $start,
		'START_TIME' => $start,
		'END_TIME' => $deadline->add('PT' . $eventData['DT_LENGTH'] . 'S')->toString(),
	]);
}