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

	$result = array();

	$params = $documentImport->getFieldValues();

	$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);
	/** @var SaleOrder $orderClass */
	$orderClass = $registry->getOrderClassName();

	$availableFields = $orderClass::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 'CANCELED':
				$value='';
				if(isset($params['CANCELED']))
					$value = $params['CANCELED'];

				if($value == 'Y')
				{
					$fields[$k] = 'Y';
				}
				else

				{
					$v='';
					if(isset($params['REK_VALUES']['CANCEL']))
					{
						$v = $params['REK_VALUES']['CANCEL'];
					}

					if($v == 'Y')
					{
						$fields[$k] = 'Y';
					}
					else
					{
						$fields[$k] = 'N';
					}
				}
				break;
			case 'DATE_INSERT':
				if(isset($params['1C_TIME']) && $params['1C_TIME'] instanceof DateTime)
					$fields[$k] = $params['1C_TIME'];
				break;
			case 'STATUS_ID':
				if(isset($params['REK_VALUES']['1C_STATUS_ID']))
				{
					/** @var ISettingsImport $settings */
					$settings = $this->getSettings();
					if($settings->changeStatusFor($this->getEntityTypeId()) == 'Y')
						$fields[$k] = $params['REK_VALUES']['1C_STATUS_ID'];
				}
				break;
			case '1C_PAYED_DATE':
			case '1C_DELIVERY_DATE':
				if(isset($params['REK_VALUES'][$k]))
					$fields[$k] = $params['REK_VALUES'][$k];
				break;
		}
	}

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

	return $result;
}