• Модуль: 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;
    }