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

	if ($name == "PRICE")
	{
		$r = $this->getShipmentCollection()->onOrderModify($name, $oldValue, $value);
		if (!$r->isSuccess())
		{
			return $result->addErrors($r->getErrors());
		}

		$r = $this->getPaymentCollection()->onOrderModify($name, $oldValue, $value);
		if (!$r->isSuccess())
		{
			return $result->addErrors($r->getErrors());
		}

		$r = $this->syncOrderAndPayments();
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
		}
	}
	elseif($name == "MARKED")
	{
		global $USER;

		if (is_object($USER))
		{
			$this->setField('EMP_MARKED_ID', $USER->GetID());
		}

		$this->setField('DATE_MARKED', new MainTypeDateTime());

		$r = $this->getShipmentCollection()->onOrderModify($name, $oldValue, $value);
		if (!$r->isSuccess())
		{
			return $result->addErrors($r->getErrors());
		}
	}

	return $result;
}