• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/orderbase.php
  • Класс: BitrixSaleOrderBase
  • Вызов: OrderBase::onBasketModify
public function onBasketModify($action, BasketItemBase $basketItem, $name = null, $oldValue = null, $value = null)
{
	$result = new Result();

	if ($action === EventActions::DELETE)
	{
		/** @var Result $r */
		$r = $this->refreshVat();
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
			return $result;
		}

		if ($tax = $this->getTax())
		{
			$tax->resetTaxList();
		}

		/** @var Result $result */
		$r = $this->refreshOrderPrice();
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
		}

		return $result;
	}
	elseif ($action !== EventActions::UPDATE)
	{
		return $result;
	}

	if ($name == "QUANTITY" || $name == "PRICE")
	{
		/** @var Result $result */
		$r = $this->refreshOrderPrice();
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
		}
	}
	elseif ($name == "CURRENCY")
	{
		if ($value != $this->getField("CURRENCY"))
		{
			throw new MainNotSupportedException("CURRENCY");
		}
	}

	return $result;
}