- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/entity/shipmentimport.php
- Класс: BitrixSaleExchangeEntityShipmentImport
- Вызов: ShipmentImport::fillShipmentItem
private function fillShipmentItem(SaleShipmentItem $shipmentItem, $value, $oldValue)
{
$result = new SaleResult();
$deltaQuantity = $value - $oldValue;
if($shipmentItem->getQuantity() + $deltaQuantity == 0)
{
$r = $shipmentItem->delete();
}
else
{
$this->syncRelationBarcodeMarkingsCode($shipmentItem, $deltaQuantity);
$r = $shipmentItem->setField(
"QUANTITY",
$shipmentItem->getQuantity() + $deltaQuantity
);
}
/** @var SaleShipmentItemCollection $shipmentItemCollection */
$shipmentItemCollection = $shipmentItem->getCollection();
/** @var Shipment $shipment */
if ($shipment = $shipmentItemCollection->getShipment())
{
if(!$r->isSuccess())
{
$result->addErrors($r->getErrors());
$this->setCollisions(EntityCollisionType::OrderShipmentItemsModifyError, $shipment, implode(',', $r->getErrorMessages()));
}
else
{
//$this->setCollisions(EntityCollisionType::OrderShipmentItemsModify, $shipment);
}
}
return $result;
}