- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/documentimport.php
- Класс: BitrixSaleExchangeOneCDocumentImport
- Вызов: DocumentImport::prepareFieldsData
public function prepareFieldsData(array $document)
{
$message = self::getMessage();
$fields = array();
foreach(static::getFieldsInfo() as $k=>$v)
{
switch($k)
{
case 'ID':
$value = $document["#"][$message["CC_BSC1_NUMBER"]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
break;
case 'ID_1C':
$value = $document["#"][$message["CC_BSC1_ID"]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
break;
case 'ORDER_ID':
$value = $document["#"][$message["CC_BSC1_NUMBER_BASE"]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
break;
case 'VERSION_1C':
case 'COMMENT':
case 'CANCELED':
case '1C_DATE':
$value = $document["#"][$message["CC_BSC1_".$k]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
break;
case '1C_TIME':
$date1C = $document["#"][$message["CC_BSC1_1C_DATE"]][0]["#"];
if($date1C >0)
{
$value = $date1C." ".$document["#"][$message["CC_BSC1_".$k]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
}
break;
case 'OPERATION':
$typeId = self::resolveDocumentTypeId($document);
$fields[$k] = DocumentType::resolveName($typeId);
break;
case 'AMOUNT':
$value = $document["#"][$message["CC_BSC1_SUMM"]][0]["#"];
self::internalizeFields($value, $v);
$fields[$k] = $value;
break;
case 'CASH_BOX_CHECKS':
$fields[$k] = self::resolveCashBoxCheksParams($document, $v);
break;
case 'REK_VALUES':
$fields[$k] = self::resolveTraitsParams($document, $v);
break;
case 'ITEMS':
$fields['ITEMS_FIELDS'] = self::resolveItemsParams($document, $v);
if(!empty($fields['ITEMS_FIELDS']))
$fields[$k] = self::fillItemsFields($fields);
break;
case 'TAXES':
$taxValue = 0;
$taxName = '';
if(!empty($fields['ITEMS_FIELDS']))
{
foreach($fields['ITEMS_FIELDS'] as $items)
{
foreach ($items as $item)
{
$taxValueTmp = isset($item['TAX_VALUE']) ? $item['TAX_VALUE']:0;
if (IntVal($taxValueTmp) > IntVal($taxValue))
{
$taxName = $item['NAME'];
$taxValue = $taxValueTmp;
}
}
}
}
if(IntVal($taxValue)>0)
{
$fields[$k] = self::resolveTaxParams($document, $v);
$fields[$k]['VALUE'] = $taxValue;
$fields[$k]['NAME'] = $taxName;
}
break;
case 'AGENT':
/* includes document profile */
$documentProfile = new UserProfileDocument();
$mess = MainLocalizationLoc::loadLanguageFile($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/sale/general/export.php');
if(is_array($document["#"][$mess["SALE_EXPORT_CONTRAGENTS"]][0]["#"][$mess["SALE_EXPORT_CONTRAGENT"]][0]["#"]))
{
$fields[$k] = $documentProfile::prepareFieldsData($document["#"][$mess["SALE_EXPORT_CONTRAGENTS"]][0]["#"][$mess["SALE_EXPORT_CONTRAGENT"]][0]["#"]);
}
break;
}
}
return $fields;
}