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

	$itemStoreCollection = $item->getShipmentItemStoreCollection();
	if (!$itemStoreCollection)
	{
		return $result;
	}

	$this->resetMarkingsShipmentItem($item);

	$delta = min(count($markings), $item->getQuantity());

	if ($itemStoreCollection->count() < $delta)
	{
		for ($i = (count($markings) - $itemStoreCollection->count()); $i > 0; $i--)
		{
			$itemStore = $itemStoreCollection->createItem($itemStoreCollection->getShipmentItem()->getBasketItem());
			$r = $itemStore->setFields([
				'QUANTITY'=>1
			]);

			if($r->isSuccess() === false)
			{
				$result->addErrors($r->getErrors());
				break 1;
			}
		}
	}

	if ($result->isSuccess())
	{
		$k = 0;
		/** @var  SaleShipmentItemStore $storeItem */
		foreach ($itemStoreCollection as  $storeItem)
		{
			$r = $storeItem->setField('MARKING_CODE', $markings[$k++]);
			if ($r->isSuccess() === false)
			{
				$result->addErrors($r->getErrors());
				break 1;
			}
		}
	}

	return $result;
}