- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/shipmentitemcollection.php
- Класс: BitrixSaleShipmentItemCollection
- Вызов: ShipmentItemCollection::load
static function load(Shipment $shipment)
{
/** @var ShipmentItemCollection $shipmentItemCollection */
$shipmentItemCollection = static::createShipmentItemCollectionObject();
$shipmentItemCollection->shipment = $shipment;
if ($shipment->getId() > 0)
{
/** @var ShipmentCollection $shipmentCollection */
if (!$shipmentCollection = $shipment->getCollection())
{
throw new MainObjectNotFoundException('Entity "ShipmentCollection" not found');
}
/** @var Order $order */
if (!$order = $shipmentCollection->getOrder())
{
throw new MainObjectNotFoundException('Entity "Order" not found');
}
/** @var ShipmentItem $itemClassName */
$itemClassName = static::getItemCollectionClassName();
$shipmentItemList = $itemClassName::loadForShipment($shipment->getId());
/** @var ShipmentItem $shipmentItem */
foreach ($shipmentItemList as $shipmentItem)
{
$shipmentItem->setCollection($shipmentItemCollection);
$shipmentItemCollection->addItem($shipmentItem);
if (!$basketItem = $shipmentItem->getBasketItem())
{
$msg = Loc::getMessage("SALE_SHIPMENT_ITEM_COLLECTION_BASKET_ITEM_NOT_FOUND", array(
'#BASKET_ITEM_ID#' => $shipmentItem->getBasketId(),
'#SHIPMENT_ID#' => $shipment->getId(),
'#SHIPMENT_ITEM_ID#' => $shipmentItem->getId(),
));
$r = new Result();
$r->addError( new ResultError($msg, 'SALE_SHIPMENT_ITEM_COLLECTION_BASKET_ITEM_NOT_FOUND'));
$registry = Registry::getInstance(static::getRegistryType());
/** @var EntityMarker $entityMarker */
$entityMarker = $registry->getEntityMarkerClassName();
$entityMarker::addMarker($order, $shipment, $r);
if (!$shipment->isSystem())
{
$shipment->setField('MARKED', 'Y');
}
}
}
}
return $shipmentItemCollection;
}