• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/entity/shipment.php
  • Класс: BitrixSaleRestEntityShipment
  • Вызов: Shipment::internalizeFieldsModify
public function internalizeFieldsModify($fields, $fieldsInfo=[])
{
	$result = [];
	$shipmentItem = new ShipmentItem();

	$fieldsInfo = empty($fieldsInfo)? $this->getFields():$fieldsInfo;
	$listFieldsInfoAdd = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly]]]);
	$listFieldsInfoUpdate = $this->getListFieldInfo($fieldsInfo, ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable], 'skipFields'=>['ID']]]);

	if(isset($fields['ORDER']['ID']))
		$result['ORDER']['ID'] = (int)$fields['ORDER']['ID'];

	if(isset($fields['ORDER']['SHIPMENTS']))
	{
		foreach ($fields['ORDER']['SHIPMENTS'] as $k=>$item)
		{
			$result['ORDER']['SHIPMENTS'][$k] = $this->internalizeFields($item,
				$this->isNewItem($item)? $listFieldsInfoAdd:$listFieldsInfoUpdate
			);

			if(isset($item['SHIPMENT_ITEMS']))
			{
				$result['ORDER']['SHIPMENTS'][$k]['SHIPMENT_ITEMS'] = $shipmentItem->internalizeFieldsModify(['SHIPMENT'=>['SHIPMENT_ITEMS'=>$item['SHIPMENT_ITEMS']]])['SHIPMENT']['SHIPMENT_ITEMS'];
			}
		}
	}

	return $result;
}