• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/entity/shipmentimport.php
  • Класс: BitrixSaleExchangeEntityShipmentImport
  • Вызов: ShipmentImport::add
public function add(array $params)
    {
	$result = new SaleResult();

	if(!$this->isLoadedParentEntity())
	{
		$result->addError(new Error(GetMessage('SALE_EXCHANGE_ENTITY_SHIPMENT_ORDER_IS_NOT_LOADED_ERROR'),'ENTITY_SHIPMENT_ORDER_IS_NOT_LOADED_ERROR'));
		return $result;
	}

	$fields = $params['TRAITS'];
	$parentEntity = $this->getParentEntity();

        if(($shipmentService = Manager::getObjectById($fields['DELIVERY_ID'])) == null)
        {
		$result->addError(new Error(GetMessage('SALE_EXCHANGE_ENTITY_SHIPMENT_DELIVERY_SERVICE_IS_NOT_AVAILABLE_ERROR'),'DELIVERY_SERVICE_IS_NOT_AVAILABLE_ERROR'));
	}
	else
	{
		$shipmentCollection = $parentEntity->getShipmentCollection();
		$shipment = $shipmentCollection->createItem($shipmentService);

		$shipment->setField('DELIVERY_NAME', $shipmentService->getName());

		$basket = $parentEntity->getBasket();
		$result = $this->fillShipmentItems($shipment, $basket, $params);
		if(!$result->isSuccess())
		{
			return $result;
		}

		$result = $shipment->setFields($fields);

		if($result->isSuccess())
		{
			$this->setEntity($shipment);
		}
	}

        return $result;
    }