public function prepareFieldsImport($fields)
{
$orderFields = [
'USER_ID',
'CURRENCY',
'LID',
'PERSON_TYPE_XML_ID',
'STATUS_XML_ID',
'CANCELED',
'REASON_CANCELED',
'COMMENTS',
'XML_ID',
'ID',
];
$orderPropertyValuesFields = [
'NAME',
'CODE',
'ORDER_PROPS_XML_ID',
'VALUE',
'ORDER_PROPS_ID'
];
$basketItemFields = [
'PRODUCT_XML_ID',
'NAME',
'MEASURE_CODE',
'MEASURE_NAME',
'QUANTITY',
'CURRENCY',
'XML_ID',
'ID',
'PRICE',
'VAT_RATE',
'VAT_INCLUDED',
];
$basketItemPropertiesFields = [
'NAME',
'VALUE',
'CODE',
'XML_ID'
];
$paymentFields = [
'PAY_SYSTEM_XML_ID',
'PAY_SYSTEM_ID',
'PAID',
'PAY_VOUCHER_NUM',
'PAY_VOUCHER_DATE',
'XML_ID',
'ID',
'SUM',
'IS_RETURN',
'PAY_RETURN_NUM',
'PAY_RETURN_DATE',
'PAY_RETURN_COMMENT',
'COMMENTS',
];
$shipmentFields = [
'BASE_PRICE_DELIVERY',
'PRICE_DELIVERY',
'ALLOW_DELIVERY',
'DEDUCTED',
'REASON_UNDO_DEDUCTED',
'DELIVERY_DOC_NUM',
'DELIVERY_DOC_DATE',
'TRACKING_NUMBER',
'XML_ID',
'ID',
'CANCELED',
'COMMENTS',
'STATUS_XML_ID',
'STATUS_ID',
'DELIVERY_XML_ID',
'DELIVERY_ID',
];
$shipmentItemsFields = [
'BASKET_ID',
'QUANTITY',
'XML_ID',
];
$result['ORDER'] = array_intersect_key($fields['ORDER'], array_flip($orderFields));
if(isset($fields['ORDER']['PROPERTY_VALUES']))
{
foreach($fields['ORDER']['PROPERTY_VALUES'] as $k=>$v)
$result['ORDER']['PROPERTY_VALUES'][$k] = array_intersect_key($v, array_flip($orderPropertyValuesFields));
}
if(isset($fields['ORDER']['BASKET_ITEMS']))
{
foreach($fields['ORDER']['BASKET_ITEMS'] as $k=>$item)
{
$result['ORDER']['BASKET_ITEMS'][$k] = array_intersect_key($item, array_flip($basketItemFields));
if(isset($item['PROPERTIES']))
{
foreach($item['PROPERTIES'] as $kProps=>$pros)
{
$result['ORDER']['BASKET_ITEMS'][$k]['PROPERTIES'][$kProps] = array_intersect_key($pros, array_flip($basketItemPropertiesFields));
}
}
}
}
if(isset($fields['ORDER']['PAYMENTS']))
{
foreach($fields['ORDER']['PAYMENTS'] as $k=>$payment)
{
$result['ORDER']['PAYMENTS'][$k] = array_intersect_key($payment, array_flip($paymentFields));
}
}
if(isset($fields['ORDER']['SHIPMENTS']))
{
foreach($fields['ORDER']['SHIPMENTS'] as $k=>$shipment)
{
$result['ORDER']['SHIPMENTS'][$k] = array_intersect_key($shipment, array_flip($shipmentFields));
if(isset($shipment['SHIPMENT_ITEMS']))
{
foreach($shipment['SHIPMENT_ITEMS'] as $kShipmentItem=>$shipmentItem)
{
$result['ORDER']['SHIPMENTS'][$k]['SHIPMENT_ITEMS'][$kShipmentItem] = array_intersect_key($shipmentItem, array_flip($shipmentItemsFields));
}
}
}
}
return $result;
}