1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
pay_system_action.php
См. документацию.
1<?
6
8
11{
12 const GET_PARAM_VALUE = 1;
13
14 public static function GetByID($id)
15 {
16 $id = (int)$id;
17
19 if ($res = $dbRes->fetch())
20 return $res;
21
22 return false;
23 }
24
25 public static function CheckFields($ACTION, &$arFields)
26 {
27 global $DB, $USER;
28
29 if ((is_set($arFields, "NAME") || $ACTION=="ADD") && $arFields["NAME"] == '')
30 {
31 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGPSA_NO_NAME"), "ERROR_NO_NAME");
32 return false;
33 }
34
35 if (is_set($arFields, "NEW_WINDOW") && $arFields["NEW_WINDOW"] != "Y")
36 $arFields["NEW_WINDOW"] = "N";
37 if (is_set($arFields, "HAVE_PAYMENT") && $arFields["HAVE_PAYMENT"] != "Y")
38 $arFields["HAVE_PAYMENT"] = "N";
39 if (is_set($arFields, "HAVE_ACTION") && $arFields["HAVE_ACTION"] != "Y")
40 $arFields["HAVE_ACTION"] = "N";
41 if (is_set($arFields, "HAVE_RESULT") && $arFields["HAVE_RESULT"] != "Y")
42 $arFields["HAVE_RESULT"] = "N";
43 if (is_set($arFields, "HAVE_PREPAY") && $arFields["HAVE_PREPAY"] != "Y")
44 $arFields["HAVE_PREPAY"] = "N";
45 if (is_set($arFields, "HAVE_RESULT_RECEIVE") && $arFields["HAVE_RESULT_RECEIVE"] != "Y")
46 $arFields["HAVE_RESULT_RECEIVE"] = "N";
47 if (is_set($arFields, "ENCODING") && $arFields["ENCODING"] == '')
48 $arFields["ENCODING"] = false;
49
50 return True;
51 }
52
53 public static function Delete($id)
54 {
55 $id = (int)$id;
56
58 return $result->isSuccess();
59 }
60
61 public static function SerializeParams($arParams)
62 {
63 return serialize($arParams);
64 }
65
66 public static function UnSerializeParams($strParams)
67 {
68 $arParams = unserialize($strParams, ['allowed_classes' => false]);
69
70 if (!is_array($arParams))
71 $arParams = array();
72
73 return $arParams;
74 }
75
76 public static function GetParamValue($key, $defaultValue = null)
77 {
78 if (
79 isset($_REQUEST["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_REQUEST)
80 || isset($_POST["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_POST)
81 || isset($_GET["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_GET)
82 || isset($_SESSION["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_SESSION)
83 || isset($_COOKIE["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_COOKIE)
84 || isset($_SERVER["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_SERVER)
85 || isset($_ENV["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_ENV)
86 || isset($_FILES["SALE_CORRESPONDENCE"]) || array_key_exists("SALE_CORRESPONDENCE", $_FILES)
87 || isset($_REQUEST["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_REQUEST)
88 || isset($_POST["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_POST)
89 || isset($_GET["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_GET)
90 || isset($_SESSION["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_SESSION)
91 || isset($_COOKIE["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_COOKIE)
92 || isset($_SERVER["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_SERVER)
93 || isset($_ENV["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_ENV)
94 || isset($_FILES["SALE_INPUT_PARAMS"]) || array_key_exists("SALE_INPUT_PARAMS", $_FILES)
95 )
96 {
97 throw new \Bitrix\Main\SystemException('SALE_CORRESPONDENCE or SALE_INPUT_PARAMS were defined in superglobal variable!');
98 }
99
100 if($key === "BASKET_ITEMS" && isset($GLOBALS["SALE_INPUT_PARAMS"]["BASKET_ITEMS"]))
101 {
102 return $GLOBALS["SALE_INPUT_PARAMS"]["BASKET_ITEMS"];
103 }
104 elseif($key === "TAX_LIST" && isset($GLOBALS["SALE_INPUT_PARAMS"]["TAX_LIST"]))
105 {
106 return $GLOBALS["SALE_INPUT_PARAMS"]["TAX_LIST"];
107 }
108
109 if(!isset($GLOBALS["SALE_CORRESPONDENCE"]) || !is_array($GLOBALS["SALE_CORRESPONDENCE"]))
110 return false;
111
112 if(!isset($GLOBALS["SALE_INPUT_PARAMS"]) || !is_array($GLOBALS["SALE_INPUT_PARAMS"]))
113 return false;
114
115 if(!array_key_exists($key, $GLOBALS["SALE_CORRESPONDENCE"]))
116 {
117 if($defaultValue !== null)
118 return $defaultValue;
119
120 $message = GetMessage("SKGPSA_ERROR_NO_KEY", array(
121 "#KEY#" => $key,
122 "#ORDER_ID#" => $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"],
123 "#PS_ID#" => $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAY_SYSTEM_ID"]
124 ))." (".__METHOD__.")";
125
127 throw new \Bitrix\Main\SystemException($message, self::GET_PARAM_VALUE);
128 }
129
130 $type = $GLOBALS["SALE_CORRESPONDENCE"][$key]["TYPE"];
131 $value = $GLOBALS["SALE_CORRESPONDENCE"][$key]["VALUE"];
132
133 if ($type <> '')
134 {
135 if (array_key_exists($type, $GLOBALS["SALE_INPUT_PARAMS"])
136 && is_array($GLOBALS["SALE_INPUT_PARAMS"][$type])
137 && array_key_exists($value, $GLOBALS["SALE_INPUT_PARAMS"][$type]))
138 {
139 $res = $GLOBALS["SALE_INPUT_PARAMS"][$type][$value];
140 }
141 elseif ($type == "SELECT" || $type == "RADIO" || $type == "FILE" || $type == "Y/N" || $type == "ENUM" || $type == "CHECKBOX" || $type == "USER_COLUMN_LIST")
142 {
143 $res = $GLOBALS["SALE_CORRESPONDENCE"][$key]["VALUE"];
144 }
145 else
146 {
147 $res = False;
148 }
149 }
150 else
151 {
152 $res = $value;
153 }
154
155 return $res;
156 }
157
158 public static function alarm($itemId, $description)
159 {
162 }
163
164 public static function writeToEventLog($itemId, $description)
165 {
166 return CEventLog::Add(array(
167 "SEVERITY" => "ERROR",
168 "AUDIT_TYPE_ID" => "PAY_SYSTEM_ACTION_ALARM",
169 "MODULE_ID" => "sale",
170 "ITEM_ID" => $itemId,
171 "DESCRIPTION" => $description
172 ));
173 }
174
175 public static function OnEventLogGetAuditTypes()
176 {
177 return array(
178 "PAY_SYSTEM_ACTION_ALARM" => "[PAY_SYSTEM_ACTION_ALARM] ".GetMessage("SKGPSA_ALARM_EVENT_LOG_MSGVER_1")
179 );
180 }
181
182 public static function showAlarmMessage()
183 {
184 $tag = "PAY_SYSTEM_ACTION_ALARM";
185 $dbRes = CAdminNotify::GetList(array(), array("TAG" => $tag));
186
187 if($res = $dbRes->Fetch())
188 return false;
189
191 "MESSAGE" => GetMessage("SKGPSA_ALARM_MESSAGE", array("#LANGUAGE_ID#" => LANGUAGE_ID)),
192 "TAG" => $tag,
193 "MODULE_ID" => "SALE",
194 "ENABLE_CLOSE" => "Y",
195 "NOTIFY_TYPE" => CAdminNotify::TYPE_ERROR
196 )
197 );
198 }
199
200 public static function InitParamArrays($arOrder, $orderID = 0, $psParams = "", $relatedData = array(), $payment = array(), $shipment = array(), $registryType = Sale\Registry::REGISTRY_TYPE_ORDER)
201 {
202 if(!is_array($relatedData))
203 $relatedData = array();
204
205 $registry = Sale\Registry::getInstance($registryType);
206
207 $GLOBALS["SALE_INPUT_PARAMS"] = array();
208 $GLOBALS["SALE_CORRESPONDENCE"] = array();
209
210 if ((!is_array($arOrder) || count($arOrder) <= 0 || !array_key_exists("ID", $arOrder)) && $orderID > 0)
211 {
212 $arOrder = array();
213
214 $orderID = intval($orderID);
215 if ($orderID > 0)
216 $arOrderTmp = CSaleOrder::GetByID($orderID);
217 if (!empty($arOrderTmp))
218 {
219 foreach($arOrderTmp as $k => $v)
220 {
221 $arOrder["~".$k] = $v;
222 $arOrder[$k] = htmlspecialcharsbx($v);
223 }
224 }
225 }
226 else if ($orderID == 0 && $arOrder['ID'] > 0)
227 {
228 $orderID = $arOrder['ID'];
229 }
230
231 if (empty($payment) && $orderID > 0)
232 {
234 $paymentClassName = $registry->getPaymentClassName();
235 $dbRes = $paymentClassName::getList(
236 array(
237 'select' => array('*'),
238 'filter' => array(
239 'ORDER_ID' => $orderID,
240 '!PAY_SYSTEM_ID' => Sale\PaySystem\Manager::getInnerPaySystemId()
241 )
242 )
243 );
244
245 $payment = $dbRes->fetch();
246 }
247
248 if (is_array($arOrder) && count($arOrder) > 0)
249 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"] = $arOrder;
250
251 if (!empty($payment))
252 {
253 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAYMENT_ID"] = $payment['ID'];
254 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~PAYMENT_ID"] = $payment['ID'];
255 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"] = $payment['SUM'];
256 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~SHOULD_PAY"] = $payment['SUM'];
257 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAYED"] = $payment['PAID'];
258 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~PAYED"] = $payment['PAID'];
259 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAY_SYSTEM_ID"] = $payment['PAY_SYSTEM_ID'];
260 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~PAY_SYSTEM_ID"] = $payment['PAY_SYSTEM_ID'];
261 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ORDER_PAYMENT_ID"] = $payment['ID'];
262 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~ORDER_PAYMENT_ID"] = $payment['ID'];
263
264 $GLOBALS["SALE_INPUT_PARAMS"]["PAYMENT"] = $payment;
265 }
266 else
267 {
268 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"] = DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"]) - DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"]);
269 }
270
271 $arDateInsert = explode(" ", $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]);
272 if (is_array($arDateInsert) && count($arDateInsert) > 0)
273 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT_DATE"] = $arDateInsert[0];
274 else
275 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT_DATE"] = $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"];
276
277 if (!empty($payment))
278 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_BILL_DATE"] = ConvertTimeStamp(MakeTimeStamp($payment["DATE_BILL"]), 'SHORT');
279
280 $userID = intval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["USER_ID"]);
281 if ($userID > 0)
282 {
283 $dbUser = CUser::GetByID($userID);
284 if ($arUser = $dbUser->GetNext())
285 $GLOBALS["SALE_INPUT_PARAMS"]["USER"] = $arUser;
286 }
287
288 $arCurOrderProps = array();
289 if (isset($relatedData["PROPERTIES"]) && is_array($relatedData["PROPERTIES"]))
290 {
291 $properties = $relatedData["PROPERTIES"];
292 foreach ($properties as $key => $value)
293 {
294 $arCurOrderProps["~".$key] = $value;
295 $arCurOrderProps[$key] = htmlspecialcharsEx($value);
296 }
297 }
298 else
299 {
301 $propertyClassName = $registry->getPropertyValueClassName();
302 $dbRes = $propertyClassName::getList(array(
303 'select' => array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE" => 'PROPERTY.TYPE'),
304 'filter' => array("ORDER_ID" => $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]),
305 )
306 );
307
308 while ($arOrderPropVals = $dbRes->fetch())
309 {
310 $arCurOrderPropsTmp = CSaleOrderProps::GetRealValue(
311 $arOrderPropVals["ORDER_PROPS_ID"],
312 $arOrderPropVals["CODE"],
313 $arOrderPropVals["PROP_TYPE"],
314 $arOrderPropVals["VALUE"],
315 LANGUAGE_ID
316 );
317
318 foreach ($arCurOrderPropsTmp as $key => $value)
319 {
320 $arCurOrderProps["~".$key] = $value;
321 $arCurOrderProps[$key] = htmlspecialcharsEx($value);
322 }
323 }
324 }
325
326 if (count($arCurOrderProps) > 0)
327 $GLOBALS["SALE_INPUT_PARAMS"]["PROPERTY"] = $arCurOrderProps;
328
329 if (empty($shipment) && $orderID > 0)
330 {
332 $shipmentClassName = $registry->getShipmentClassName();
333 $dbRes = $shipmentClassName::getList(
334 array(
335 'select' => array('DELIVERY_ID'),
336 'filter' => array('=ORDER_ID' => $orderID, '=SYSTEM' => 'N')
337 )
338 );
339 $shipment = $dbRes->fetch();
340 }
341
342 if ($shipment)
343 {
344 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DELIVERY_ID"] = $shipment['DELIVERY_ID'];
345 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["~DELIVERY_ID"] = $shipment['DELIVERY_ID'];
346 }
347
348 $paySystemId = '';
349 if ($payment && $payment['PAY_SYSTEM_ID'] > 0)
350 {
351 $paySystemId = $payment['PAY_SYSTEM_ID'];
352 }
353 elseif (isset($arOrder['PAY_SYSTEM_ID']) && $arOrder['PAY_SYSTEM_ID'] > 0)
354 {
355 $paySystemId = $arOrder['PAY_SYSTEM_ID'];
356 }
357 else
358 {
359 $psParams = unserialize($psParams, ['allowed_classes' => false]);
360 if (isset($psParams['BX_PAY_SYSTEM_ID']))
361 $paySystemId = $psParams['BX_PAY_SYSTEM_ID']['VALUE'];
362 }
363
364 if ($paySystemId !== '')
365 {
366 if (!isset($arOrder['PERSON_TYPE_ID']) || $arOrder['PERSON_TYPE_ID'] <= 0)
367 {
368 // for crm quote compatibility
369 $personTypes = CSalePaySystem::getPaySystemPersonTypeIds($paySystemId);
370 $personTypeId = array_shift($personTypes);
371 }
372 else
373 {
374 $personTypeId = $arOrder['PERSON_TYPE_ID'];
375 }
376
377 $params = CSalePaySystemAction::getParamsByConsumer('PAYSYSTEM_'.$paySystemId, $personTypeId);
378 foreach ($params as $key => $value)
379 {
380 if ($key === 'USER_COLUMNS')
381 {
382 $userColumns = unserialize($value['VALUE'], ['allowed_classes' => false]);
383 if ($userColumns)
384 {
385 foreach ($userColumns as $code => $column)
386 {
387 $userColumns['PROPERTY_'.$code] = $column;
388 unset($userColumns[$code]);
389 }
390 }
391 $params[$key]['VALUE'] = $params[$key]['~VALUE'] = $userColumns;
392 }
393 else
394 {
395 $params[$key]['~VALUE'] = htmlspecialcharsbx($value['VALUE']);
396 }
397 }
398
399 $GLOBALS["SALE_CORRESPONDENCE"] = $params;
400 }
401
402 if ($payment['COMPANY_ID'] > 0)
403 {
404 if (!array_key_exists('COMPANY', $GLOBALS["SALE_INPUT_PARAMS"]))
405 $GLOBALS["SALE_INPUT_PARAMS"]["COMPANY"] = array();
406
407 global $USER_FIELD_MANAGER;
408 $userFieldsList = $USER_FIELD_MANAGER->GetUserFields(\Bitrix\Sale\Internals\CompanyTable::getUfId(), null, LANGUAGE_ID);
409 foreach ($userFieldsList as $key => $userField)
410 {
411 $value = $USER_FIELD_MANAGER->GetUserFieldValue(\Bitrix\Sale\Internals\CompanyTable::getUfId(), $key, $payment['COMPANY_ID']);
412 $GLOBALS["SALE_INPUT_PARAMS"]["COMPANY"][$key] = $value;
413 $GLOBALS["SALE_INPUT_PARAMS"]["COMPANY"]["~".$key] = $value;
414 }
415
416 $companyFieldList = \Bitrix\Sale\Internals\CompanyTable::getRowById($payment['COMPANY_ID']);
417 foreach ($companyFieldList as $key => $value)
418 {
419 $GLOBALS["SALE_INPUT_PARAMS"]["COMPANY"][$key] = $value;
420 $GLOBALS["SALE_INPUT_PARAMS"]["COMPANY"]["~".$key] = $value;
421 }
422 }
423 // fields with no interface
424
425 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_STREET']["TYPE"] = 'PROPERTY';
426 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_STREET']["VALUE"] = 'LOCATION_STREET';
427 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_STREET']["~VALUE"] = 'LOCATION_STREET';
428
429 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_VILLAGE']["TYPE"] = 'PROPERTY';
430 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_VILLAGE']["VALUE"] = 'LOCATION_VILLAGE';
431 $GLOBALS["SALE_CORRESPONDENCE"]['PAYER_VILLAGE']["~VALUE"] = 'LOCATION_VILLAGE';
432
433 $GLOBALS["SALE_CORRESPONDENCE"]['ORDER_PAYMENT_ID']["TYPE"] = 'ORDER';
434 $GLOBALS["SALE_CORRESPONDENCE"]['ORDER_PAYMENT_ID']["VALUE"] = 'PAYMENT_ID';
435 $GLOBALS["SALE_CORRESPONDENCE"]['ORDER_PAYMENT_ID']["~VALUE"] = 'PAYMENT_ID';
436
437 $GLOBALS["SALE_CORRESPONDENCE"]['PAYED']["TYPE"] = 'ORDER';
438 $GLOBALS["SALE_CORRESPONDENCE"]['PAYED']["VALUE"] = 'PAYED';
439 $GLOBALS["SALE_CORRESPONDENCE"]['PAYED']["~VALUE"] = 'PAYED';
440
441 if (isset($relatedData["BASKET_ITEMS"]) && is_array($relatedData["BASKET_ITEMS"]))
442 $GLOBALS["SALE_INPUT_PARAMS"]["BASKET_ITEMS"] = $relatedData["BASKET_ITEMS"];
443
444 if (isset($relatedData["TAX_LIST"]) && is_array($relatedData["TAX_LIST"]))
445 $GLOBALS["SALE_INPUT_PARAMS"]["TAX_LIST"] = $relatedData["TAX_LIST"];
446
447
448 if (isset($relatedData["TEMPLATE_PARAMS"]) && is_array($relatedData["TEMPLATE_PARAMS"]))
449 {
450 $GLOBALS["SALE_CORRESPONDENCE"] = array_merge($GLOBALS["SALE_CORRESPONDENCE"], $relatedData["TEMPLATE_PARAMS"]);
451 }
452
453 $redefinedFields = [];
454 if (isset($relatedData["REQUISITE"]) && is_array($relatedData["REQUISITE"]))
455 {
456 $GLOBALS["SALE_INPUT_PARAMS"]["REQUISITE"] = $relatedData["REQUISITE"];
457 $redefinedFields["REQUISITE"] = $relatedData["REQUISITE"];
458 }
459
460 if (isset($relatedData["BANK_DETAIL"]) && is_array($relatedData["BANK_DETAIL"]))
461 {
462 $GLOBALS["SALE_INPUT_PARAMS"]["BANK_DETAIL"] = $relatedData["BANK_DETAIL"];
463 $redefinedFields["BANK_DETAIL"] = $relatedData["BANK_DETAIL"];
464 }
465
466 if (isset($relatedData["CRM_COMPANY"]) && is_array($relatedData["CRM_COMPANY"]))
467 {
468 $GLOBALS["SALE_INPUT_PARAMS"]["CRM_COMPANY"] = $relatedData["CRM_COMPANY"];
469 $redefinedFields["CRM_COMPANY"] = $relatedData["CRM_COMPANY"];
470 }
471
472 if (isset($relatedData["CRM_CONTACT"]) && is_array($relatedData["CRM_CONTACT"]))
473 {
474 $GLOBALS["SALE_INPUT_PARAMS"]["CRM_CONTACT"] = $relatedData["CRM_CONTACT"];
475 $redefinedFields["CRM_CONTACT"] = $relatedData["CRM_CONTACT"];
476 }
477
478 if (isset($relatedData["MC_REQUISITE"]) && is_array($relatedData["MC_REQUISITE"]))
479 {
480 $GLOBALS["SALE_INPUT_PARAMS"]["MC_REQUISITE"] = $relatedData["MC_REQUISITE"];
481 $redefinedFields["MC_REQUISITE"] = $relatedData["MC_REQUISITE"];
482 }
483
484 if (isset($relatedData["MC_BANK_DETAIL"]) && is_array($relatedData["MC_BANK_DETAIL"]))
485 {
486 $GLOBALS["SALE_INPUT_PARAMS"]["MC_BANK_DETAIL"] = $relatedData["MC_BANK_DETAIL"];
487 $redefinedFields["MC_BANK_DETAIL"] = $relatedData["MC_BANK_DETAIL"];
488 }
489
490 if (isset($relatedData["CRM_MYCOMPANY"]) && is_array($relatedData["CRM_MYCOMPANY"]))
491 {
492 $GLOBALS["SALE_INPUT_PARAMS"]["CRM_MYCOMPANY"] = $relatedData["CRM_MYCOMPANY"];
493 $redefinedFields["CRM_MYCOMPANY"] = $relatedData["CRM_MYCOMPANY"];
494 }
495
496 if ($redefinedFields)
497 {
498 Sale\BusinessValue::redefineProviderField($redefinedFields);
499 }
500 }
501
502 public static function IncludePrePaySystem($fileName, $bDoPayAction, &$arPaySysResult, &$strPaySysError, &$strPaySysWarning, $BASE_LANG_CURRENCY = False, $ORDER_PRICE = 0.0, $TAX_PRICE = 0.0, $DISCOUNT_PRICE = 0.0, $DELIVERY_PRICE = 0.0)
503 {
504 $strPaySysError = "";
505 $strPaySysWarning = "";
506
507 $arPaySysResult = array(
508 "PS_STATUS" => false,
509 "PS_STATUS_CODE" => false,
510 "PS_STATUS_DESCRIPTION" => false,
511 "PS_STATUS_MESSAGE" => false,
512 "PS_SUM" => false,
513 "PS_CURRENCY" => false,
514 "PS_RESPONSE_DATE" => false,
515 "USER_CARD_TYPE" => false,
516 "USER_CARD_NUM" => false,
517 "USER_CARD_EXP_MONTH" => false,
518 "USER_CARD_EXP_YEAR" => false,
519 "USER_CARD_CODE" => false
520 );
521
522 if ($BASE_LANG_CURRENCY === false)
523 $BASE_LANG_CURRENCY = CSaleLang::GetLangCurrency(SITE_ID);
524
525 include($fileName);
526 }
527
528 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
529 {
530 if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y')
531 {
532 $ignoredFields = array('PERSON_TYPE_ID');
533 if (!$arSelectFields)
534 {
535 $select = array("ID", "PAY_SYSTEM_ID", "PERSON_TYPE_ID", "PSA_NAME", "ACTION_FILE", "RESULT_FILE", "NEW_WINDOW", "PARAMS", "TARIF", "ENCODING", "LOGOTIP");
536 }
537 else
538 {
539 $select = array();
540 foreach ($arSelectFields as $i => $field)
541 {
542 if (mb_strpos($field, 'PT_') === 0)
543 {
544 continue;
545 }
546 $select[] = self::getAlias($field);
547 }
548 }
549 if (!in_array('ID', $select))
550 $select[] = 'ID';
551
552 $orderBy = array();
553 if ($arOrder)
554 {
555 foreach ($arOrder as $field => $type)
556 {
557 if (mb_strpos($field, 'PT_') === 0)
558 {
559 continue;
560 }
561 $orderBy[self::getAlias($field)] = $type;
562 }
563 }
564
565 $filter = array();
566 foreach ($arFilter as $i => $field)
567 {
568 if (mb_strpos($i, 'PT_') === 0)
569 {
570 continue;
571 }
572
573 if (in_array($i, $ignoredFields))
574 {
575 continue;
576 }
577
578 if ($i == 'PAY_SYSTEM_ID')
579 {
580 $filter['ID'] = $field;
581 }
582 else
583 {
584 $filter[self::getAlias($i)] = $field;
585 }
586 }
587 $groupBy = array();
588 if ($arGroupBy !== false)
589 {
590 $arGroupBy = !is_array($arGroupBy) ? array($arGroupBy) : $arGroupBy;
591 foreach ($arGroupBy as $field => $order)
592 {
593 if (mb_strpos($field, 'PT_') === 0)
594 {
595 continue;
596 }
597
598 $groupBy[self::getAlias($field)] = $order;
599 }
600 }
602 'select' => $select,
603 'filter' => $filter,
604 'order' => $orderBy,
605 'group' => $groupBy
606 ));
607 $limit = null;
608 if (is_array($arNavStartParams) && isset($arNavStartParams['nTopCount']))
609 {
610 if ($arNavStartParams['nTopCount'] > 0)
611 $limit = $arNavStartParams['nTopCount'];
612 }
613 $result = array();
614 $busValEnable = (in_array('PARAMS', $select));
615 while ($data = $dbRes->fetch())
616 {
617 if ($limit !== null && !$limit)
618 break;
619 $dbRestriction = ServiceRestrictionTable::getList(array(
620 'filter' => array(
621 'SERVICE_ID' => $data['ID'],
622 'SERVICE_TYPE' => Manager::SERVICE_TYPE_PAYMENT
623 )
624 ));
625 if (isset($data['ACTION_FILE']))
626 {
627 $oldHandler = array_search($data['ACTION_FILE'], self::getOldToNewHandlersMap());
628 if ($oldHandler !== false)
629 $data['ACTION_FILE'] = $oldHandler;
630 }
631 while ($restriction = $dbRestriction->fetch())
632 {
633 if (!self::checkRestriction($restriction, $filter))
634 continue(2);
635 }
636 if (isset($data['PAY_SYSTEM_ID']))
637 $data['PAY_SYSTEM_ID'] = $data['ID'];
638 if ($busValEnable)
639 {
640 if ($data['ID'] > 0)
641 {
642 $consumerId = $data['ID'];
643 }
644 else
645 {
646 $params = unserialize($data['PARAMS'], ['allowed_classes' => false]);
647 $consumerId = $params['BX_PAY_SYSTEM_ID']['VALUE'];
648 }
649 $consumer = 'PAYSYSTEM_'.$consumerId;
650 if (!$data['PERSON_TYPE_ID'])
651 {
652 if (is_array($arFilter['PERSON_TYPE_ID']))
653 $personTypeId = $arFilter['PERSON_TYPE_ID'][0];
654 else
655 $personTypeId = $arFilter['PERSON_TYPE_ID'];
656 }
657 else
658 {
659 $personTypeId = $data['PERSON_TYPE_ID'];
660 }
661 if (!in_array('ID', $arSelectFields))
662 {
663 $key = array_search('ID', $data);
664 unset($data[$key]);
665 }
666 $params = static::getParamsByConsumer($consumer, $personTypeId);
667 $params['BX_PAY_SYSTEM_ID'] = array(
668 'TYPE' => '',
669 'VALUE' => $consumerId
670 );
671 $data['PARAMS'] = serialize($params);
672 }
673 if (in_array('PS_NAME', $arSelectFields))
674 {
675 $data['PS_NAME'] = $data['NAME'];
676 unset($data['NAME']);
677 }
678 if (array_key_exists('PSA_NAME', $data))
679 {
680 $data['NAME'] = $data['PSA_NAME'];
681 unset($data['PSA_NAME']);
682 }
683 $result[] = $data;
684 $limit--;
685 }
686 $dbRes = new CDBResult();
687 $dbRes->InitFromArray($result);
688 }
689 else
690 {
691 global $DB;
692
693 if (!is_array($arOrder) && !is_array($arFilter))
694 {
695 $arOrder = strval($arOrder);
696 $arFilter = strval($arFilter);
697 if ($arOrder <> '' && $arFilter <> '')
698 $arOrder = array($arOrder => $arFilter);
699 else
700 $arOrder = array();
701 if (is_array($arGroupBy))
702 $arFilter = $arGroupBy;
703 else
704 $arFilter = array();
705 $arGroupBy = false;
706 }
707
708 if (count($arSelectFields) <= 0)
709 $arSelectFields = array("ID", "PAY_SYSTEM_ID", "PERSON_TYPE_ID", "NAME", "ACTION_FILE", "RESULT_FILE", "NEW_WINDOW", "PARAMS", "TARIF", "ENCODING", "LOGOTIP");
710
711 // FIELDS -->
713 "ID" => array("FIELD" => "PSA.ID", "TYPE" => "int"),
714 "PAY_SYSTEM_ID" => array("FIELD" => "PSA.PAY_SYSTEM_ID", "TYPE" => "int"),
715 "PERSON_TYPE_ID" => array("FIELD" => "PSA.PERSON_TYPE_ID", "TYPE" => "int"),
716 "NAME" => array("FIELD" => "PSA.NAME", "TYPE" => "string"),
717 "ACTION_FILE" => array("FIELD" => "PSA.ACTION_FILE", "TYPE" => "string"),
718 "RESULT_FILE" => array("FIELD" => "PSA.RESULT_FILE", "TYPE" => "string"),
719 "NEW_WINDOW" => array("FIELD" => "PSA.NEW_WINDOW", "TYPE" => "char"),
720 "PARAMS" => array("FIELD" => "PSA.PARAMS", "TYPE" => "string"),
721 "TARIF" => array("FIELD" => "PSA.TARIF", "TYPE" => "string"),
722 "HAVE_PAYMENT" => array("FIELD" => "PSA.HAVE_PAYMENT", "TYPE" => "char"),
723 "HAVE_ACTION" => array("FIELD" => "PSA.HAVE_ACTION", "TYPE" => "char"),
724 "HAVE_RESULT" => array("FIELD" => "PSA.HAVE_RESULT", "TYPE" => "char"),
725 "HAVE_PREPAY" => array("FIELD" => "PSA.HAVE_PREPAY", "TYPE" => "char"),
726 "HAVE_RESULT_RECEIVE" => array("FIELD" => "PSA.HAVE_RESULT_RECEIVE", "TYPE" => "char"),
727 "ENCODING" => array("FIELD" => "PSA.ENCODING", "TYPE" => "string"),
728 "LOGOTIP" => array("FIELD" => "PSA.LOGOTIP", "TYPE" => "int"),
729 "PS_LID" => array("FIELD" => "PS.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
730 "PS_CURRENCY" => array("FIELD" => "PS.CURRENCY", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
731 "PS_NAME" => array("FIELD" => "PS.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
732 "PS_ACTIVE" => array("FIELD" => "PS.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
733 "PS_SORT" => array("FIELD" => "PS.SORT", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
734 "PS_DESCRIPTION" => array("FIELD" => "PS.DESCRIPTION", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_pay_system PS ON (PSA.PAY_SYSTEM_ID = PS.ID)"),
735 "PT_LID" => array("FIELD" => "PT.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_person_type PT ON (PSA.PERSON_TYPE_ID = PT.ID)"),
736 "PT_NAME" => array("FIELD" => "PT.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_person_type PT ON (PSA.PERSON_TYPE_ID = PT.ID)"),
737 "PT_SORT" => array("FIELD" => "PT.SORT", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_person_type PT ON (PSA.PERSON_TYPE_ID = PT.ID)"),
738 "PT_ACTIVE" => array("FIELD" => "PT.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_sale_person_type PT ON (PSA.PERSON_TYPE_ID = PT.ID)"),
739 );
740 // <-- FIELDS
741
742 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
743
744 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]);
745
746 if (is_array($arGroupBy) && count($arGroupBy)==0)
747 {
748 $strSql =
749 "SELECT ".$arSqls["SELECT"]." ".
750 "FROM b_sale_pay_system_action PSA ".
751 " ".$arSqls["FROM"]." ";
752 if ($arSqls["WHERE"] <> '')
753 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
754 if ($arSqls["GROUPBY"] <> '')
755 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
756
757 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
758
759 $dbRes = $DB->Query($strSql);
760 if ($arRes = $dbRes->Fetch())
761 return $arRes["CNT"];
762 else
763 return False;
764 }
765
766 $strSql =
767 "SELECT ".$arSqls["SELECT"]." ".
768 "FROM b_sale_pay_system_action PSA ".
769 " ".$arSqls["FROM"]." ";
770 if ($arSqls["WHERE"] <> '')
771 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
772 if ($arSqls["GROUPBY"] <> '')
773 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
774 if ($arSqls["ORDERBY"] <> '')
775 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
776
777 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])<=0)
778 {
779 $strSql_tmp =
780 "SELECT COUNT('x') as CNT ".
781 "FROM b_sale_pay_system_action PSA ".
782 " ".$arSqls["FROM"]." ";
783 if ($arSqls["WHERE"] <> '')
784 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
785 if ($arSqls["GROUPBY"] <> '')
786 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
787
788 $dbRes = $DB->Query($strSql_tmp);
789 $cnt = 0;
790 if ($arSqls["GROUPBY"] == '')
791 {
792 if ($arRes = $dbRes->Fetch())
793 $cnt = $arRes["CNT"];
794 }
795 else
796 {
797 $cnt = $dbRes->SelectedRowsCount();
798 }
799
800 $dbRes = new CDBResult();
801
802 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
803 }
804 else
805 {
806 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])>0)
807 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
808 $dbRes = $DB->Query($strSql);
809 }
810 }
811
812 return $dbRes;
813 }
814
815 public static function getAliases()
816 {
817 return array(
818 'PS_NAME' => 'NAME',
819 'NAME' => 'PSA_NAME',
820 'PS_ACTIVE' => 'ACTIVE',
821 'PS_SORT' => 'SORT',
822 'PS_DESCRIPTION' => 'DESCRIPTION'
823 );
824 }
825
826 private static function getAlias($key)
827 {
828 $prefix = '';
829 $pos = mb_strpos($key, 'PS_');
830 if ($pos > 0)
831 {
832 $prefix = mb_substr($key, 0, $pos);
833 $key = mb_substr($key, $pos);
834 }
835
836 $aliases = self::getAliases();
837
838 if (isset($aliases[$key]))
839 $key = $aliases[$key];
840
841 return $prefix.$key;
842 }
843
844 public static function checkRestriction($restriction, $filter)
845 {
846 if (isset($filter['PERSON_TYPE_ID']) && $restriction['CLASS_NAME'] == '\\'.\Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::class)
847 {
848 if (is_array($filter['PERSON_TYPE_ID']))
849 {
850 foreach ($filter['PERSON_TYPE_ID'] as $personTypeId)
851 {
852 if (in_array($personTypeId, $restriction['PARAMS']['PERSON_TYPE_ID']))
853 return true;
854 }
855 return false;
856 }
857 else
858 {
859 return in_array($filter['PERSON_TYPE_ID'], $restriction['PARAMS']['PERSON_TYPE_ID']);
860 }
861 }
862
863 return true;
864 }
865
866 public static function getParamsByConsumer($consumer, $personTypeId)
867 {
869 $params = array();
870
871 if (is_array($consumers[$consumer]['CODES']) && $consumers[$consumer]['CODES'])
872 {
873 foreach ($consumers[$consumer]['CODES'] as $key => $val)
874 {
875 $map = \Bitrix\Sale\BusinessValue::getMapping($key, $consumer, $personTypeId);
876 if ($map)
877 {
878 if ($map['PROVIDER_KEY'] == 'INPUT')
879 {
880 if ($val['INPUT']['TYPE'] == 'ENUM')
881 $map['PROVIDER_KEY'] = 'SELECT';
882 elseif ($val['INPUT']['TYPE'] == 'Y/N')
883 $map['PROVIDER_KEY'] = 'CHECKBOX';
884 else
885 $map['PROVIDER_KEY'] = $val['INPUT']['TYPE'];
886 }
887
888 $params[$key] = array(
889 "TYPE" => ($map['PROVIDER_KEY'] != 'VALUE') ? $map['PROVIDER_KEY'] : '',
890 "VALUE" => $map["PROVIDER_VALUE"]
891 );
892 }
893 else
894 {
895 $params[$key] = array(
896 'TYPE' => $val['TYPE'] ?? null,
897 'VALUE' => $val['VALUE'] ?? null,
898 );
899 }
900 }
901 }
902
903 return $params;
904 }
905
906 public static function Add($fields)
907 {
908 if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y')
909 {
911 return false;
912
913 if (isset($fields['ACTION_FILE']))
914 {
916 if (isset($map[$fields['ACTION_FILE']]))
917 $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']];
918 }
919
920 $fields['PSA_NAME'] = $fields['NAME'];
921
922 if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"]))
923 $fields["LOGOTIP"]["MODULE_ID"] = "sale";
924 CFile::SaveForDB($fields, "LOGOTIP", "sale/paysystem/logotip");
925
926 if (isset($fields['PAY_SYSTEM_ID']) && $fields['PAY_SYSTEM_ID'] > 0)
927 {
928 $dbRes = PaySystemActionTable::getById($fields['PAY_SYSTEM_ID']);
929 $data = $dbRes->fetch();
930 if ($data['ACTION_FILE'] != '')
932 else
934 }
935 else
936 {
938 }
939
940 if ($result->isSuccess())
941 {
942 if ($fields['PARAMS'])
943 {
944 $params = unserialize($fields['PARAMS'], ['allowed_classes' => false]);
945 if (!isset($params['BX_PAY_SYSTEM_ID']))
946 {
947 $params['BX_PAY_SYSTEM_ID'] = array(
948 'TYPE' => '',
949 'VALUE' => $result->getId()
950 );
951 Sale\PaySystem\Manager::update($result->getId(), array('PARAMS' => serialize($params)));
953 if (!isset($consumers['PAYSYSTEM_'.$result->getId()]))
955 else
956 \Bitrix\Sale\BusinessValue::changeConsumer('PAYSYSTEM_'.$result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE']));
957 }
959 foreach ($params as $item)
960 \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']);
961 }
962 if (isset($fields['PERSON_TYPE_ID']) && $fields['PERSON_TYPE_ID'] > 0)
963 {
964 $fields = array(
965 "SERVICE_ID" => $result->getId(),
967 "SORT" => 100,
968 "PARAMS" => array(
969 'PERSON_TYPE_ID' => array($fields['PERSON_TYPE_ID'])
970 )
971 );
973 }
974 return $result->getId();
975 }
976
977 return false;
978 }
979 else
980 {
981 global $DB;
983
985 return false;
986
987 if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"]))
988 $arFields["LOGOTIP"]["MODULE_ID"] = "sale";
989
990 CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip");
991
992 $arInsert = $DB->PrepareInsert("b_sale_pay_system_action", $arFields);
993
994 $strSql =
995 "INSERT INTO b_sale_pay_system_action(".$arInsert[0].") ".
996 "VALUES(".$arInsert[1].")";
997 $DB->Query($strSql);
998
999 $ID = intval($DB->LastID());
1000
1001 return $ID;
1002 }
1003 }
1004
1005 public static function Update($id, $fields)
1006 {
1007 if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y')
1008 {
1009 $id = (int)$id;
1010 if (isset($fields['ACTION_FILE']))
1011 {
1013 if (isset($map[$fields['ACTION_FILE']]))
1014 $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']];
1015 }
1016
1018 return false;
1019
1020 if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"]))
1021 $fields["LOGOTIP"]["MODULE_ID"] = "sale";
1022 CFile::SaveForDB($fields, "LOGOTIP", "sale/paysystem/logotip");
1023
1024 if (isset($fields['PARAMS']))
1025 {
1026 $params = unserialize($fields['PARAMS'], ['allowed_classes' => false]);
1027 if (!isset($params['BX_PAY_SYSTEM_ID']))
1028 $params['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $id);
1029 $fields['PARAMS'] = serialize($params);
1030 }
1031
1033 if ($result->isSuccess())
1034 {
1035 if (array_key_exists('PARAMS', $fields))
1036 {
1038 foreach ($params as $item)
1039 \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']);
1040 }
1041
1042 if ($fields['PERSON_TYPE_ID'])
1043 {
1044 $params = array(
1045 'filter' => array(
1046 "SERVICE_ID" => $id,
1048 "=CLASS_NAME" => '\\'.\Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::class
1049 )
1050 );
1051
1052 $dbRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList($params);
1053 if ($data = $dbRes->fetch())
1054 $restrictionId = $data['ID'];
1055 else
1056 $restrictionId = 0;
1057
1058 $fields = array(
1059 "SERVICE_ID" => $id,
1061 "SORT" => 100,
1062 "PARAMS" => array('PERSON_TYPE_ID' => array($fields['PERSON_TYPE_ID']))
1063 );
1064
1066 }
1067
1068 return $id;
1069 }
1070
1071 return false;
1072 }
1073 else
1074 {
1075 global $DB;
1076
1078 $ID = intval($id);
1080 return false;
1081
1082 if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"]))
1083 $arFields["LOGOTIP"]["MODULE_ID"] = "sale";
1084
1085 CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip");
1086
1087 $strUpdate = $DB->PrepareUpdate("b_sale_pay_system_action", $arFields);
1088 $strSql = "UPDATE b_sale_pay_system_action SET ".$strUpdate." WHERE ID = ".$ID."";
1089 $DB->Query($strSql);
1090
1091 return $ID;
1092 }
1093 }
1094
1095 public static function prepareParamsForBusVal($id, $fields)
1096 {
1097 if (!array_key_exists('PERSON_TYPE_ID', $fields))
1098 {
1099 $personTypeList = CSalePaySystem::getPaySystemPersonTypeIds($id);
1100 if ($personTypeList)
1101 $fields['PERSON_TYPE_ID'] = array_shift($personTypeList);
1102 }
1103
1104 $itemParams = unserialize($fields['PARAMS'], ['allowed_classes' => false]);
1105
1106 $result = array();
1107
1108 $result[] = array(
1109 'CODE' => 'BX_PAY_SYSTEM_ID',
1110 'CONSUMER' => 'PAYSYSTEM_'.$id,
1111 'PERSON_TYPE_ID' => $fields['PERSON_TYPE_ID'] ?: null,
1112 'MAP' => array(
1113 'PROVIDER_KEY' => 'VALUE',
1114 'PROVIDER_VALUE' => $id
1115 ));
1116
1117 if ($itemParams)
1118 {
1119 foreach ($itemParams as $code => $param)
1120 {
1121 if ($param['TYPE'] == '')
1122 {
1123 $type = 'VALUE';
1124 }
1125 elseif ($param['TYPE'] == 'FILE' || $param['TYPE'] == 'SELECT' || $param['TYPE'] == 'ENUM' || $param['TYPE'] == 'CHECKBOX' || $param['TYPE'] == 'USER_COLUMN_LIST')
1126 {
1127 $type = 'INPUT';
1128 }
1129 else
1130 {
1131 $type = $param['TYPE'];
1132 }
1133
1134 $result[] = array(
1135 'CODE' => $code,
1136 'CONSUMER' => 'PAYSYSTEM_'.$id,
1137 'PERSON_TYPE_ID' => $fields['PERSON_TYPE_ID'] ?: null,
1138 'MAP' => array(
1139 'PROVIDER_KEY' => $type,
1140 'PROVIDER_VALUE' => $param['VALUE']
1141 )
1142 );
1143 }
1144 }
1145
1146 return $result;
1147 }
1148
1149 public static function convertPsBusVal()
1150 {
1151 if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y')
1152 return '';
1153
1154 \Bitrix\Main\Config\Option::set('main', '~sale_paysystem_converted', 'Y');
1155
1156 if (!\Bitrix\Main\Loader::includeModule('sale'))
1157 return '';
1158
1159 global $DB;
1160 if ($DB->TableExists('b_sale_pay_system_map') || $DB->TableExists('B_SALE_PAY_SYSTEM_MAP'))
1161 return '';
1162
1164 $oldActionFiles = self::getOldToNewHandlersMap();
1165 $paySystems = array();
1166 while ($paySystem = $dbRes->fetch())
1167 {
1168 $codesAliases = array();
1169 $params = unserialize($paySystem['PARAMS'], ['allowed_classes' => false]);
1170
1171 if (is_array($params))
1172 {
1173 if (isset($oldActionFiles[$paySystem['ACTION_FILE']]))
1174 $codesAliases = self::getCodesAliases($oldActionFiles[$paySystem['ACTION_FILE']]);
1175
1176 foreach ($params as $key => $value)
1177 {
1178 if (isset($oldActionFiles[$paySystem['ACTION_FILE']]))
1179 {
1180 if ($key == 'IS_TEST' || $key == 'CHANGE_STATUS_PAY' || $key == 'TEST' || $key == 'DEMO' || $key == 'AUTOPAY')
1181 {
1182 $keyValue = ($value['VALUE'] != 'Y' && $value['VALUE'] != 'N') ? 'N' : $value['VALUE'];
1183 $value = array('TYPE' => 'INPUT', 'VALUE' => $keyValue);
1184 }
1185
1186 if ($key == 'TEST_MODE')
1187 $value = array('TYPE' => 'INPUT', 'VALUE' => ($value['VALUE'] == 'TEST' ? 'Y' : 'N'));
1188 }
1189
1190 if ($value['TYPE'] == 'SELECT' || $value['TYPE'] == 'FILE')
1191 $value['TYPE'] = 'INPUT';
1192
1193 if (isset($codesAliases[$key]))
1194 {
1195 $params[$codesAliases[$key]] = $value;
1196 unset($params[$key]);
1197 }
1198 else
1199 {
1200 $params[$key] = $value;
1201 }
1202 }
1203 }
1204
1205 if (isset($oldActionFiles[$paySystem['ACTION_FILE']]) && !IsModuleInstalled('intranet'))
1206 {
1207 if (isset($params['PAYMENT_ID']))
1208 {
1209 $value = ($params['PAYMENT_ID']['VALUE'] == 'ACCOUNT_NUMBER') ? 'ACCOUNT_NUMBER' : 'ID';
1210 $params['PAYMENT_ID'] = array('TYPE' => 'PAYMENT', 'VALUE' => $value);
1211 }
1212
1213 if (isset($params['PAYMENT_CURRENCY']))
1214 $params['PAYMENT_CURRENCY'] = array('TYPE' => 'PAYMENT', 'VALUE' => 'CURRENCY');
1215
1216 if (isset($params['PAYMENT_DATE_INSERT']))
1217 {
1218 if ($params['PAYMENT_DATE_INSERT']['VALUE'] == 'DATE_INSERT_DATE' || $params['PAYMENT_DATE_INSERT']['VALUE'] == 'DATE_BILL_DATE')
1219 $date = 'DATE_BILL_DATE';
1220 else
1221 $date = 'DATE_BILL';
1222
1223 $params['PAYMENT_DATE_INSERT'] = array('TYPE' => 'PAYMENT', 'VALUE' => $date);
1224 }
1225
1226 if (isset($params['PAYMENT_SHOULD_PAY']))
1227 $params['PAYMENT_SHOULD_PAY'] = array('TYPE' => 'PAYMENT', 'VALUE' => 'SUM');
1228
1229 if (isset($params['PAYMENT_VALUE']))
1230 $paySystem['PS_MODE'] = $params['PAYMENT_VALUE']['VALUE'];
1231 }
1232
1233 if (isset($oldActionFiles[$paySystem['ACTION_FILE']]))
1234 $paySystem['ACTION_FILE'] = $oldActionFiles[$paySystem['ACTION_FILE']];
1235
1236 $paySystem['PARAMS'] = $params;
1237
1238 if (!isset($paySystems[$paySystem['PAY_SYSTEM_ID']]))
1239 $paySystems[$paySystem['PAY_SYSTEM_ID']] = array();
1240
1241 if (!isset($paySystems[$paySystem['PAY_SYSTEM_ID']][$paySystem['ACTION_FILE']]))
1242 $paySystems[$paySystem['PAY_SYSTEM_ID']][$paySystem['ACTION_FILE']] = array();
1243
1244 $paySystems[$paySystem['PAY_SYSTEM_ID']][$paySystem['ACTION_FILE']][] = $paySystem;
1245 }
1246
1247 $codes = array();
1248 foreach ($paySystems as $items)
1249 {
1250 foreach ($items as $psItem)
1251 {
1252 foreach ($psItem as $item)
1253 {
1254 $params = $item['PARAMS'];
1255 if ($params)
1256 {
1257 foreach ($params as $code => $value)
1258 {
1259 if ($value['VALUE'] == '')
1260 continue;
1261 if ($value['TYPE'] == '')
1262 $key = 'VALUE|'.$value['VALUE'];
1263 else
1264 $key = $value['TYPE'].'|'.$value['VALUE'];
1265 if (!isset($codes[$code][$key]))
1266 $codes[$code][$key] = 0;
1267 $codes[$code][$key]++;
1268 }
1269 }
1270 }
1271 }
1272 }
1273
1274 $generalBusVal = array();
1275 foreach ($codes as $code => $values)
1276 {
1277 $generalBusVal[$code] = null;
1278 foreach ($values as $i => $cnt)
1279 {
1280 if ($generalBusVal[$code] === null || $values[$generalBusVal[$code]] < $cnt)
1281 $generalBusVal[$code] = $i;
1282 }
1283 }
1284
1285 //set general
1286 foreach ($generalBusVal as $code => $param)
1287 {
1288 list($type, $value) = explode('|', $param);
1289 \Bitrix\Sale\BusinessValue::setMapping($code, null, null, array('PROVIDER_KEY' => $type, 'PROVIDER_VALUE' => $value));
1290 }
1291
1292 $mustDeleted = array();
1293 $duplicateRecords = array();
1294 foreach ($paySystems as $actions)
1295 {
1296 foreach ($actions as $items)
1297 {
1298 $firstItem = current($items);
1299
1300 if (!array_key_exists($firstItem['ID'], $duplicateRecords))
1301 $duplicateRecords[$firstItem['ID']] = array();
1302
1303 if (!array_key_exists('PERSON_TYPE_ID', $duplicateRecords[$firstItem['ID']]))
1304 $duplicateRecords[$firstItem['ID']]['PERSON_TYPE_ID'] = array();
1305
1306 if ($firstItem['PERSON_TYPE_ID'] > 0)
1307 $duplicateRecords[$firstItem['ID']]['PERSON_TYPE_ID'][] = $firstItem['PERSON_TYPE_ID'];
1308
1309 $duplicateRecords[$firstItem['ID']]['EXTERNAL_ID'] = $firstItem['PAY_SYSTEM_ID'];
1310
1311 foreach ($items as $ps)
1312 {
1313 if (in_array($ps['ACTION_FILE'], array('yandex', 'roboxchange')) && $firstItem['PS_MODE'] && $firstItem['PS_MODE'] != $ps['PS_MODE'])
1314 {
1315 if (!array_key_exists($ps['ID'], $duplicateRecords))
1316 $duplicateRecords[$ps['ID']] = array();
1317
1318 if (!array_key_exists('PERSON_TYPE_ID', $duplicateRecords[$firstItem['ID']]))
1319 $duplicateRecords[$ps['ID']]['PERSON_TYPE_ID'] = array();
1320
1321 if ($ps['PERSON_TYPE_ID'] > 0)
1322 $duplicateRecords[$ps['ID']]['PERSON_TYPE_ID'][] = $ps['PERSON_TYPE_ID'];
1323
1324 $duplicateRecords[$ps['ID']]['EXTERNAL_ID'] = $ps['PAY_SYSTEM_ID'];
1325 $duplicateRecords[$ps['ID']]['NEW_PS'] = 'Y';
1326 }
1327 else
1328 {
1329 if ($ps['ID'] == $firstItem['ID'])
1330 continue;
1331
1332 if ($ps['PERSON_TYPE_ID'] > 0)
1333 $duplicateRecords[$firstItem['ID']]['PERSON_TYPE_ID'][] = $ps['PERSON_TYPE_ID'];
1334
1335 if (!isset($mustDeleted[$firstItem['ID']]))
1336 $mustDeleted[$firstItem['ID']] = array();
1337
1338 $mustDeleted[$firstItem['ID']][] = $ps['ID'];
1339 }
1340 }
1341
1342 foreach ($items as $item)
1343 {
1344 $itemParams = array();
1345 if ($item['PARAMS'])
1346 {
1347 $itemParams = $item['PARAMS'];
1348 if ($itemParams)
1349 {
1350 foreach ($itemParams as $code => $param)
1351 {
1352 $type = $param['TYPE'] ?: 'VALUE';
1353 $pT = null;
1354 $pS = null;
1355
1356 if (in_array($item['ACTION_FILE'], array('yandex', 'roboxchange')) && $firstItem['PS_MODE'] && $firstItem['PS_MODE'] != $item['PS_MODE'])
1357 $consumer = 'PAYSYSTEM_'.$item['ID'];
1358 else
1359 $consumer = 'PAYSYSTEM_'.$firstItem['ID'];
1360
1361 $cases = array(
1362 1 => array('PS' => null, 'PT' => null),
1363 2 => array('PS' => $consumer, 'PT' => $item['PERSON_TYPE_ID'])
1364 );
1365
1366 foreach ($cases as $case)
1367 {
1368 if (\Bitrix\Sale\BusinessValue::isSetMapping($code, $case['PS'], $case['PT']))
1369 {
1371 if ($map && $map['PROVIDER_KEY'] == $type && $map['PROVIDER_VALUE'] == $param['VALUE'])
1372 continue(2);
1373 }
1374 else
1375 {
1376 $pT = $case['PT'];
1377 $pS = $case['PS'];
1378 break;
1379 }
1380 }
1381
1382 $value = (is_array($param['VALUE'])) ? key($param['VALUE']) : $param['VALUE'];
1383 \Bitrix\Sale\BusinessValue::setMapping($code, $pS, $pT, array('PROVIDER_KEY' => $type, 'PROVIDER_VALUE' => $value), true);
1384 }
1385 }
1386 }
1387
1388 if (!isset($mustDeleted[$firstItem['ID']][$item['ID']]))
1389 {
1390 $itemParams['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $item['ID']);
1391 $item['PARAMS'] = serialize($itemParams);
1392 $itemId = $item['ID'];
1393 unset($item['ID']);
1394 Sale\PaySystem\Manager::update($itemId, $item);
1395 }
1396 }
1397 }
1398 }
1399
1400 global $DB;
1401 if ($DB->TableExists('b_sale_pay_system_map'))
1402 $DB->Query('DROP TABLE b_sale_pay_system_map');
1403
1404 if ($DB->type == 'MYSQL')
1405 {
1406 $DB->Query('
1407 create table if not exists b_sale_pay_system_map
1408 (
1409 PS_ID_OLD int null,
1410 PS_ID int null,
1411 PT_ID int null,
1412 NEW_PS char(1) not null default \'N\'
1413 )'
1414 );
1415 }
1416
1417 if ($DB->type == 'MSSQL')
1418 {
1419 $DB->Query('
1420 CREATE TABLE B_SALE_PAY_SYSTEM_MAP
1421 (
1422 PS_ID int NULL,
1423 PS_ID_OLD int NULL,
1424 PT_ID int NULL,
1425 NEW_PS char(1) NOT NULL DEFAULT \'N\'
1426 )');
1427 }
1428
1429 if ($DB->type == 'ORACLE')
1430 {
1431 $DB->Query('
1432 CREATE TABLE B_SALE_PAY_SYSTEM_MAP
1433 (
1434 PS_ID NUMBER(18) NULL,
1435 PS_ID_OLD NUMBER(18) NULL,
1436 PT_ID NUMBER(18) NULL,
1437 NEW_PS CHAR(1 CHAR) DEFAULT \'N\' NOT NULL
1438 )'
1439 );
1440 }
1441
1442 foreach ($duplicateRecords as $id => $data)
1443 {
1444 if ($data['PERSON_TYPE_ID'])
1445 {
1446 $params = array(
1447 'filter' => array(
1448 "SERVICE_ID" => $id,
1450 "=CLASS_NAME" => '\\'.\Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::class
1451 )
1452 );
1453
1454 $dbRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList($params);
1455 if (!$dbRes->fetch())
1456 {
1457 $fields = array(
1458 "SERVICE_ID" => $id,
1460 "SORT" => 100,
1461 "PARAMS" => array(
1462 'PERSON_TYPE_ID' => $data['PERSON_TYPE_ID']
1463 )
1464 );
1466 }
1467 }
1468 }
1469
1470 foreach ($duplicateRecords as $id => $data)
1471 {
1472 if ($data['EXTERNAL_ID'] <= 0)
1473 continue;
1474
1475 $newPs = ($data['NEW_PS']) ?: 'N';
1476 foreach ($data['PERSON_TYPE_ID'] as $personTypeId)
1477 {
1478 $DB->Query('INSERT INTO b_sale_pay_system_map(PS_ID, PS_ID_OLD, PT_ID, NEW_PS) VALUES('.$id.', '.$data['EXTERNAL_ID'].', '.$personTypeId.', \''.$newPs.'\' )');
1479 }
1480 }
1481
1482 $DB->Query('
1483 UPDATE b_sale_order SET
1484 PAY_SYSTEM_ID = (
1485 SELECT bspm.PS_ID
1486 FROM b_sale_pay_system_map bspm
1487 WHERE bspm.PT_ID=PERSON_TYPE_ID AND bspm.PS_ID_OLD=PAY_SYSTEM_ID
1488 )'
1489 );
1490
1491 if ($DB->type == 'MYSQL' || $DB->type == 'ORACLE')
1492 {
1493 $DB->Query('
1494 UPDATE b_sale_order_payment bsop SET
1495 PAY_SYSTEM_ID = (
1496 SELECT bspm.PS_ID
1497 FROM b_sale_pay_system_map bspm, b_sale_order bso
1498 WHERE bspm.PS_ID_OLD = bsop.PAY_SYSTEM_ID
1499 AND bso.ID = bsop.ORDER_ID
1500 AND bspm.PT_ID = bso.PERSON_TYPE_ID
1501 )'
1502 );
1503 }
1504 elseif ($DB->type == 'MSSQL')
1505 {
1506 $DB->Query('
1507 UPDATE bsop SET
1508 PAY_SYSTEM_ID = (
1509 SELECT bspm.PS_ID
1510 FROM b_sale_pay_system_map bspm, b_sale_order bso
1511 WHERE bspm.PS_ID_OLD = bsop.PAY_SYSTEM_ID
1512 AND bso.ID = bsop.ORDER_ID
1513 AND bspm.PT_ID = bso.PERSON_TYPE_ID
1514 )
1515 FROM b_sale_order_payment bsop'
1516 );
1517 }
1518
1519// \Bitrix\Main\Config\Option::set('main', '~sale_paysystem_converted', 'Y');
1520
1521 foreach ($mustDeleted as $items)
1522 {
1523 foreach ($items as $id)
1524 Sale\PaySystem\Manager::delete($id);
1525 }
1526
1528 if ($DB->type == 'MYSQL')
1529 {
1530 $DB->Query('
1531 UPDATE b_sale_delivery2paysystem bsd2p
1532 SET bsd2p.PAYSYSTEM_ID=(SELECT bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsd2p.PAYSYSTEM_ID AND bspm.NEW_PS=\'N\' LIMIT 1)'
1533 );
1534 }
1535
1536 if ($DB->type == 'ORACLE')
1537 {
1538 $DB->Query('
1539 UPDATE b_sale_delivery2paysystem bsd2p
1540 SET bsd2p.PAYSYSTEM_ID=(SELECT bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsd2p.PAYSYSTEM_ID AND bspm.NEW_PS=\'N\' AND ROWNUM=1)'
1541 );
1542 }
1543
1544 if ($DB->type == 'MSSQL')
1545 {
1546 $DB->Query('
1547 UPDATE bsd2p
1548 SET bsd2p.PAYSYSTEM_ID=(SELECT TOP(1) bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsd2p.PAYSYSTEM_ID AND bspm.NEW_PS=\'N\')
1549 FROM b_sale_delivery2paysystem bsd2p'
1550 );
1551 }
1552
1553 $DB->Query('
1554 INSERT INTO b_sale_delivery2paysystem(DELIVERY_ID, PAYSYSTEM_ID, LINK_DIRECTION)
1555 SELECT d2p.DELIVERY_ID, pm1.PS_ID, d2p.LINK_DIRECTION
1556 FROM b_sale_delivery2paysystem d2p
1557 INNER JOIN b_sale_pay_system_map pm ON d2p.PAYSYSTEM_ID = pm.PS_ID AND pm.NEW_PS = \'N\'
1558 INNER JOIN b_sale_pay_system_map pm1 ON pm1.PS_ID_OLD = pm.PS_ID_OLD AND pm1.NEW_PS = \'Y\''
1559 );
1560
1562 if ($DB->type == 'MYSQL')
1563 {
1564 $DB->Query('
1565 UPDATE b_sale_order_props_relation bsopr
1566 SET bsopr.ENTITY_ID=(SELECT bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsopr.ENTITY_ID AND bspm.NEW_PS=\'N\' LIMIT 1)
1567 WHERE bsopr.ENTITY_TYPE=\'P\''
1568 );
1569 }
1570
1571 if ($DB->type == 'ORACLE')
1572 {
1573 $DB->Query('
1574 UPDATE b_sale_order_props_relation bsopr
1575 SET bsopr.ENTITY_ID=(SELECT bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsopr.ENTITY_ID AND bspm.NEW_PS=\'N\' AND ROWNUM=1)
1576 WHERE bsopr.ENTITY_TYPE=\'P\''
1577 );
1578 }
1579
1580 if ($DB->type == 'MSSQL')
1581 {
1582 $DB->Query('
1583 UPDATE bsopr
1584 SET bsopr.ENTITY_ID=(SELECT TOP(1) bspm.PS_ID FROM b_sale_pay_system_map bspm WHERE bspm.PS_ID_OLD=bsopr.ENTITY_ID AND bspm.NEW_PS=\'N\')
1585 FROM b_sale_order_props_relation bsopr
1586 WHERE bsopr.ENTITY_TYPE=\'P\''
1587 );
1588 }
1589
1590 $DB->Query('
1591 INSERT INTO b_sale_order_props_relation(ENTITY_ID, ENTITY_TYPE, PROPERTY_ID)
1592 SELECT pm1.PS_ID, opr.ENTITY_TYPE, opr.PROPERTY_ID
1593 FROM b_sale_order_props_relation opr
1594 INNER JOIN b_sale_pay_system_map pm ON pm.PS_ID = opr.ENTITY_ID AND pm.NEW_PS = \'N\'
1595 INNER JOIN b_sale_pay_system_map pm1 ON pm1.PS_ID_OLD = pm.PS_ID_OLD AND pm1.NEW_PS = \'Y\'
1596 WHERE opr.ENTITY_TYPE = \'P\''
1597 );
1598
1599 $DB->Query('
1600 INSERT INTO b_sale_service_rstr(SERVICE_ID, SORT, CLASS_NAME, PARAMS, SERVICE_TYPE)
1601 SELECT bsd2p.PAYSYSTEM_ID, 100, \'Bitrix\\\\Sale\\\\Services\\\\PaySystem\\\\Restrictions\\\\Delivery\', \'a:0:{}\', 1 FROM b_sale_delivery2paysystem bsd2p GROUP BY bsd2p.PAYSYSTEM_ID'
1602 );
1603
1604 $DB->Query('UPDATE b_sale_pay_system_action SET psa_name=name');
1605
1606 if ($DB->type == 'MYSQL' || $DB->type == 'ORACLE')
1607 {
1608 $DB->Query('UPDATE b_sale_pay_system_action psa
1609 SET psa.name=(
1610 SELECT name
1611 FROM b_sale_pay_system ps
1612 WHERE ps.ID=psa.PAY_SYSTEM_ID
1613 )'
1614 );
1615 }
1616 else if ($DB->type == 'MSSQL')
1617 {
1618 $DB->Query('UPDATE psa
1619 SET psa.name=(
1620 SELECT name
1621 FROM b_sale_pay_system ps
1622 WHERE ps.ID=psa.PAY_SYSTEM_ID
1623 )
1624 FROM b_sale_pay_system_action psa'
1625 );
1626 }
1627
1628 return '';
1629 }
1630
1631 public static function getOldToNewHandlersMap()
1632 {
1633 return array(
1634 '/bitrix/modules/sale/handlers/paysystem/yandexcheckout' => 'yandex',
1635 '/bitrix/modules/sale/handlers/paysystem/webmoney' => 'webmoney',
1636 '/bitrix/modules/sale/handlers/paysystem/assist' => 'assist',
1637 '/bitrix/modules/sale/handlers/paysystem/qiwi' => 'qiwi',
1638 '/bitrix/modules/sale/handlers/paysystem/paymaster' => 'paymaster',
1639 '/bitrix/modules/sale/handlers/paysystem/paypal' => 'paypal',
1640 '/bitrix/modules/sale/handlers/paysystem/roboxchange' => 'roboxchange',
1641 '/bitrix/modules/sale/handlers/paysystem/sberbank_new' => 'sberbank',
1642 '/bitrix/modules/sale/handlers/paysystem/bill' => 'bill',
1643 '/bitrix/modules/sale/handlers/paysystem/billen' => 'billen',
1644 '/bitrix/modules/sale/handlers/paysystem/billde' => 'billde',
1645 '/bitrix/modules/sale/handlers/paysystem/billua' => 'billua',
1646 '/bitrix/modules/sale/handlers/paysystem/billla' => 'billla',
1647 '/bitrix/modules/sale/handlers/paysystem/liqpay' => 'liqpay',
1648 '/bitrix/modules/sale/handlers/paysystem/cashondeliverycalc' => 'cashondeliverycalc',
1649 '/bitrix/modules/sale/handlers/paysystem/cashondelivery' => 'cashondelivery',
1650 '/bitrix/modules/sale/handlers/paysystem/cash' => 'cash',
1651 'INNER_BUDGET' => 'inner'
1652 );
1653 }
1654
1655 public static function getCodesAliases($handler)
1656 {
1657 $psAliases = array(
1658 'general' => array(
1659 'ORDER_ID' => 'PAYMENT_ID',
1660 'SHOULD_PAY' => 'PAYMENT_SHOULD_PAY',
1661 'DATE_INSERT' => 'PAYMENT_DATE_INSERT'
1662 ),
1663 'yandex' => array(
1664 'SHOP_ID' => 'YANDEX_SHOP_ID',
1665 'SCID' => 'YANDEX_SCID',
1666 'SHOP_KEY' => 'YANDEX_SHOP_KEY',
1667 'IS_TEST' => 'PS_IS_TEST',
1668 'CHANGE_STATUS_PAY' => 'PS_CHANGE_STATUS_PAY',
1669 'ORDER_DATE' => 'PAYMENT_DATE_INSERT'
1670 ),
1671 'webmoney' => array(
1672 'SHOP_ACCT' => 'WEBMONEY_SHOP_ACCT',
1673 'TEST_MODE' => 'PS_IS_TEST',
1674 'CNST_SECRET_KEY' => 'WEBMONEY_CNST_SECRET_KEY',
1675 'HASH_ALGO' => 'WEBMONEY_HASH_ALGO',
1676 'RESULT_URL' => 'WEBMONEY_RESULT_URL',
1677 'SUCCESS_URL' => 'WEBMONEY_SUCCESS_URL',
1678 'FAIL_URL' => 'WEBMONEY_FAIL_URL',
1679 'CHANGE_STATUS_PAY' => 'PS_CHANGE_STATUS_PAY',
1680 ),
1681 'roboxchange' => array(
1682 'ShopLogin' => 'ROBOXCHANGE_SHOPLOGIN',
1683 'ShopPassword' => 'ROBOXCHANGE_SHOPPASSWORD',
1684 'ShopPassword2' => 'ROBOXCHANGE_SHOPPASSWORD2',
1685 'OrderDescr' => 'ROBOXCHANGE_ORDERDESCR',
1686 'IS_TEST' => 'PS_IS_TEST',
1687 'CHANGE_STATUS_PAY' => 'PS_CHANGE_STATUS_PAY'
1688 ),
1689 'qiwi' => array(
1690 'CHANGE_STATUS_PAY' => 'PS_CHANGE_STATUS_PAY',
1691 'FAIL_URL' => 'QIWI_FAIL_URL',
1692 'SUCCESS_URL' => 'QIWI_SUCCESS_URL',
1693 'AUTHORIZATION' => 'QIWI_AUTHORIZATION',
1694 'BILL_LIFETIME' => 'QIWI_BILL_LIFETIME',
1695 'API_LOGIN' => 'QIWI_API_LOGIN',
1696 'SHOP_ID' => 'QIWI_SHOP_ID',
1697 'API_PASSWORD' => 'QIWI_API_PASSWORD',
1698 'NOTICE_PASSWORD' => 'QIWI_NOTICE_PASSWORD',
1699 'CURRENCY' => 'PAYMENT_CURRENCY'
1700 ),
1701 'paypal' => array(
1702 'USER' => 'PAYPAL_USER',
1703 'PWD' => 'PAYPAL_PWD',
1704 'SIGNATURE' => 'PAYPAL_SIGNATURE',
1705 'NOTIFY_URL' => 'PAYPAL_NOTIFY_URL',
1706 'SSL_ENABLE' => 'PAYPAL_SSL_ENABLE',
1707 'BUTTON_SRC' => 'PAYPAL_BUTTON_SRC',
1708 'ON1' => 'PAYPAL_ON1',
1709 'BUSINESS' => 'PAYPAL_BUSINESS',
1710 'IDENTITY_TOKEN' => 'PAYPAL_IDENTITY_TOKEN',
1711 'RETURN' => 'PAYPAL_RETURN',
1712 'TEST' => 'PS_IS_TEST',
1713 'ON0' => 'PAYPAL_ON0'
1714 ),
1715 'paymaster' => array(
1716 'SHOP_ACCT' => 'PAYMASTER_SHOP_ACCT',
1717 'CNST_SECRET_KEY' => 'PAYMASTER_CNST_SECRET_KEY',
1718 'RESULT_URL' => 'PAYMASTER_RESULT_URL',
1719 'SUCCESS_URL' => 'PAYMASTER_SUCCESS_URL',
1720 'FAIL_URL' => 'PAYMASTER_FAIL_URL',
1721 'TEST_MODE' => 'PS_IS_TEST'
1722 ),
1723 'liqpay' => array(
1724 'MERCHANT_ID' => 'LIQPAY_MERCHANT_ID',
1725 'SIGN' => 'LIQPAY_SIGN',
1726 'PATH_TO_RESULT_URL' => 'LIQPAY_PATH_TO_RESULT_URL',
1727 'PATH_TO_SERVER_URL' => 'LIQPAY_PATH_TO_SERVER_URL',
1728 'PAY_METHOD' => 'LIQPAY_PAY_METHOD',
1729 'CURRENCY' => 'PAYMENT_CURRENCY',
1730 ),
1731 'assist' => array(
1732 'SHOP_IDP' => 'ASSIST_SHOP_IDP',
1733 'SHOP_LOGIN' => 'ASSIST_SHOP_LOGIN',
1734 'SHOP_PASSWORD' => 'ASSIST_SHOP_PASSWORD',
1735 'SHOP_SECRET_WORLD' => 'ASSIST_SHOP_SECRET_WORLD',
1736 'SUCCESS_URL' => 'ASSIST_SUCCESS_URL',
1737 'FAIL_URL' => 'ASSIST_FAIL_URL',
1738 'PAYMENT_CardPayment' => 'ASSIST_PAYMENT_CardPayment',
1739 'PAYMENT_YMPayment' => 'ASSIST_PAYMENT_YMPayment',
1740 'PAYMENT_WebMoneyPayment' => 'ASSIST_PAYMENT_WebMoneyPayment',
1741 'PAYMENT_QIWIPayment' => 'ASSIST_PAYMENT_QIWIPayment',
1742 'DELAY' => 'ASSIST_DELAY',
1743 'DEMO' => 'PS_IS_TEST',
1744 'AUTOPAY' => 'PS_CHANGE_STATUS_PAY',
1745 'CURRENCY' => 'PAYMENT_CURRENCY'
1746 ),
1747 'sberbank' => array(
1748 'CURRENCY' => 'PAYMENT_CURRENCY',
1749 'COMPANY_NAME' => 'SELLER_COMPANY_NAME',
1750 'INN' => 'SELLER_COMPANY_INN',
1751 'KPP' => 'SELLER_COMPANY_KPP',
1752 'SETTLEMENT_ACCOUNT' => 'SELLER_COMPANY_BANK_ACCOUNT',
1753 'BANK_NAME' => 'SELLER_COMPANY_BANK_NAME',
1754 'BANK_BIC' => 'SELLER_COMPANY_BANK_BIC',
1755 'BANK_COR_ACCOUNT' => 'SELLER_COMPANY_BANK_ACCOUNT_CORR',
1756 'PAYER_CONTACT_PERSON' => 'BUYER_PERSON_FIO',
1757 'PAYER_ZIP_CODE' => 'BUYER_PERSON_ZIP',
1758 'PAYER_COUNTRY' => 'BUYER_PERSON_COUNTRY',
1759 'PAYER_REGION' => 'BUYER_PERSON_REGION',
1760 'PAYER_CITY' => 'BUYER_PERSON_CITY',
1761 'PAYER_ADDRESS_FACT' => 'BUYER_PERSON_ADDRESS_FACT'
1762 ),
1763 'bill' => array(
1764 'ORDER_SUBJECT' => 'BILL_ORDER_SUBJECT',
1765 'DATE_PAY_BEFORE' => 'PAYMENT_DATE_PAY_BEFORE',
1766 'SELLER_NAME' => 'SELLER_COMPANY_NAME',
1767 'SELLER_ADDRESS' => 'SELLER_COMPANY_ADDRESS',
1768 'SELLER_PHONE' => 'SELLER_COMPANY_PHONE',
1769 'SELLER_INN' => 'SELLER_COMPANY_INN',
1770 'SELLER_KPP' => 'SELLER_COMPANY_KPP',
1771 'SELLER_RS' => 'SELLER_COMPANY_BANK_ACCOUNT',
1772 'SELLER_BANK' => 'SELLER_COMPANY_BANK_NAME',
1773 'SELLER_BCITY' => 'SELLER_COMPANY_BANK_CITY',
1774 'SELLER_KS' => 'SELLER_COMPANY_BANK_ACCOUNT_CORR',
1775 'SELLER_BIK' => 'SELLER_COMPANY_BANK_BIC',
1776 'SELLER_DIR_POS' => 'SELLER_COMPANY_DIRECTOR_POSITION',
1777 'SELLER_ACC_POS' => 'SELLER_COMPANY_ACCOUNTANT_POSITION',
1778 'SELLER_DIR' => 'SELLER_COMPANY_DIRECTOR_NAME',
1779 'SELLER_ACC' => 'SELLER_COMPANY_ACCOUNTANT_NAME',
1780 'BUYER_NAME' => 'BUYER_PERSON_COMPANY_NAME',
1781 'BUYER_INN' => 'BUYER_PERSON_COMPANY_INN',
1782 'BUYER_ADDRESS' => 'BUYER_PERSON_COMPANY_ADDRESS',
1783 'BUYER_PHONE' => 'BUYER_PERSON_COMPANY_PHONE',
1784 'BUYER_FAX' => 'BUYER_PERSON_COMPANY_FAX',
1785 'BUYER_PAYER_NAME' => 'BUYER_PERSON_COMPANY_NAME_CONTACT',
1786 'COMMENT1' => 'BILL_COMMENT1',
1787 'COMMENT2' => 'BILL_COMMENT2',
1788 'PATH_TO_LOGO' => 'BILL_PATH_TO_LOGO',
1789 'LOGO_DPI' => 'BILL_LOGO_DPI',
1790 'PATH_TO_STAMP' => 'BILL_PATH_TO_STAMP',
1791 'SELLER_DIR_SIGN' => 'SELLER_COMPANY_DIR_SIGN',
1792 'SELLER_ACC_SIGN' => 'SELLER_COMPANY_ACC_SIGN',
1793 'BACKGROUND' => 'BILL_BACKGROUND',
1794 'BACKGROUND_STYLE' => 'BILL_BACKGROUND_STYLE',
1795 'MARGIN_TOP' => 'BILL_MARGIN_TOP',
1796 'MARGIN_RIGHT' => 'BILL_MARGIN_RIGHT',
1797 'MARGIN_BOTTOM' => 'BILL_MARGIN_BOTTOM',
1798 'MARGIN_LEFT' => 'BILL_MARGIN_LEFT'
1799 ),
1800 'billen' => array(
1801 'DATE_PAY_BEFORE' => 'PAYMENT_DATE_PAY_BEFORE',
1802 'SELLER_NAME' => 'SELLER_COMPANY_NAME',
1803 'SELLER_ADDRESS' => 'SELLER_COMPANY_ADDRESS',
1804 'SELLER_PHONE' => 'SELLER_COMPANY_PHONE',
1805 'SELLER_BANK_ACCNO' => 'SELLER_COMPANY_BANK_ACCOUNT',
1806 'SELLER_BANK' => 'SELLER_COMPANY_BANK_NAME',
1807 'SELLER_BANK_ADDR' => 'SELLER_COMPANY_BANK_ADDR',
1808 'SELLER_BANK_PHONE' => 'SELLER_COMPANY_BANK_PHONE',
1809 'SELLER_BANK_ROUTENO' => 'SELLER_COMPANY_BANK_ACCOUNT_CORR',
1810 'SELLER_BANK_SWIFT' => 'SELLER_COMPANY_BANK_SWIFT',
1811 'SELLER_DIR_POS' => 'SELLER_COMPANY_DIRECTOR_POSITION',
1812 'SELLER_ACC_POS' => 'SELLER_COMPANY_ACCOUNTANT_POSITION',
1813 'SELLER_DIR' => 'SELLER_COMPANY_DIRECTOR_NAME',
1814 'SELLER_ACC' => 'SELLER_COMPANY_ACCOUNTANT_NAME',
1815 'BUYER_NAME' => 'BUYER_PERSON_COMPANY_NAME',
1816 'BUYER_ADDRESS' => 'BUYER_PERSON_COMPANY_ADDRESS',
1817 'BUYER_PHONE' => 'BUYER_PERSON_COMPANY_PHONE',
1818 'BUYER_FAX' => 'BUYER_PERSON_COMPANY_FAX',
1819 'BUYER_PAYER_NAME' => 'BUYER_PERSON_COMPANY_NAME_CONTACT',
1820 'COMMENT1' => 'BILLEN_COMMENT1',
1821 'COMMENT2' => 'BILLEN_COMMENT2',
1822 'PATH_TO_LOGO' => 'BILLEN_PATH_TO_LOGO',
1823 'LOGO_DPI' => 'BILLEN_LOGO_DPI',
1824 'PATH_TO_STAMP' => 'BILLEN_PATH_TO_STAMP',
1825 'SELLER_DIR_SIGN' => 'SELLER_COMPANY_DIR_SIGN',
1826 'SELLER_ACC_SIGN' => 'SELLER_COMPANY_ACC_SIGN',
1827 'BACKGROUND' => 'BILLEN_BACKGROUND',
1828 'BACKGROUND_STYLE' => 'BILLEN_BACKGROUND_STYLE',
1829 'MARGIN_TOP' => 'BILLEN_MARGIN_TOP',
1830 'MARGIN_RIGHT' => 'BILLEN_MARGIN_RIGHT',
1831 'MARGIN_BOTTOM' => 'BILLEN_MARGIN_BOTTOM',
1832 'MARGIN_LEFT' => 'BILLEN_MARGIN_LEFT'
1833 ),
1834 'billde' => array(
1835 'DATE_PAY_BEFORE' => 'PAYMENT_DATE_PAY_BEFORE',
1836 'SELLER_NAME' => 'SELLER_COMPANY_NAME',
1837 'SELLER_ADDRESS' => 'SELLER_COMPANY_ADDRESS',
1838 'SELLER_PHONE' => 'SELLER_COMPANY_PHONE',
1839 'SELLER_EMAIL' => 'SELLER_COMPANY_EMAIL',
1840 'SELLER_BANK_ACCNO' => 'SELLER_COMPANY_BANK_ACCOUNT',
1841 'SELLER_BANK' => 'SELLER_COMPANY_BANK_NAME',
1842 'SELLER_BANK_BLZ' => 'SELLER_COMPANY_BANK_BIC',
1843 'SELLER_BANK_IBAN' => 'SELLER_COMPANY_BANK_IBAN',
1844 'SELLER_BANK_SWIFT' => 'SELLER_COMPANY_BANK_SWIFT',
1845 'SELLER_EU_INN' => 'SELLER_COMPANY_EU_INN',
1846 'SELLER_INN' => 'SELLER_COMPANY_INN',
1847 'SELLER_REG' => 'SELLER_COMPANY_REG',
1848 'SELLER_DIR_POS' => 'SELLER_COMPANY_DIRECTOR_POSITION',
1849 'SELLER_ACC_POS' => 'SELLER_COMPANY_ACCOUNTANT_POSITION',
1850 'SELLER_DIR' => 'SELLER_COMPANY_DIRECTOR_NAME',
1851 'SELLER_ACC' => 'SELLER_COMPANY_ACCOUNTANT_NAME',
1852 'BUYER_ID' => 'BUYER_PERSON_COMPANY_ID',
1853 'BUYER_NAME' => 'BUYER_PERSON_COMPANY_NAME',
1854 'BUYER_ADDRESS' => 'BUYER_PERSON_COMPANY_ADDRESS',
1855 'BUYER_PHONE' => 'BUYER_PERSON_COMPANY_PHONE',
1856 'BUYER_FAX' => 'BUYER_PERSON_COMPANY_FAX',
1857 'BUYER_PAYER_NAME' => 'BUYER_PERSON_COMPANY_PAYER_NAME',
1858 'COMMENT1' => 'BILLDE_COMMENT1',
1859 'COMMENT2' => 'BILLDE_COMMENT2',
1860 'PATH_TO_LOGO' => 'BILLDE_PATH_TO_LOGO',
1861 'LOGO_DPI' => 'BILLDE_LOGO_DPI',
1862 'PATH_TO_STAMP' => 'BILLDE_PATH_TO_STAMP',
1863 'SELLER_DIR_SIGN' => 'SELLER_COMPANY_DIR_SIGN',
1864 'SELLER_ACC_SIGN' => 'SELLER_COMPANY_ACC_SIGN',
1865 'BACKGROUND' => 'BILLDE_BACKGROUND',
1866 'BACKGROUND_STYLE' => 'BILLDE_BACKGROUND_STYLE',
1867 'MARGIN_TOP' => 'BILLDE_MARGIN_TOP',
1868 'MARGIN_RIGHT' => 'BILLDE_MARGIN_RIGHT',
1869 'MARGIN_BOTTOM' => 'BILLDE_MARGIN_BOTTOM',
1870 'MARGIN_LEFT' => 'BILLDE_MARGIN_LEFT'
1871 ),
1872 'billua' => array(
1873 'DATE_PAY_BEFORE' => 'PAYMENT_DATE_PAY_BEFORE',
1874 'SELLER_NAME' => 'SELLER_COMPANY_NAME',
1875 'SELLER_RS' => 'SELLER_COMPANY_BANK_ACCOUNT',
1876 'SELLER_BANK' => 'SELLER_COMPANY_BANK_NAME',
1877 'SELLER_MFO' => 'SELLER_COMPANY_MFO',
1878 'SELLER_ADDRESS' => 'SELLER_COMPANY_ADDRESS',
1879 'SELLER_PHONE' => 'SELLER_COMPANY_PHONE',
1880 'SELLER_EDRPOY' => 'SELLER_COMPANY_EDRPOY',
1881 'SELLER_IPN' => 'SELLER_COMPANY_IPN',
1882 'SELLER_PDV' => 'SELLER_COMPANY_PDV',
1883 'SELLER_SYS' => 'SELLER_COMPANY_SYS',
1884 'SELLER_ACC' => 'SELLER_COMPANY_ACCOUNTANT_NAME',
1885 'SELLER_ACC_POS' => 'SELLER_COMPANY_ACCOUNTANT_POSITION',
1886 'SELLER_ACC_SIGN' => 'SELLER_COMPANY_ACC_SIGN',
1887 'BUYER_NAME' => 'BUYER_PERSON_COMPANY_NAME',
1888 'BUYER_ADDRESS' => 'BUYER_PERSON_COMPANY_ADDRESS',
1889 'BUYER_PHONE' => 'BUYER_PERSON_COMPANY_PHONE',
1890 'BUYER_FAX' => 'BUYER_PERSON_COMPANY_FAX',
1891 'BUYER_DOGOVOR' => 'BUYER_PERSON_COMPANY_DOGOVOR',
1892 'COMMENT1' => 'BILLUA_COMMENT1',
1893 'COMMENT2' => 'BILLUA_COMMENT2',
1894 'PATH_TO_STAMP' => 'BILLUA_PATH_TO_STAMP',
1895 'BACKGROUND' => 'BILLUA_BACKGROUND',
1896 'BACKGROUND_STYLE' => 'BILLUA_BACKGROUND_STYLE',
1897 'MARGIN_TOP' => 'BILLUA_MARGIN_TOP',
1898 'MARGIN_RIGHT' => 'BILLUA_MARGIN_RIGHT',
1899 'MARGIN_BOTTOM' => 'BILLUA_MARGIN_BOTTOM',
1900 'MARGIN_LEFT' => 'BILLUA_MARGIN_LEFT'
1901 ),
1902 'billla' => array(
1903 'DATE_PAY_BEFORE' => 'PAYMENT_DATE_PAY_BEFORE',
1904 'SELLER_NAME' => 'SELLER_COMPANY_NAME',
1905 'SELLER_ADDRESS' => 'SELLER_COMPANY_ADDRESS',
1906 'SELLER_PHONE' => 'SELLER_COMPANY_PHONE',
1907 'SELLER_BANK_ACCNO' => 'SELLER_COMPANY_BANK_ACCOUNT',
1908 'SELLER_BANK' => 'SELLER_COMPANY_BANK_NAME',
1909 'SELLER_BANK_ADDR' => 'SELLER_COMPANY_BANK_ADDR',
1910 'SELLER_BANK_PHONE' => 'SELLER_COMPANY_BANK_PHONE',
1911 'SELLER_BANK_ROUTENO' => 'SELLER_COMPANY_BANK_ACCOUNT_CORR',
1912 'SELLER_BANK_SWIFT' => 'SELLER_COMPANY_BANK_SWIFT',
1913 'SELLER_DIR_POS' => 'SELLER_COMPANY_DIRECTOR_POSITION',
1914 'SELLER_ACC_POS' => 'SELLER_COMPANY_ACCOUNTANT_POSITION',
1915 'SELLER_DIR' => 'SELLER_COMPANY_DIRECTOR_NAME',
1916 'SELLER_ACC' => 'SELLER_COMPANY_ACCOUNTANT_NAME',
1917 'BUYER_NAME' => 'BUYER_PERSON_COMPANY_NAME',
1918 'BUYER_ADDRESS' => 'BUYER_PERSON_COMPANY_ADDRESS',
1919 'BUYER_PHONE' => 'BUYER_PERSON_COMPANY_PHONE',
1920 'BUYER_FAX' => 'BUYER_PERSON_COMPANY_FAX',
1921 'BUYER_PAYER_NAME' => 'BUYER_PERSON_COMPANY_NAME_CONTACT',
1922 'COMMENT1' => 'BILLLA_COMMENT1',
1923 'COMMENT2' => 'BILLLA_COMMENT2',
1924 'PATH_TO_LOGO' => 'BILLLA_PATH_TO_LOGO',
1925 'LOGO_DPI' => 'BILLLA_LOGO_DPI',
1926 'PATH_TO_STAMP' => 'BILLLA_PATH_TO_STAMP',
1927 'SELLER_DIR_SIGN' => 'SELLER_COMPANY_DIR_SIGN',
1928 'SELLER_ACC_SIGN' => 'SELLER_COMPANY_ACC_SIGN',
1929 'BACKGROUND' => 'BILLLA_BACKGROUND',
1930 'BACKGROUND_STYLE' => 'BILLLA_BACKGROUND_STYLE',
1931 'MARGIN_TOP' => 'BILLLA_MARGIN_TOP',
1932 'MARGIN_RIGHT' => 'BILLLA_MARGIN_RIGHT',
1933 'MARGIN_BOTTOM' => 'BILLLA_MARGIN_BOTTOM',
1934 'MARGIN_LEFT' => 'BILLLA_MARGIN_LEFT'
1935 )
1936 );
1937
1938 $handlerAliases = $psAliases[mb_strtolower($handler)];
1939 if (is_array($handlerAliases))
1940 return array_merge($psAliases['general'], $handlerAliases);
1941
1942 return $psAliases['general'];
1943 }
1944}
$arParams
Определения access_dialog.php:21
$strPaySysError
Определения pre_payment.php:5
$type
Определения options.php:106
if($_SERVER $defaultValue['REQUEST_METHOD']==="GET" &&!empty($RestoreDefaults) && $bizprocPerms==="W" &&check_bitrix_sessid())
Определения options.php:32
static get($moduleId, $name, $default="", $siteId=false)
Определения option.php:30
static set($moduleId, $name, $value="", $siteId="")
Определения option.php:261
static includeModule($moduleName)
Определения loader.php:67
static getById($id)
Определения datamanager.php:364
static setMapping($codeKey, $consumerKey, $personTypeId, array $mapping, $withCommon=false)
Определения businessvalue.php:206
static getMapping($codeKey, $consumerKey=null, $personTypeId=null, array $options=array())
Определения businessvalue.php:131
static addConsumer($consumerKey, array $consumer)
Определения businessvalue.php:538
static isSetMapping($codeKey, $consumerKey=null, $personTypeId=null)
Определения businessvalue.php:113
static getConsumers()
Определения businessvalue.php:412
static getList(array $params=array())
Определения manager.php:84
static delete($primary)
Определения manager.php:815
static add(array $data)
Определения manager.php:158
static getHandlerDescription($handler, $psMode=null)
Определения manager.php:546
static update($primary, array $data)
Определения manager.php:128
static getInstance($type)
Определения registry.php:183
static save(array $fields, $restrictionId=0)
Определения restriction.php:145
const TYPE_ERROR
Определения admin_notify.php:8
static Add($arFields)
Определения admin_notify.php:22
static GetList($arSort=[], $arFilter=[])
Определения admin_notify.php:207
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
static IncludePrePaySystem($fileName, $bDoPayAction, &$arPaySysResult, &$strPaySysError, &$strPaySysWarning, $BASE_LANG_CURRENCY=False, $ORDER_PRICE=0.0, $TAX_PRICE=0.0, $DISCOUNT_PRICE=0.0, $DELIVERY_PRICE=0.0)
Определения pay_system_action.php:502
static Add($fields)
Определения pay_system_action.php:906
static UnSerializeParams($strParams)
Определения pay_system_action.php:66
static Delete($id)
Определения pay_system_action.php:53
static GetByID($id)
Определения pay_system_action.php:14
static getAliases()
Определения pay_system_action.php:815
static getOldToNewHandlersMap()
Определения pay_system_action.php:1631
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения pay_system_action.php:528
static OnEventLogGetAuditTypes()
Определения pay_system_action.php:175
static Update($id, $fields)
Определения pay_system_action.php:1005
static checkRestriction($restriction, $filter)
Определения pay_system_action.php:844
static CheckFields($ACTION, &$arFields)
Определения pay_system_action.php:25
static writeToEventLog($itemId, $description)
Определения pay_system_action.php:164
static convertPsBusVal()
Определения pay_system_action.php:1149
static alarm($itemId, $description)
Определения pay_system_action.php:158
static getParamsByConsumer($consumer, $personTypeId)
Определения pay_system_action.php:866
static showAlarmMessage()
Определения pay_system_action.php:182
const GET_PARAM_VALUE
Определения pay_system_action.php:12
static prepareParamsForBusVal($id, $fields)
Определения pay_system_action.php:1095
static SerializeParams($arParams)
Определения pay_system_action.php:61
static getCodesAliases($handler)
Определения pay_system_action.php:1655
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
static getPaySystemPersonTypeIds($paySystemId)
Определения pay_system.php:219
static GetByID($ID)
Определения user.php:3820
static Add($arFields)
Определения event_log.php:44
static GetLangCurrency($siteId)
Определения settings.php:52
static GetRealValue($propertyID, $propertyCode, $propertyType, $value, $lang=false)
Определения order_props.php:776
$arFields
Определения dblapprove.php:5
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
global $USER_FIELD_MANAGER
Определения attempt.php:6
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$result
Определения get_property_values.php:14
if($ajaxMode) $ID
Определения get_user.php:27
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description
Определения .description.php:24
$select
Определения iblock_catalog_list.php:194
$filter
Определения iblock_catalog_list.php:54
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$ACTION
Определения csv_new_setup.php:27
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
Определения options.php:195
IsModuleInstalled($module_id)
Определения tools.php:5301
htmlspecialcharsEx($str)
Определения tools.php:2685
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
ConvertTimeStamp($timestamp=false, $type="SHORT", $site=false, $bSearchInSitesOnly=false)
Определения tools.php:733
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
MakeTimeStamp($datetime, $format=false)
Определения tools.php:538
$map
Определения config.php:5
$value
Определения Param.php:39
$GLOBALS['____1690880296']
Определения license.php:1
$payment
Определения payment.php:14
$order
Определения payment.php:8
$message
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$fileName
Определения quickway.php:305
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$items
Определения template.php:224
$val
Определения options.php:1793
$orderID
Определения result.php:9
$arRes
Определения options.php:104
const SITE_ID
Определения sonet_set_content_view.php:12
$k
Определения template_pdf.php:567
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168
$fields
Определения yandex_run.php:501