- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/converterdocument.php
- Класс: BitrixSaleExchangeOneCConverterDocumentPayment
- Вызов: ConverterDocumentPayment::resolveParams
public function resolveParams($documentImport)
{
if(!($documentImport instanceof DocumentImport))
throw new ArgumentException("Document must be instanceof DocumentImport");
$result = array();
$params = $documentImport->getFieldValues();
$availableFields = array_merge(Payment::getAvailableFields(), array('CASH_BOX_CHECKS'));
/** TODO: huck */
rsort($availableFields);
foreach ($availableFields as $k)
{
switch($k)
{
case 'ID_1C':
case 'VERSION_1C':
if(isset($params[$k]))
$fields[$k] = $params[$k];
break;
case 'SUM':
if(isset($params['AMOUNT']))
$fields[$k] = $params['AMOUNT'];
break;
case 'COMMENTS':
if(isset($params['COMMENT']))
$fields[$k] = $params['COMMENT'];
break;
case 'PAY_VOUCHER_DATE':
if(isset($params['REK_VALUES']['1C_PAYED_DATE']))
$fields[$k] = $params['REK_VALUES']['1C_PAYED_DATE'];
break;
case 'PAY_VOUCHER_NUM':
if(isset($params['REK_VALUES']['1C_PAYED_NUM']))
$fields[$k] = $params['REK_VALUES']['1C_PAYED_NUM'];
break;
case 'PAID':
$payed='';
$cancel='';
if(isset($params['REK_VALUES']['1C_PAYED']))
$payed = $params['REK_VALUES']['1C_PAYED'];
if(isset($params['REK_VALUES']['CANCEL']))
$cancel = $params['REK_VALUES']['CANCEL'];
if($payed == 'Y')
$fields[$k] = 'Y';
elseif($cancel == 'Y')
$fields[$k] = 'N';
break;
case 'IS_RETURN':
if(isset($params['REK_VALUES']['1C_RETURN']))
{
$value = $params['REK_VALUES']['1C_RETURN'];
if($value == 'Y')
$fields[$k] = 'Y';
}
break;
case 'PAY_RETURN_COMMENT':
if(isset($params['REK_VALUES']['1C_RETURN_REASON']))
$fields[$k] = $params['REK_VALUES']['1C_RETURN_REASON'];
break;
case 'PAY_SYSTEM_ID':
$paySystemId = 0;
if(isset($params['REK_VALUES']['PAY_SYSTEM_ID']))
{
$paySystemId = $params['REK_VALUES']['PAY_SYSTEM_ID'];
}
if($paySystemId<=0)
{
if(isset($params['REK_VALUES']['PAY_SYSTEM_ID_DEFAULT']))
{
$paySystemId = $params['REK_VALUES']['PAY_SYSTEM_ID_DEFAULT'];
}
}
/** @var ImportSettings $settings */
$settings = $this->getSettings();
if($paySystemId<=0)
{
$paySystemId = $settings->paySystemIdFor($documentImport->getOwnerEntityTypeId());
}
if($paySystemId<=0)
{
$paySystemId = $settings->paySystemIdDefaultFor($documentImport->getOwnerEntityTypeId());
}
$fields[$k] = $paySystemId;
break;
case 'CASH_BOX_CHECKS':
if(is_array($params[$k]))
{
foreach($params[$k] as $property=>$value)
{
switch($property)
{
case 'ID':
$cashBoxChecks[$property] = $value;
break;
case 'CASHBOX_URL':
$cashBoxChecks['LINK_PARAMS']['URL'] = $value;
break;
case 'CASHBOX_FISCAL_SIGN':
$cashBoxChecks['LINK_PARAMS']['FISCAL_SIGN'] = $value;
break;
case 'CASHBOX_REG_NUMBER_KKT':
$cashBoxChecks['LINK_PARAMS']['REG_NUMBER_KKT'] = $value;
}
}
}
break;
}
}
$result['TRAITS'] = isset($fields)? $fields:array();
$result['CASH_BOX_CHECKS'] = isset($cashBoxChecks)? $cashBoxChecks:array();
return $result;
}