• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/extra_services/manager.php
  • Класс: BitrixSaleDeliveryExtraServicesManager
  • Вызов: Manager::saveStoreIdForShipment
static function saveStoreIdForShipment($shipmentId, $deliveryId, $storeId)
{
	if(intval($shipmentId) <= 0)
		throw new ArgumentNullException("shipmentId");

	$result = new Result();

	if(intval($deliveryId) <= 0)
		return $result;

	$storeFields = self::getStoresFields($deliveryId, false);

	if(isset($storeFields['ID']))
	{
		$dbRes = ShipmentExtraServiceTable::getList(array(
			'filter' => array(
				'=SHIPMENT_ID' => $shipmentId,
				'=EXTRA_SERVICE_ID' => $storeFields['ID']
			)
		));

		$storeRowId = 0;

		if($row = $dbRes->fetch())
			$storeRowId = $row["ID"];

		if($storeRowId > 0)
		{
			$res = ShipmentExtraServiceTable::update($storeRowId, array("VALUE" => $storeId));
		}
		else
		{
			$res = ShipmentExtraServiceTable::add(array(
				"EXTRA_SERVICE_ID" => $storeFields['ID'],
				"SHIPMENT_ID" => $shipmentId,
				"VALUE" => $storeId
			));
		}

		if(!$res->isSuccess())
			foreach($res->getErrors() as $error)
				$result->addError($error);
	}

	return $result;
}