• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/order.php
  • Класс: BitrixSaleOrder
  • Вызов: Order::callEventOnSaleOrderEntitySaved
protected function callEventOnSaleOrderEntitySaved()
{
	parent::callEventOnSaleOrderEntitySaved();

	$changeMeaningfulFields = array(
		"PERSON_TYPE_ID",
		"CANCELED",
		"STATUS_ID",
		"MARKED",
		"PRICE",
		"SUM_PAID",
		"USER_ID",
		"EXTERNAL_ORDER",
	);

	if ($this->isChanged())
	{
		$logFields = array();

		if (!$this->isNew)
		{
			$fields = $this->getFields();
			$originalValues = $fields->getOriginalValues();

			foreach($originalValues as $originalFieldName => $originalFieldValue)
			{
				if (in_array($originalFieldName, $changeMeaningfulFields) && $this->getField($originalFieldName) != $originalFieldValue)
				{
					$logFields[$originalFieldName] = $this->getField($originalFieldName);
					$logFields['OLD_'.$originalFieldName] = $originalFieldValue;
				}
			}

			$registry = Registry::getInstance(static::getRegistryType());

			/** @var OrderHistory $orderHistory */
			$orderHistory = $registry->getOrderHistoryClassName();
			$orderHistory::addLog(
				'ORDER',
				$this->getId(),
				"ORDER_UPDATE",
				$this->getId(),
				$this,
				$logFields,
				$orderHistory::SALE_ORDER_HISTORY_LOG_LEVEL_1
			);
		}
	}
}