• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/link/crmdeallinkmapper.php
  • Класс: BitrixCalendarSharingLinkCrmDealLinkMapper
  • Вызов: CrmDealLinkMapper::convertToObject
protected function convertToObject($objectEO): ?CrmDealLink
{
	$crmDealLink = (new CrmDealLink())
		->setId($objectEO->getId())
		->setEntityId($objectEO->getObjectId())
		->setDateCreate($objectEO->getDateCreate())
		->setActive($objectEO->getActive())
		->setHash($objectEO->getHash())
		->setContactId($objectEO->getContactId())
		->setContactType($objectEO->getContactType())
		->setOwnerId($objectEO->getOwnerId())
	;

	$options = Json::decode($objectEO->getOptions() ?? '');
	if (!empty($options['slotSize']))
	{
		$crmDealLink->setSlotSize($options['slotSize']);
	}

	if (!empty($options['channelId']))
	{
		$crmDealLink->setChannelId($options['channelId']);
	}

	if (!empty($options['senderId']))
	{
		$crmDealLink->setSenderId($options['senderId']);
	}

	if (!empty($options['lastStatus']))
	{
		$crmDealLink->setLastStatus($options['lastStatus']);
	}
	//backward compatibility
	if (empty($crmDealLink->getContactId()) && !empty($options['contactId']))
	{
		$crmDealLink->setContactId($options['contactId']);
	}
	if (empty($crmDealLink->getContactType()) && !empty($options['contactType']))
	{
		$crmDealLink->setContactType($options['contactType']);
	}
	if (empty($crmDealLink->getOwnerId()) && !empty($options['ownerId']))
	{
		$crmDealLink->setOwnerId($options['ownerId']);
	}

	return $crmDealLink;
}