• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ical/outcomingattachmentmanager.php
  • Класс: BitrixCalendarICalOutcomingAttachmentManager
  • Вызов: OutcomingAttachmentManager::prepareRequestAttachment
public function prepareRequestAttachment(): OutcomingAttachmentManager
{
	$event = $this->prepareRequestEvent();
	$this->uid = isset($event['DAV_XML_ID']) ? $event['DAV_XML_ID'] : ICalUtil::getUniqId();

	$this->attachment = Calendar::getInstance()
		->setMethod(Dictionary::METHODS[$this->method])
		->setTimezones(Timezone::getInstance()
			->setTimezoneId($event['TZ_FROM'])
			->setObservance(StandardObservances::getInstance()
				->setOffsetFrom($event['TZ_FROM'])
				->setOffsetTo($event['TZ_TO'])
				->setDTStart()
			)
		)
		->setEvent(Event::getInstance($this->uid)
			->setName($event['NAME'])
			->setAttendees($this->attendees)
			->setStartsAt(Util::getDateObject($event['DATE_FROM'], $event['SKIP_TIME'], $event['TZ_FROM']))
			->setEndsAt(Util::getDateObject($event['DATE_TO'], $event['SKIP_TIME'], $event['TZ_TO']))
			->setCreatedAt(Util::getDateObject($event['CREATED'], false, $event['TZ_FROM']))
			->setDtStamp(Util::getDateObject($event['CREATED'], false, $event['TZ_FROM']))
			->setModified(Util::getDateObject($event['MODIFIED'], false, $event['TZ_FROM']))
			->setWithTimezone(!$event['SKIP_TIME'])
			->setWithTime(!$event['SKIP_TIME'])
			->setOrganizer($this->attendees[$event['MEETING_HOST']], $this->getReplyAddress())
			->setDescription($event['DESCRIPTION'])
			->setTransparent(Dictionary::TRANSPARENT[$event['ACCESSIBILITY']])
			->setRRule($event['RRULE'])
			->setExdates($event['EXDATE'], $event['TZ_FROM'])
			->setLocation($event['TEXT_LOCATION'])
			->setSequence((int)$event['VERSION'])
			->setStatus(Dictionary::INVITATION_STATUS['confirmed'])
		)
		->get();

	return $this;
}