- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/order.php
- Класс: BitrixSaleOrder
- Вызов: Order::onBasketModify
public function onBasketModify($action, BasketItemBase $basketItem, $name = null, $oldValue = null, $value = null)
{
$result = new Result();
if ($action === EventActions::DELETE)
{
$r = parent::onBasketModify($action, $basketItem, $name, $oldValue, $value);
if (!$r->isSuccess())
{
$result->addErrors($r->getErrors());
return $result;
}
return $result;
}
elseif ($action === EventActions::ADD)
{
if ($basketItem->getField('ORDER_ID'))
{
return $result;
}
return $this->getShipmentCollection()->onBasketModify($action, $basketItem, $name, $oldValue, $value);
}
elseif ($action !== EventActions::UPDATE)
{
return $result;
}
if ($name === "QUANTITY")
{
$r = parent::onBasketModify($action, $basketItem, $name, $oldValue, $value);
if (!$r->isSuccess())
{
$result->addErrors($r->getErrors());
return $result;
}
$r = $this->getShipmentCollection()->onBasketModify($action, $basketItem, $name, $oldValue, $value);
if (!$r->isSuccess())
{
$result->addErrors($r->getErrors());
return $result;
}
elseif ($r->hasWarnings())
{
$result->addWarnings($r->getWarnings());
}
return $result;
}
elseif ($name === "PRICE")
{
$r = parent::onBasketModify($action, $basketItem, $name, $oldValue, $value);
if (!$r->isSuccess())
{
$result->addErrors($r->getErrors());
return $result;
}
if ($this->getId() === 0 && !$this->isMathActionOnly())
{
return $this->getShipmentCollection()->onBasketModify($action, $basketItem, $name, $oldValue, $value);
}
}
elseif ($name === 'WEIGHT')
{
return $this->getShipmentCollection()->onBasketModify($action, $basketItem, $name, $oldValue, $value);
}
else
{
$r = parent::onBasketModify($action, $basketItem, $name, $oldValue, $value);
if (!$r->isSuccess())
{
$result->addErrors($r->getErrors());
return $result;
}
}
return $result;
}