• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/converterdocument.php
  • Класс: BitrixSaleExchangeOneCConverterDocumentShipment
  • Вызов: ConverterDocumentShipment::resolveParams
public function resolveParams($documentImport)
    {
        if(!($documentImport instanceof DocumentImport))
            throw new ArgumentException("Document must be instanceof DocumentImport");

        $result = array();

        $params = $documentImport->getFieldValues();

	$availableFields = Shipment::getAvailableFields();

	foreach ($availableFields as $k)
	{
		switch($k)
		{
			case 'ID_1C':
			case 'VERSION_1C':
				if(isset($params[$k]))
					$fields[$k] = $params[$k];
				break;
			case 'COMMENTS':
				if(isset($params['COMMENT']))
					$fields[$k] = $params['COMMENT'];
				break;
			case 'DELIVERY_DOC_DATE':
				if(isset($params['1C_DATE']))
					$fields[$k] = $params['1C_DATE'];
				break;
			case 'DELIVERY_DOC_NUM':
				if(isset($params['REK_VALUES']['1C_DELIVERY_NUM']))
					$fields[$k] = $params['REK_VALUES']['1C_DELIVERY_NUM'];
				break;
			case 'DEDUCTED':
				$deducted='';
				$cancel='';

				if(isset($params['REK_VALUES']['DEDUCTED']))
					$deducted = $params['REK_VALUES']['DEDUCTED'];
				if(isset($params['REK_VALUES']['CANCEL']))
					$cancel = $params['REK_VALUES']['CANCEL'];

				if($deducted == 'Y')
					$fields[$k] = 'Y';
				elseif($cancel == 'Y')
					$fields[$k] = 'N';
				break;
			case 'ALLOW_DELIVERY':
				$value='';
				if(isset($params['REK_VALUES']['DEDUCTED']))
					$value = $params['REK_VALUES']['DEDUCTED'];

				if($value == 'Y')
					$fields[$k] = 'Y';
				break;
			case 'TRACKING_NUMBER':
				if(isset($params['REK_VALUES']['1C_TRACKING_NUMBER']))
					$fields[$k] = $params['REK_VALUES']['1C_TRACKING_NUMBER'];
				break;
			case 'BASE_PRICE_DELIVERY':
				foreach($params['ITEMS'] as $items)
				{
					foreach($items as $item)
					{
						if($item['TYPE'] == ImportBase::ITEM_SERVICE)
						{
							//if((!empty($shipment)? $shipment->getPrice():'') != $item["PRICE"])
							//{
							//$fields["CUSTOM_PRICE_DELIVERY"] = "Y";
							$fields["BASE_PRICE_DELIVERY"] = $item["PRICE"];
							//$fields["CURRENCY"] = $settings->getCurrency();
							//}
							break 2;
						}
					}
				}
				break;
			case 'DELIVERY_ID':
				$deliverySystemId = 0;
				if(isset($params['REK_VALUES']['DELIVERY_SYSTEM_ID']))
				{
					$deliverySystemId = $params['REK_VALUES']['DELIVERY_SYSTEM_ID'];
				}

				if($deliverySystemId<=0)
				{
					if(isset($params['REK_VALUES']['DELIVERY_SYSTEM_ID_DEFAULT']))
					{
						$deliverySystemId = $params['REK_VALUES']['DELIVERY_SYSTEM_ID_DEFAULT'];
					}
				}

				/** @var ImportSettings $settings */
				$settings = $this->getSettings();

				if($deliverySystemId<=0)
				{
					$deliverySystemId = $settings->shipmentServiceFor($documentImport->getOwnerEntityTypeId());
				}

				if($deliverySystemId<=0)
				{
					$deliverySystemId = $settings->shipmentServiceDefaultFor($documentImport->getOwnerEntityTypeId());
				}

				$fields[$k] = $deliverySystemId;
				break;
		}
	}

	$result['TRAITS'] = isset($fields)? $fields:array();
	$result['ITEMS'] = isset($params['ITEMS'])? $params['ITEMS']:array();
	$result['TAXES'] = isset($params['TAXES'])? $params['TAXES']:array();

        return $result;
    }