Bitrix-D7  20.0.0
Класс ConverterDocumentPayment
Граф наследования:ConverterDocumentPayment:
Converter ConverterDocumentPaymentInvoice

Открытые члены

 resolveParams ($documentImport)
 
 getPaySystemId ($fields)
 
 externalize (array $fields)
 
- Открытые члены унаследованные от Converter
 encode ($text, $textType="")
 
 decode ($text, $textType="")
 

Открытые статические члены

static sanitizeFields ($payment=null, array &$fields, ISettings $settings)
 
- Открытые статические члены унаследованные от Converter
static getHtmlConverter ()
 
static getXmlConverter ()
 
static getEmptyConverter ()
 
static initTextType ($textType)
 

Защищенные члены

 getFieldsInfo ()
 
 externalizeCashBoxChecksFields ($fields, array $fieldsInfo)
 

Дополнительные унаследованные члены

- Поля данных унаследованные от Converter
const TEXT = "text"
 
const HTML = "html"
 

Подробное описание

См. определение в файле converterdocumentpayment.php строка 16

Методы

◆ externalize()

externalize ( array  $fields)

См. определение в файле converterdocumentpayment.php строка 201

202  {
203  $result = array();
204 
205  $traits = $fields['TRAITS'];
206  $businessValue = $fields['BUSINESS_VALUE'];
207  $checks = $fields['CASH_BOX_CHECKS'];
208 
209  $availableFields = $this->getFieldsInfo();
210 
211  /** @var ISettingsExport $settings */
212  $settings = $this->getSettings();
213 
214  foreach ($availableFields as $k=>$v)
215  {
216  $value='';
217  switch ($k)
218  {
219  case 'ID':
220  $value = ($traits['ID_1C']<>'' ? $traits['ID_1C']:$traits['ID']);
221  break;
222  case 'NUMBER':
223  $value = $traits['ID'];
224  break;
225  case 'DATE':
226  $value = $traits['DATE_BILL'];
227  break;
228  case 'OPERATION':
229  $value = DocumentBase::resolveDocumentTypeName($this->getDocmentTypeId());
230  break;
231  case 'ROLE':
232  $value = DocumentBase::getLangByCodeField('SELLER');
233  break;
234  case 'CURRENCY':
235  $replaceCurrency = $settings->getReplaceCurrency();
236  $value = substr($replaceCurrency<>'' ? $replaceCurrency:$traits[$k], 0, 3);
237  break;
238  case 'CURRENCY_RATE':
239  $value = self::CURRENCY_RATE_DEFAULT;
240  break;
241  case 'AMOUNT':
242  $value = $traits['SUM'];
243  break;
244  case 'VERSION':
245  $value = $traits['VERSION'];
246  break;
247  case 'NUMBER_BASE':// ?????
248  $value = $traits['ORDER_ID'];
249  break;
250  case 'TIME':
251  $value = $traits['DATE_BILL'];
252  break;
253  case 'COMMENT':
254  $value = $traits['COMMENTS'];
255  break;
256  case 'CASH_BOX_CHECKS':
257  if(count($checks)>0)
258  {
259  $value = $this->externalizeCashBoxChecksFields(current($checks), $v);
260  }
261  break;
262  case 'REK_VALUES':
263  $value=array();
264  foreach($v['FIELDS'] as $name=>$fieldInfo)
265  {
266  $valueRV='';
267  switch($name)
268  {
269  case '1C_PAYED_DATE':
270  $valueRV = $traits['DATE_PAID'];
271  break;
272  case '1C_PAYED_NUM':
273  $valueRV = $traits['PAY_VOUCHER_NUM'];
274  break;
275  case 'CANCEL':
276  $valueRV = 'N';
277  break;
278  case 'PAY_SYSTEM_ID':
279  $valueRV = $traits['PAY_SYSTEM_ID'];
280  break;
281  case 'PAY_SYSTEM':
282  $valueRV = $traits['PAY_SYSTEM_NAME'];
283  break;
284  case 'PAY_PAID':
285  $valueRV = $traits['PAID'];
286  break;
287  case 'PAY_RETURN':
288  $valueRV = $traits['IS_RETURN'];
289  break;
290  case 'PAY_RETURN_REASON':
291  $valueRV = $traits['PAY_RETURN_COMMENT'];
292  break;
293  case 'SITE_NAME':
294  $valueRV = '['.$traits['LID'].'] '.static::getSiteNameByLid($traits['LID']);
295  break;
296  case 'REKV':
297  $value = array_merge($value, $this->externalizeRekv($businessValue[$name], $fieldInfo));
298  break;
299  }
300  if(!in_array($name, array('REKV')))
301  {
302  $value[] = $this->externalizeRekvValue($name, $valueRV, $fieldInfo);
303  }
304  }
305  break;
306  }
307  if(!in_array($k, array('REK_VALUES', 'CASH_BOX_CHECKS')))
308  {
309  $this->externalizeField($value, $v);
310  }
311 
312  $result[$k] = $value;
313  }
314  $result = $this->modifyTrim($result);
315  return $result;
316  }

◆ externalizeCashBoxChecksFields()

externalizeCashBoxChecksFields (   $fields,
array  $fieldsInfo 
)
protected
Аргументы
$fields
array$fieldsInfo
Возвращает
array

См. определение в файле converterdocumentpayment.php строка 323

324  {
325  $result = array();
326  foreach($fieldsInfo['FIELDS'] as $name=>$fieldInfo)
327  {
328  $value='';
329  switch($name)
330  {
331  case 'ID':
332  $value = $fields['ID'];
333  $this->externalizeField($value, $fieldInfo);
334  $result[$name] = $value;
335  break;
336  case 'PROP_VALUES':
337  foreach ($fieldInfo['FIELDS'] as $nameProp=>$fieldInfoProp)
338  {
339  switch ($nameProp)
340  {
341  case 'ID':
342  $value = 'PRINT_CHECK';
343  break;
344  case 'VALUE':
345  $value = 'Y';
346  break;
347  }
348  $this->externalizeField($value, $fieldInfoProp);
349  $result[$name][$nameProp] = $value;
350  }
351  break;
352  }
353  }
354 
355  return $result;
356  }

◆ getFieldsInfo()

getFieldsInfo ( )
protected
Возвращает
array

См. определение в файле converterdocumentpayment.php строка 21

22  {
24  }

◆ getPaySystemId()

getPaySystemId (   $fields)
Аргументы
$fields
Возвращает
int

Переопределяется в ConverterDocumentPaymentInvoice.

См. определение в файле converterdocumentpayment.php строка 134

135  {
136  $paySystemId = 0;
137  if(isset($fields['PAY_SYSTEM_ID']))
138  {
139  $paySystemId = $fields['PAY_SYSTEM_ID'];
140  }
141 
142  if($paySystemId<=0)
143  {
144  if(isset($fields['PAY_SYSTEM_ID_DEFAULT']))
145  {
146  $paySystemId = $fields['PAY_SYSTEM_ID_DEFAULT'];
147  }
148  }
149  /** @var ImportSettings $settings */
150  $settings = $this->getSettings();
151 
152  if($paySystemId<=0)
153  {
154  $paySystemId = $settings->paySystemIdFor($this->getEntityTypeId());
155  }
156 
157  if($paySystemId<=0)
158  {
159  $paySystemId = $settings->paySystemIdDefaultFor($this->getEntityTypeId());
160  }
161 
162  return $paySystemId;
163  }

◆ resolveParams()

resolveParams (   $documentImport)
Аргументы
$documentImport
Возвращает
array
Исключения
ArgumentException

См. определение в файле converterdocumentpayment.php строка 31

32  {
33  if(!($documentImport instanceof DocumentBase))
34  throw new ArgumentException("Document must be instanceof DocumentBase");
35 
36  $result = array();
37 
38  $params = $documentImport->getFieldValues();
39 
40  $availableFields = array_merge(Payment::getAvailableFields(), array('CASH_BOX_CHECKS'));
41 
42  /** TODO: huck */
43  rsort($availableFields);
44 
45  foreach ($availableFields as $k)
46  {
47  switch($k)
48  {
49  case 'ID_1C':
50  case 'VERSION_1C':
51  if(isset($params[$k]))
52  $fields[$k] = $params[$k];
53  break;
54  case 'SUM':
55  if(isset($params['AMOUNT']))
56  $fields[$k] = $params['AMOUNT'];
57  break;
58  case 'COMMENTS':
59  if(isset($params['COMMENT']))
60  $fields[$k] = $params['COMMENT'];
61  break;
62  case 'PAY_VOUCHER_DATE':
63  if(isset($params['REK_VALUES']['1C_PAYED_DATE']))
64  $fields[$k] = $params['REK_VALUES']['1C_PAYED_DATE'];
65  break;
66  case 'PAY_VOUCHER_NUM':
67  if(isset($params['REK_VALUES']['1C_PAYED_NUM']))
68  $fields[$k] = $params['REK_VALUES']['1C_PAYED_NUM'];
69  break;
70  case 'PAID':
71  $payed='';
72  $cancel='';
73 
74  if(isset($params['REK_VALUES']['1C_PAYED']))
75  $payed = $params['REK_VALUES']['1C_PAYED'];
76  if(isset($params['REK_VALUES']['CANCEL']))
77  $cancel = $params['REK_VALUES']['CANCEL'];
78 
79  if($payed == 'Y')
80  $fields[$k] = 'Y';
81  elseif($cancel == 'Y')
82  $fields[$k] = 'N';
83  break;
84  case 'IS_RETURN':
85  if(isset($params['REK_VALUES']['1C_RETURN']))
86  {
87  $value = $params['REK_VALUES']['1C_RETURN'];
88  if($value == 'Y')
89  $fields[$k] = 'Y';
90  }
91  break;
92  case 'PAY_RETURN_COMMENT':
93  if(isset($params['REK_VALUES']['1C_RETURN_REASON']))
94  $fields[$k] = $params['REK_VALUES']['1C_RETURN_REASON'];
95  break;
96  case 'PAY_SYSTEM_ID':
97  $fields[$k] = $this->getPaySystemId($params['REK_VALUES']);
98  break;
99  case 'CASH_BOX_CHECKS':
100  if(is_array($params[$k]))
101  {
102  foreach($params[$k] as $property=>$value)
103  {
104  switch($property)
105  {
106  case 'ID':
107  $cashBoxChecks[$property] = $value;
108  break;
109  case 'CASHBOX_URL':
110  $cashBoxChecks['LINK_PARAMS']['URL'] = $value;
111  break;
112  case 'CASHBOX_FISCAL_SIGN':
113  $cashBoxChecks['LINK_PARAMS']['FISCAL_SIGN'] = $value;
114  break;
115  case 'CASHBOX_REG_NUMBER_KKT':
116  $cashBoxChecks['LINK_PARAMS']['REG_NUMBER_KKT'] = $value;
117  }
118  }
119  }
120  break;
121  }
122  }
123 
124  $result['TRAITS'] = isset($fields)? $fields:array();
125  $result['CASH_BOX_CHECKS'] = isset($cashBoxChecks)? $cashBoxChecks:array();
126 
127  return $result;
128  }

◆ sanitizeFields()

static sanitizeFields (   $payment = null,
array &  $fields,
ISettings  $settings 
)
static
Аргументы
Payment | null$payment
array$fields

См. определение в файле converterdocumentpayment.php строка 169

170  {
171  if(!empty($payment) && !($payment instanceof Payment))
172  throw new ArgumentException("Entity must be instanceof Payment");
173 
174  foreach($fields as $k=>$v)
175  {
176  switch($k)
177  {
178  case 'AMOUNT':
179  if(!empty($payment) && $payment->isPaid())
180  {
181  unset($fields['SUM']);
182  }
183  break;
184  case 'PAY_SYSTEM_ID':
185  if(!empty($payment))
186  {
187  unset($fields['PAY_SYSTEM_ID']);
188  }
189  break;
190  }
191  }
192 
193  if(empty($payment))
194  {
195  /** @var ISettingsImport $settings */
196  $fields['CURRENCY'] = $settings->getCurrency();
197  }
198  unset($fields['ID']);
199  }

Объявления и описания членов класса находятся в файле:
Bitrix\Sale\Exchange\OneC\DocumentBase\resolveDocumentTypeName
static resolveDocumentTypeName($typeId)
Definition: documentbase.php:168
if
if( $request->getPost( 'event') !==null)
Definition: sale/lib/rest/synchronization/push.php:10
Bitrix\Sale\Payment\getAvailableFields
static getAvailableFields()
Definition: payment.php:91
Bitrix\Sale\Exchange\OneC\ConverterDocumentPayment\getFieldsInfo
getFieldsInfo()
Definition: converterdocumentpayment.php:21
Bitrix\Sale\Exchange\OneC\DocumentBase\getLangByCodeField
static getLangByCodeField($code)
Definition: documentbase.php:793
Bitrix\Sale\Exchange\OneC\PaymentDocument\getFieldsInfo
static getFieldsInfo()
Definition: paymentdocument.php:11
Bitrix\Sale\Exchange\OneC\ConverterDocumentPayment\externalizeCashBoxChecksFields
externalizeCashBoxChecksFields($fields, array $fieldsInfo)
Definition: converterdocumentpayment.php:323
Bitrix\Sale\Exchange\OneC\ConverterDocumentPayment\getPaySystemId
getPaySystemId($fields)
Definition: converterdocumentpayment.php:134