• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/ordershipmentcontroller.php
  • Класс: Bitrix\Crm\Timeline\OrderShipmentController
  • Вызов: OrderShipmentController::prepareHistoryDataModel
public function prepareHistoryDataModel(array $data, array $options = null)
{
	$typeID = isset($data['TYPE_ID']) ? (int)$data['TYPE_ID'] : TimelineType::UNDEFINED;
	$settings = is_array($data['SETTINGS']) ? $data['SETTINGS'] : [];
	if($typeID === TimelineType::CREATION)
	{
		$base = isset($settings['BASE']) ? $settings['BASE'] : null;
		$data['TITLE'] = Loc::getMessage('CRM_ORDER_SHIPMENT_CREATION');

		if(is_array($base))
		{
			$entityTypeID = isset($base['ENTITY_TYPE_ID']) ? $base['ENTITY_TYPE_ID'] : 0;
			$caption = Loc::getMessage("CRM_SHIPMENT_BASE_CAPTION_BASED_ON_ORDER");

			$entityID = isset($base['ENTITY_ID']) ? $base['ENTITY_ID'] : 0;
			if(\CCrmOwnerType::IsDefined($entityTypeID) && $entityID > 0)
			{
				$data['BASE']['CAPTION'] = $caption;
				if(\CCrmOwnerType::TryGetEntityInfo(\CCrmOwnerType::Order, $entityID, $baseEntityInfo, false))
				{
					$data['BASE']['ENTITY_INFO'] = $baseEntityInfo;
				}
			}
		}

		$fields = $settings['FIELDS'];
		$title = htmlspecialcharsbx(\CUtil::JSEscape($data['ASSOCIATED_ENTITY']['TITLE']));
		if (!empty($fields['DATE_INSERT_TIMESTAMP']))
		{
			$dateInsert = \CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp($fields['DATE_INSERT_TIMESTAMP'],'SHORT'));
		}
		if (empty($dateInsert))
		{
			$dateInsert = \CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($data['DATE_INSERT']),'SHORT'));
		}

		$data['ASSOCIATED_ENTITY']['TITLE'] = Loc::getMessage(
			'CRM_SHIPMENT_DEDUCT_TITLE',
			['#ACCOUNT_NUMBER#' => $data['ASSOCIATED_ENTITY']['TITLE']]
		);
		$data['ASSOCIATED_ENTITY']['HTML_TITLE'] = Loc::getMessage(
			'CRM_SHIPMENT_CREATION_MESSAGE',
			[
				'#ACCOUNT_NUMBER#' => $title,
				'#DATE_INSERT#' => $dateInsert,
			]
		);
		if (!empty($fields['PRICE_DELIVERY']) && !empty($fields['CURRENCY']))
		{
			$data['ASSOCIATED_ENTITY']['HTML_TITLE'] .= " ".Loc::getMessage(
				'CRM_SHIPMENT_CREATION_MESSAGE_PRICE_DELIVERY',
				['#PRICE_WITH_CURRENCY#' => \CCrmCurrency::MoneyToString($fields['PRICE_DELIVERY'], $fields['CURRENCY'])]
			);
		}

		unset($data['SETTINGS']);
	}
	elseif($typeID === TimelineType::MODIFICATION)
	{
		$fieldName = isset($settings['FIELD']) ? $settings['FIELD'] : '';
		if($fieldName === 'STATUS_ID')
		{
			$data['TITLE'] = Loc::getMessage(
				'CRM_ORDER_SHIPMENT_MODIFICATION_STATUS',
				array('#ID#' => $data['ASSOCIATED_ENTITY_ID'])
			);
			$data['START_NAME'] = isset($settings['START_NAME']) ? $settings['START_NAME'] : $settings['START'];
			$data['FINISH_NAME'] = isset($settings['FINISH_NAME']) ? $settings['FINISH_NAME'] : $settings['FINISH'];
		}
		$data['MODIFIED_FIELD'] = $fieldName;
		unset($data['SETTINGS']);
	}
	elseif($typeID === TimelineType::ORDER)
	{
		$data['TITLE'] = \CCrmOwnerType::GetDescription(\CCrmOwnerType::OrderShipment);
		$data['ASSOCIATED_ENTITY']['TITLE'] = Loc::getMessage(
			'CRM_SHIPMENT_DEDUCT_TITLE',
			['#ACCOUNT_NUMBER#' => $data['ASSOCIATED_ENTITY']['TITLE']]
		);
		$data = array_merge($data, $settings);
		unset($data['SETTINGS']);
	}
	return parent::prepareHistoryDataModel($data, $options);
}