- Модуль: 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;
}