• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/requests/manager.php
  • Класс: BitrixSaleDeliveryRequestsManager
  • Вызов: Manager::processShipmentResult
static function processShipmentResult($result, $requestId = 0)
{
	if (!($result instanceof ShipmentResult))
		return $result;

	$shipmentId = $result->getInternalId();

	if (intval($shipmentId) <= 0)
	{
		$result->addError(new MainError(Loc::getMessage('SALE_DLVR_REQ_MNGR_ERROR_SAVE_SHIPMENT_ID')));
		return $result;
	}

	$extShipmentId = $result->getExternalId();

	if ($result->isSuccess())
	{
		if (intval($requestId) > 0)
		{
			$res = ShipmentTable::setShipment(array(
				'REQUEST_ID' => $requestId,
				'SHIPMENT_ID' => $shipmentId,
				'EXTERNAL_ID' => $extShipmentId,
				'ERROR_DESCRIPTION' => ''
			));

			if (!$res->isSuccess())
				$result->addErrors($res->getErrors());

			$res = self::saveShipmentResult($shipmentId, $result);

			if (!$res->isSuccess())
				$result->addErrors($res->getErrors());
		}
	}
	else
	{
		ShipmentTable::setShipment(array(
			'SHIPMENT_ID' => $shipmentId,
			'ERROR_DESCRIPTION' => implode("n", $result->getErrorMessages())
		));
	}

	return $result;
}