- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/converterdocument.php
- Класс: BitrixSaleExchangeOneCConverterDocumentProfile
- Вызов: ConverterDocumentProfile::resolveParams
public function resolveParams($documentImport)
{
if(!($documentImport instanceof DocumentImport))
throw new ArgumentException("Document must be instanceof DocumentImport");
$result = array();
$params = $documentImport->getFieldValues();
foreach($params as $k=>$v)
{
switch($k)
{
case 'VERSION':
if(!empty($v))
$profile['VERSION_1C'] = $v;
break;
case 'XML_ID':
case 'OFICIAL_NAME':
case 'FULL_NAME':
case 'INN':
case 'KPP':
case 'OKPO_CODE':
case 'EGRPO':
case 'OKVED':
case 'OKDP':
case 'OKOPF':
case 'OKFC':
//case 'OKPO':
if(!empty($v))
$profile[$k] = $v;
break;
case 'ITEM_NAME':
if(!empty($v))
{
$profile[$k] = $v;
$profile['AGENT_NAME'] = $v;
}
break;
case 'REGISTRATION_ADDRESS':
case 'UR_ADDRESS':
case 'ADDRESS':
foreach($params[$k] as $name=>$values)
{
if($name == 'ADDRESS_FIELD')
{
foreach($values as $nameAddres=>$valuesAddres)
{
$profile[$k][$nameAddres] = $valuesAddres['VALUE'];
}
}
else
{
$profile[$k][$name] = $values;
}
}
break;
case 'CONTACTS':
foreach($params[$k]['CONTACT'] as $name=>$values)
{
$profile['CONTACT'][$name] = $values['VALUE'];
}
$profile['CONTACT']['EMAIL'] = !empty($profile['CONTACT']['MAIL_NEW'])? $profile['CONTACT']['MAIL_NEW']:null;
$profile['CONTACT']['PHONE'] = !empty($profile['CONTACT']['WORK_PHONE_NEW'])? $profile['CONTACT']['WORK_PHONE_NEW']:null;
break;
case 'REPRESENTATIVES':
foreach($params[$k]['REPRESENTATIVE'] as $name=>$values)
{
if($name == 'CONTACT_PERSON')
{
$profile['CONTACT'][$name] = $values['ITEM_NAME'];
}
}
break;
}
}
if(!empty($profile["OKPO_CODE"]))
$profile["OKPO"] = $profile["OKPO_CODE"];
if(strlen($profile["OFICIAL_NAME"]) > 0 && strlen($profile["INN"]) > 0)
$profile["TYPE"] = "UR";
elseif(strlen($profile["INN"]) > 0)
$profile["TYPE"] = "IP";
else
$profile["TYPE"] = "FIZ";
if(!empty($profile))
{
$property = array();
foreach($profile as $name => $value)
{
switch($name)
{
case 'ID':
case 'VERSION':
case 'ITEM_NAME':
case 'OFICIAL_NAME':
case 'FULL_NAME':
case 'INN':
case 'KPP':
case 'OKPO_CODE':
case 'EGRPO':
case 'OKVED':
case 'OKDP':
case 'OKOPF':
case 'OKFC':
case 'OKPO':
$property[$name] = $value;
break;
case 'CONTACT':
$property["EMAIL"] = $value["MAIL_NEW"];
$property["PHONE"] = $value["WORK_PHONE_NEW"];
break;
case 'REPRESENTATIVE':
$property["CONTACT_PERSON"] = $value["CONTACT_PERSON"];
break;
case 'REGISTRATION_ADDRESS':
case 'UR_ADDRESS':
foreach($value as $nameProperty => $valueProperty)
{
if(strlen($valueProperty) > 0 && empty($property[$nameProperty]))
$property[$nameProperty] = $valueProperty;
}
$property["ADDRESS_FULL"] = $value["PRESENTATION"];
$property["INDEX"] = $value["POST_CODE"];
break;
case 'ADDRESS':
foreach($value as $nameProperty => $valueProperty)
{
if(strlen($valueProperty) > 0 && empty($property["F_".$nameProperty]))
$property["F_".$nameProperty] = $valueProperty;
}
$property["F_ADDRESS_FULL"] = $value["PRESENTATION"];
$property["F_INDEX"] = $value["POST_CODE"];
break;
}
}
}
$result['TRAITS'] = isset($profile)? $profile:array();
$result['ORDER_PROPS'] = isset($property)? $property:array();
return $result;
}