• Модуль: 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;
    }