1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
delivery_ems.php
См. документацию.
1<?
2/*********************************************************************************
3Delivery services for EMS Russian Post Service (http://www.emspost.ru/)
4It uses on-line api. Delivery only from Russia.
5Files:
6- ems/city.php - list of EMS city ids
7- ems/country.php - list of EMS country ids
8*********************************************************************************/
9
11
12IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/sale/delivery/delivery_ems.php');
13
14define('DELIVERY_EMS_CACHE_LIFETIME', 2592000); // cache lifetime - 30 days (60*60*24*30)
15define('DELIVERY_EMS_PRICE_TARIFF', 0.004956); // declared value koeff - 0,42% + VAT. https://www.pochta.ru/support/post-rules/valuable-departure
16define('DELIVERY_EMS_WRITE_LOG', 0); // flag 'write to log'. use CDeliveryEMS::__WriteToLog() for logging.
17
19{
20 public static function Init()
21 {
22 if (\Bitrix\Main\Loader::includeModule('currency') && $arCurrency = CCurrency::GetByID('RUR'))
23 {
24 $base_currency = 'RUR';
25 }
26 else
27 {
28 $base_currency = 'RUB';
29 }
30
31 return array(
32 /* Basic description */
33 "SID" => "ems",
34 "NAME" => GetMessage('SALE_DH_EMS_NAME'),
35 "DESCRIPTION" => GetMessage('SALE_DH_EMS_DESCRIPTION'),
36 "DESCRIPTION_INNER" => GetMessage('SALE_DH_EMS_DESCRIPTION_INNER'),
37 "BASE_CURRENCY" => $base_currency,
38
39 "HANDLER" => __FILE__,
40
41 /* Handler methods */
42 "DBGETSETTINGS" => array("CDeliveryEMS", "GetSettings"),
43 "DBSETSETTINGS" => array("CDeliveryEMS", "SetSettings"),
44 "GETCONFIG" => array("CDeliveryEMS", "GetConfig"),
45
46 "COMPABILITY" => array("CDeliveryEMS", "Compability"),
47 "CALCULATOR" => array("CDeliveryEMS", "Calculate"),
48
49 "DEPRECATED" => "Y",
50
51 /* List of delivery profiles */
52 "PROFILES" => array(
53 "delivery" => array(
54 "TITLE" => GetMessage("SALE_DH_EMS_DELIVERY_TITLE"),
55 "DESCRIPTION" => '', //GetMessage("SALE_DH_EMS_DELIVERY_DESCRIPTION"),
56
57 "RESTRICTIONS_WEIGHT" => array(0, 31500),
58 "RESTRICTIONS_SUM" => array(0),
59 ),
60 )
61 );
62 }
63
64 public static function GetConfig()
65 {
66 $arConfig = array(
67 "CONFIG_GROUPS" => array(
68 "all" => GetMessage('SALE_DH_EMS_CONFIG_TITLE'),
69 ),
70
71 "CONFIG" => array(
72 "category" => array(
73 "TYPE" => "DROPDOWN",
74 "DEFAULT" => 'att',
75 "TITLE" => GetMessage('SALE_DH_EMS_CONFIG_CATEGORY'),
76 "GROUP" => "all",
77 "VALUES" => array(
78 'att' => GetMessage('SALE_DH_EMS_CONFIG_CATEGORY_att'),
79 'doc' => GetMessage('SALE_DH_EMS_CONFIG_CATEGORY_doc'),
80 ),
81 ),
82 ),
83 );
84
85 return $arConfig;
86 }
87
88 public static function GetSettings($strSettings)
89 {
90 return array(
91 "category" => $strSettings == 'doc' ? 'doc' : 'att'
92 );
93 }
94
95 public static function SetSettings($arSettings)
96 {
97 return ($arSettings["category"] == 'doc' ? 'doc' : 'att');
98 }
99
100 public static function JsObjectToPhp($data)
101 {
102 // json_decode recognize only UTF strings
103 $arResult = json_decode($data, true);
104
105 return $arResult;
106 }
107
108 public static function __EMSQuery($method, $arParams = array())
109 {
110 $arQuery = array('method='.$method);
111
112 foreach ($arParams as $key => $value)
113 $arQuery[] = $key.'='.urlencode($value);
114
115 $error_number = 0;
116 $error_text = "";
118 'www.emspost.ru',
119 80,
120 '/api/rest',
121 implode("&", $arQuery),
122 $error_number,
123 $error_text,
124 'GET'
125 );
126
127 if (($pos = mb_strpos($data, "\n")) !== false)
128 {
129 $data = trim(mb_substr($data, 0, $pos));
130 }
131
132 CDeliveryEMS::__Write2Log($error_number.": ".$error_text);
134
136
137 return $arResult;
138 }
139
140 public static function __GetLocation($location)
141 {
143 $arLocation["IS_RUSSIAN"] = CDeliveryEMS::__IsRussian($arLocation) ? "Y" : "N";
144
145 if ($arLocation["IS_RUSSIAN"] == 'Y')
146 {
147 // Cities
148 if(!empty($arLocation['CITY_NAME_ORIG']) || !empty($arLocation['CITY_SHORT_NAME']) || !empty($arLocation['CITY_NAME_LANG']) || !empty($arLocation['CITY_NAME']))
149 {
150 static $arEMSCityList;
151
152 if (!is_array($arEMSCityList))
153 {
154 if (file_exists(__DIR__.'/ems/city.php'))
155 require_once(__DIR__.'/ems/city.php');
156 }
157
158 $arLocation['CITY_NAME_ORIG'] = mb_strtoupper($arLocation['CITY_NAME_ORIG']);
159 $arLocation['CITY_SHORT_NAME'] = mb_strtoupper($arLocation['CITY_SHORT_NAME']);
160 $arLocation['CITY_NAME_LANG'] = mb_strtoupper($arLocation['CITY_NAME_LANG']);
161 $arLocation['CITY_NAME'] = mb_strtoupper($arLocation['CITY_NAME']);
162
163 if (is_array($arEMSCityList))
164 {
165 $arLocation['EMS_ID'] =
166 $arEMSCityList[$arLocation['CITY_NAME_ORIG']] ? $arEMSCityList[$arLocation['CITY_NAME_ORIG']] : (
167 $arEMSCityList[$arLocation['CITY_SHORT_NAME']] ? $arEMSCityList[$arLocation['CITY_SHORT_NAME']] : (
168 $arEMSCityList[$arLocation['CITY_NAME_LANG']] ? $arEMSCityList[$arLocation['CITY_NAME_LANG']] : (
169 $arEMSCityList[$arLocation['CITY_NAME']] ? $arEMSCityList[$arLocation['CITY_NAME']] : (
170 $arEMSCityList[mb_strtoupper($arLocation['CITY_NAME'])] ? $arEMSCityList[mb_strtoupper($arLocation['CITY_NAME'])] : ''
171 )
172 )
173 )
174 );
175
176 $arLocation['EMS_TYPE'] = 'city';
177 }
178 else
179 {
180 $arLocation['EMS_CITIES_NOT_LOADED'] = true;
181 }
182 }
183
184
185 if(empty($arLocation['EMS_ID']) && (!empty($arLocation['REGION_NAME_ORIG']) || !empty($arLocation['REGION_SHORT_NAME']) || !empty($arLocation['REGION_NAME_LANG']) || !empty($arLocation['REGION_NAME'])))
186 {
187 // Regions
188 static $arEMSRegionList;
189
190 if (!is_array($arEMSRegionList))
191 {
192 if (file_exists(__DIR__.'/ems/region.php'))
193 require_once(__DIR__.'/ems/region.php');
194 }
195
196 if($arLocation['REGION_NAME_ORIG'] == 'Саха /Якутия/ Респ' || $arLocation['REGION_NAME_ORIG'] == 'Республика Саха (Якутия)')
197 $arLocation['REGION_NAME_ORIG'] = 'САХА (ЯКУТИЯ) РЕСПУБЛИКА';
198 elseif($arLocation['REGION_NAME_ORIG'] == 'Еврейская Аобл')
199 $arLocation['REGION_NAME_ORIG'] = 'ЕВРЕЙСКАЯ АВТОНОМНАЯ ОБЛАСТЬ';
200 elseif($arLocation['REGION_NAME_ORIG'] == 'Ненецкий АО')
201 $arLocation['REGION_NAME_ORIG'] = 'НЕНЕЦКИЙ АВТОНОМНЫЙ ОКРУГ';
202 elseif($arLocation['REGION_NAME_ORIG'] == 'Северная Осетия - Алания Респ')
203 $arLocation['REGION_NAME_ORIG'] = 'СЕВЕРНАЯ ОСЕТИЯ-АЛАНИЯ РЕСПУБЛИКА';
204 elseif($arLocation['REGION_NAME_ORIG'] == 'Ханты-Мансийский Автономный округ - Югра АО' || $arLocation['REGION_NAME_ORIG'] == 'Ханты-Мансийский автономный округ')
205 $arLocation['REGION_NAME_ORIG'] = 'ХАНТЫ-МАНСИЙСКИЙ-ЮГРА АВТОНОМНЫЙ ОКРУГ';
206 elseif($arLocation['REGION_NAME_ORIG'] == 'Чукотский АО')
207 $arLocation['REGION_NAME_ORIG'] = 'ЧУКОТСКИЙ АВТОНОМНЫЙ ОКРУГ';
208 elseif($arLocation['REGION_NAME_ORIG'] == 'Ямало-Ненецкий АО')
209 $arLocation['REGION_NAME_ORIG'] = 'ЯМАЛО-НЕНЕЦКИЙ АВТОНОМНЫЙ ОКРУГ';
210 elseif($arLocation['REGION_NAME_ORIG'] == 'Крым')
211 $arLocation['REGION_NAME_ORIG'] = 'КРЫМ РЕСПУБЛИКА';
212
213 $arLocation['REGION_NAME_ORIG'] = preg_replace('/\sОБЛ$/iu', ' ОБЛАСТЬ', mb_strtoupper($arLocation['REGION_NAME_ORIG']));
214 $arLocation['REGION_NAME_ORIG'] = preg_replace('/\sРЕСП$/u', ' РЕСПУБЛИКА', mb_strtoupper($arLocation['REGION_NAME_ORIG']));
215 $arLocation['REGION_NAME_ORIG'] = preg_replace('/^(РЕСПУБЛИКА)\s*(.*)$/u', '$2 $1', mb_strtoupper($arLocation['REGION_NAME_ORIG']));
216
217 $arLocation['REGION_NAME_ORIG'] = mb_strtoupper($arLocation['REGION_NAME_ORIG']);
218 $arLocation['REGION_SHORT_NAME'] = mb_strtoupper($arLocation['REGION_SHORT_NAME']);
219 $arLocation['REGION_NAME_LANG'] = mb_strtoupper($arLocation['REGION_NAME_LANG']);
220 $arLocation['REGION_NAME'] = mb_strtoupper($arLocation['REGION_NAME']);
221
222 if (is_array($arEMSRegionList))
223 {
224 $arLocation['EMS_ID'] =
225 $arEMSRegionList[$arLocation['REGION_NAME_ORIG']] ? $arEMSRegionList[$arLocation['REGION_NAME_ORIG']] : (
226 $arEMSRegionList[$arLocation['REGION_SHORT_NAME']] ? $arEMSRegionList[$arLocation['REGION_SHORT_NAME']] : (
227 $arEMSRegionList[$arLocation['REGION_NAME_LANG']] ? $arEMSRegionList[$arLocation['REGION_NAME_LANG']] : (
228 $arEMSRegionList[$arLocation['REGION_NAME']] ? $arEMSRegionList[$arLocation['REGION_NAME']] : (
229 $arEMSRegionList[mb_strtoupper($arLocation['REGION_NAME'])] ? $arEMSRegionList[mb_strtoupper($arLocation['REGION_NAME'])] : ''
230 )
231 )
232 )
233 );
234
235 $arLocation['EMS_TYPE'] = 'region';
236 }
237 else
238 {
239 $arLocation['EMS_REGIONS_NOT_LOADED'] = true;
240 }
241 }
242 }
243 else
244 {
245 static $arEMSCountryList;
246
247 if (!is_array($arEMSCountryList))
248 {
249 if (file_exists(__DIR__.'/ems/country.php'))
250 require_once(__DIR__.'/ems/country.php');
251 }
252
253 if (is_array($arEMSCountryList))
254 {
255 $arLocation['EMS_ID'] =
256 $arEMSCountryList[$arLocation['COUNTRY_NAME_ORIG']] ? $arEMSCountryList[$arLocation['COUNTRY_NAME_ORIG']] : (
257 $arEMSCountryList[$arLocation['COUNTRY_SHORT_NAME']] ? $arEMSCountryList[$arLocation['COUNTRY_SHORT_NAME']] : (
258 $arEMSCountryList[$arLocation['COUNTRY_NAME_LANG']] ? $arEMSCountryList[$arLocation['COUNTRY_NAME_LANG']] : (
259 $arEMSCountryList[$arLocation['COUNTRY_NAME']] ? $arEMSCountryList[$arLocation['COUNTRY_NAME']] : (
260 $arEMSCountryList[mb_strtoupper($arLocation['COUNTRY_NAME'])] ? $arEMSCountryList[mb_strtoupper($arLocation['COUNTRY_NAME'])] : ''
261 )
262 )
263 )
264 );
265 }
266 else
267 {
268 $arLocation['EMS_COUNTRIES_NOT_LOADED'] = true;
269 }
270 }
271
272 return $arLocation;
273 }
274
275 public static function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
276 {
277 //echo '<pre style="text-align: left;">'; print_r($arOrder); print_r($arConfig); echo '</pre>';
278
279 if ($STEP >= 4)
280 return array(
281 "RESULT" => "ERROR",
282 "TEXT" => GetMessage('SALE_DH_EMS_ERROR_CONNECT'),
283 );
284
285 if ($arOrder["WEIGHT"] <= 0) $arOrder["WEIGHT"] = 1;
286
287 $arLocationTo = CDeliveryEMS::__GetLocation($arOrder["LOCATION_TO"]);
288
289 if ($arLocationTo['IS_RUSSIAN'] == 'Y')
290 $arLocationFrom = CDeliveryEMS::__GetLocation($arOrder["LOCATION_FROM"]);
291
292 if (isset($arLocationTo['EMS_CITIES_NOT_LOADED']))
293 {
294 // get cities and proceed to next step
295
296 $data = CDeliveryEMS::__EMSQuery('ems.get.locations', array('type' => 'cities', 'plain' => 'true'));
297
298 if (!is_array($data) || $data['rsp']['stat'] != 'ok' || !is_array($data['rsp']['locations']))
299 {
300 return array(
301 "RESULT" => "ERROR",
302 "TEXT" => GetMessage('SALE_DH_EMS_ERROR_CONNECT'),
303 );
304 }
305
306 $arCitiesList = array();
307 foreach ($data['rsp']['locations'] as $arLocation)
308 {
309 $arCitiesList[$arLocation['name']] = $arLocation['value'];
310 }
311
312 CheckDirPath(__DIR__."/ems/");
313 if ($fp = fopen(__DIR__."/ems/city.php", "w"))
314 {
315 fwrite($fp, '<'."?\r\n");
316 fwrite($fp, '$'."arEMSCityList = array();\r\n");
317 foreach ($arCitiesList as $key => $value)
318 {
319 fwrite($fp, '$'."arEMSCityList['".addslashes($key)."'] = '".htmlspecialcharsbx(trim($value))."';\r\n");
320 }
321 fwrite($fp, '?'.'>');
322 fclose($fp);
323 }
324
325 return array(
326 "RESULT" => "NEXT_STEP",
327 "TEXT" => GetMessage('SALE_DH_EMS_CORRECT_CITIES'),
328 );
329 }
330
331 if (isset($arLocationTo['EMS_REGIONS_NOT_LOADED']))
332 {
333 // get cities and proceed to next step
334
335 $data = CDeliveryEMS::__EMSQuery('ems.get.locations', array('type' => 'regions', 'plain' => 'true'));
336
337 if (!is_array($data) || $data['rsp']['stat'] != 'ok' || !is_array($data['rsp']['locations']))
338 {
339 return array(
340 "RESULT" => "ERROR",
341 "TEXT" => GetMessage('SALE_DH_EMS_ERROR_CONNECT'),
342 );
343 }
344
346 foreach ($data['rsp']['locations'] as $arLocation)
347 {
348 $arEMSRegionList[$arLocation['name']] = $arLocation['value'];
349 }
350
351 $path = __DIR__;
352 CheckDirPath($path."/ems/");
353 if ($fp = fopen($path."/ems/region.php", "w"))
354 {
355 fwrite($fp, '<'."?\r\n");
356 fwrite($fp, '$'."arEMSRegionList = array();\r\n");
357 foreach ($arEMSRegionList as $key => $value)
358 {
359 fwrite($fp, '$'."arEMSRegionList['".addslashes($key)."'] = '".htmlspecialcharsbx(trim($value))."';\r\n");
360 }
361 fwrite($fp, '?'.'>');
362 fclose($fp);
363 }
364
365 return array(
366 "RESULT" => "NEXT_STEP",
367 "TEXT" => GetMessage('SALE_DH_EMS_CORRECT_REGIONS'),
368 );
369 }
370
371 if (isset($arLocationTo['EMS_COUNTRIES_NOT_LOADED']))
372 {
373 // get cities and proceed to next step
374
375 $data = CDeliveryEMS::__EMSQuery('ems.get.locations', array('type' => 'countries', 'plain' => 'true'));
376
377 if (!is_array($data) || $data['rsp']['stat'] != 'ok' || !is_array($data['rsp']['locations']))
378 {
379 return array(
380 "RESULT" => "ERROR",
381 "TEXT" => GetMessage('SALE_DH_EMS_ERROR_CONNECT'),
382 );
383 }
384
385 $arCountriesList = array();
386 foreach ($data['rsp']['locations'] as $arLocation)
387 {
388 $arCountriesList[$arLocation['name']] = $arLocation['value'];
389 }
390
391 CheckDirPath(__DIR__."/ems/");
392 if ($fp = fopen(__DIR__."/ems/country.php", "w"))
393 {
394 fwrite($fp, '<'."?\r\n");
395 fwrite($fp, '$'."arEMSCountryList = array();\r\n");
396 foreach ($arCountriesList as $key => $value)
397 {
398 fwrite($fp, '$'."arEMSCountryList['".addslashes($key)."'] = '".htmlspecialcharsbx(trim($value))."';\r\n");
399 }
400 fwrite($fp, '?'.'>');
401 fclose($fp);
402 }
403
404 return array(
405 "RESULT" => "NEXT_STEP",
406 "TEXT" => GetMessage('SALE_DH_EMS_CORRECT_COUNTRIES'),
407 );
408 }
409
410 // echo '<pre style="text-align: left">';
411 // print_r($arLocationFrom);
412 // print_r($arLocationTo);
413 // echo '</pre>';
414
415 if (!$arLocationTo['EMS_ID'])
416 {
417 if ($arLocationTo['IS_RUSSIAN'] == 'Y')
418 $text = GetMessage('SALE_DH_EMS_ERROR_NO_LOCATION_TO');
419 else
420 $text = str_replace('#COUNTRY#', $arLocationTo['COUNTRY_NAME_ORIG'], GetMessage('SALE_DH_EMS_ERROR_NO_COUNTRY_TO'));
421
422 return array(
423 "RESULT" => "ERROR",
424 "TEXT" => $text,
425 );
426 }
427
428 if ($arLocationTo['IS_RUSSIAN'] == 'Y' && !$arLocationFrom['EMS_ID'])
429 {
430 $text = str_replace('#CITY#', $arLocationFrom['CITY_NAME_ORIG'], GetMessage('SALE_DH_EMS_ERROR_NO_CITY_FROM'));
431
432 return array(
433 "RESULT" => "ERROR",
434 "TEXT" => $text,
435 );
436 }
437
438
439 $cache_id = "sale|8.0.3|ems|".$profile."|".$arConfig["category"]["VALUE"]."|".$arOrder["LOCATION_FROM"]."|".$arOrder["LOCATION_TO"];
440
441 // 0-0.1,0.1-0.5,0.5-1,1-1.5,1.5-2,2-3....30-31,31-31.5
442
443 if ($arOrder['WEIGHT'] < 100)
444 $cache_id .= '|weight_0';
445 elseif ($arOrder['WEIGHT'] < 2000)
446 $cache_id .= '|weight_half_'.(ceil($arOrder['WEIGHT']/1000) * 2);
447 elseif ($arOrder['WEIGHT'] < 31000)
448 $cache_id .= '|weight_'.(ceil($arOrder['WEIGHT']/1000));
449 else
450 $cache_id .= '|weight_max';
451
452 $obCache = new CPHPCache();
453 /*if ($obCache->InitCache(DELIVERY_EMS_CACHE_LIFETIME, $cache_id, "/"))
454 {
455 $vars = $obCache->GetVars();
456 $result = $vars["RESULT"];
457 $transit = $vars["TRANSIT"];
458
459 if ($arLocationTo['IS_RUSSIAN'] == 'Y')
460 $result += $arOrder["PRICE"] * DELIVERY_EMS_PRICE_TARIFF;
461
462 return array(
463 "RESULT" => "OK",
464 "VALUE" => $result,
465 'TRANSIT' => $transit,
466 );
467 }*/
468
469 $arParams = array();
470
471 if ($arLocationTo['IS_RUSSIAN'] != 'Y')
472 $arParams['type'] = $arConfig["category"]["VALUE"];
473 else
474 $arParams['from'] = $arLocationFrom['EMS_ID'];
475
476 $arParams['to'] = $arLocationTo['EMS_ID'];
477 $arParams['weight'] = $arOrder['WEIGHT'] / 1000;
478 $arParams['plain'] = 'true';
479 $data = CDeliveryEMS::__EMSQuery('ems.calculate', $arParams);
480
481 if (is_array($data) && $data['rsp']['stat'] == 'ok')
482 {
483 $obCache->StartDataCache();
484
485 $result = doubleval($data['rsp']['price']);
486 $transit = '';
487 if ($data['rsp']['term'])
488 $transit = $data['rsp']['term']['min'].'-'.$data['rsp']['term']['max'];
489
490 $obCache->EndDataCache(
491 array(
492 "RESULT" => $result,
493 "TRANSIT" => $transit." ".GetMessage("SALE_DH_EMS_DAYS"),
494 )
495 );
496
497 if ($arLocationTo['IS_RUSSIAN'] == 'Y')
498 $result += $arOrder["PRICE"] * DELIVERY_EMS_PRICE_TARIFF;
499
500 return array(
501 "RESULT" => "OK",
502 "VALUE" => $result,
503 'TRANSIT' => $data['rsp']['term']['min'].'-'.$data['rsp']['term']['max']." ".GetMessage("SALE_DH_EMS_DAYS")
504 );
505 }
506
507 return array(
508 "RESULT" => "ERROR",
509 "TEXT" => GetMessage('SALE_DH_EMS_ERROR_RESPONSE').(is_array($data) ? ' ('.$data['rsp']['err']['msg'].')' : ''),
510 );
511 }
512
513 public static function Compability($arOrder, $arConfig)
514 {
515 //It will work never.
516 return array();
517
518 $arLocationFrom = CSaleHelper::getLocationByIdHitCached($arOrder["LOCATION_FROM"]);
519 $arLocationTo = CDeliveryEMS::__GetLocation($arOrder["LOCATION_TO"]);
520
521 if ($arConfig['category']['VALUE'] == 'doc' && $arOrder['WEIGHT'] > 2000)
522 return array();
523 elseif (CDeliveryEMS::__IsRussian($arLocationFrom) && $arOrder['WEIGHT'] <= 31500 && $arLocationTo['EMS_ID'])
524 return array('delivery');
525 else
526 return array();
527 }
528
529 public static function __IsRussian($arLocation)
530 {
531 return
532 (mb_strtoupper($arLocation["COUNTRY_NAME_ORIG"]) == "РОССИЯ"
533 || mb_strtoupper($arLocation["COUNTRY_SHORT_NAME"]) == "РОССИЯ"
534 || mb_strtoupper($arLocation["COUNTRY_NAME_LANG"]) == "РОССИЯ"
535 || mb_strtoupper($arLocation["COUNTRY_NAME_ORIG"]) == "RUSSIA"
536 || mb_strtoupper($arLocation["COUNTRY_SHORT_NAME"]) == "RUSSIA"
537 || mb_strtoupper($arLocation["COUNTRY_NAME_LANG"]) == "RUSSIA"
538 || mb_strtoupper($arLocation["COUNTRY_NAME_ORIG"]) == "РОССИЙСКАЯ ФЕДЕРАЦИЯ"
539 || mb_strtoupper($arLocation["COUNTRY_SHORT_NAME"]) == "РОССИЙСКАЯ ФЕДЕРАЦИЯ"
540 || mb_strtoupper($arLocation["COUNTRY_NAME_LANG"]) == "РОССИЙСКАЯ ФЕДЕРАЦИЯ"
541 || mb_strtoupper($arLocation["COUNTRY_NAME_ORIG"]) == "RUSSIAN FEDERATION"
542 || mb_strtoupper($arLocation["COUNTRY_SHORT_NAME"]) == "RUSSIAN FEDERATION"
543 || mb_strtoupper($arLocation["COUNTRY_NAME_LANG"]) == "RUSSIAN FEDERATION"
544 || ($arLocation["COUNTRY_NAME_LANG"] === null && $arLocation["COUNTRY_NAME_ORIG"] === null)
545 );
546 }
547
548 public static function __Write2Log($data)
549 {
550 if (defined('DELIVERY_EMS_WRITE_LOG') && DELIVERY_EMS_WRITE_LOG === 1)
551 {
552 $fp = fopen(__DIR__."/ems.log", "a");
553 fwrite($fp, "\r\n==========================================\r\n");
554 fwrite($fp, $data);
555 fclose($fp);
556 }
557 }
558}
559
560AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array('CDeliveryEMS', 'Init'));
561?>
$arParams
Определения access_dialog.php:21
$path
Определения access_edit.php:21
$arResult
Определения generate_coupon.php:16
static GetByID($currency)
Определения currency.php:453
Определения delivery_ems.php:19
static __GetLocation($location)
Определения delivery_ems.php:140
static __Write2Log($data)
Определения delivery_ems.php:548
static Compability($arOrder, $arConfig)
Определения delivery_ems.php:513
static Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP=false)
Определения delivery_ems.php:275
static JsObjectToPhp($data)
Определения delivery_ems.php:100
static __EMSQuery($method, $arParams=array())
Определения delivery_ems.php:108
static __IsRussian($arLocation)
Определения delivery_ems.php:529
static SetSettings($arSettings)
Определения delivery_ems.php:95
static GetConfig()
Определения delivery_ems.php:64
static GetSettings($strSettings)
Определения delivery_ems.php:88
static Init()
Определения delivery_ems.php:20
static IncludeModule($module_name)
Определения module.php:151
static getLocationByIdHitCached($id)
Определения helper.php:462
$base_currency
Определения commerceml_g_run_cur.php:2
$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
$result
Определения get_property_values.php:14
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
$STEP
Определения csv_new_setup.php:23
CheckDirPath($path)
Определения tools.php:2707
QueryGetData($SITE, $PORT, $PATH, $QUERY_STR, &$errno, &$errstr, $sMethod="GET", $sProto="", $sContentType='N')
Определения tools.php:4287
AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT=100, $FULL_PATH=false)
Определения tools.php:5165
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$text
Определения template_pdf.php:79
$arEMSRegionList
Определения region.php:2
const DELIVERY_EMS_WRITE_LOG
Определения delivery_ems.php:16
const DELIVERY_EMS_PRICE_TARIFF
Определения delivery_ems.php:15
$arLocation['REGION_NAME']
Определения options.php:2800
$location
Определения options.php:2729
$arEMSCityList
Определения city.php:2
$arEMSCountryList
Определения country.php:2
$method
Определения index.php:27