- Модуль: 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(),
]);
}