14define(
'DELIVERY_CPCR_WRITE_LOG', 0);
15define(
'DELIVERY_CPCR_CACHE_LIFETIME', 2592000);
17define(
'DELIVERY_CPCR_CATEGORY_DEFAULT', 8);
19define(
'DELIVERY_CPCR_PRICE_TARIFF', 0.0025);
21define(
'DELIVERY_CPCR_COUNTRY_DEFAULT',
'209|0');
22define(
'DELIVERY_CPCR_CITY_DEFAULT',
'992|0');
25define(
'DELIVERY_CPCR_SERVER',
'www.spsr.ru');
27define(
'DELIVERY_CPCR_SERVER_PORT', 80);
29define(
'DELIVERY_CPCR_SERVER_PAGE',
'/cgi-bin/post09.pl?TARIFFCOMPUTE_2');
32define(
'DELIVERY_CPCR_SERVER_METHOD',
'GET');
35define(
'DELIVERY_CPCR_SERVER_POST_FROM_REGION',
'FromRegion');
38define(
'DELIVERY_CPCR_SERVER_POST_FROM_COUNTRY',
'FromCountry');
41define(
'DELIVERY_CPCR_SERVER_POST_FROM_CITY_NAME',
'FromCity');
44define(
'DELIVERY_CPCR_SERVER_POST_FROM_CITY',
'FromCity');
46define(
'DELIVERY_CPCR_SERVER_POST_WEIGHT',
'Weight');
47define(
'DELIVERY_CPCR_SERVER_POST_CATEGORY',
'Nature');
48define(
'DELIVERY_CPCR_SERVER_POST_PRICE',
'Amount');
52define(
'DELIVERY_CPCR_SERVER_POST_TO_COUNTRY',
'Country');
55define(
'DELIVERY_CPCR_SERVER_POST_TO_REGION',
'ToRegion');
58define(
'DELIVERY_CPCR_SERVER_POST_TO_CITY_NAME',
'to_Cities_name');
61define(
'DELIVERY_CPCR_SERVER_POST_TO_CITY',
'ToCity');
64define(
'DELIVERY_CPCR_SERVER_POST_ADDITIONAL',
'Amount=0&AmountCheck=1&SMS=0&InHands=0&BeforeSignal=0&DuesOrder=0&PlatType=0&GabarythSum=60&GabarythB=0');
66define(
'DELIVERY_CPCR_VALUE_CHECK_STRING',
'"Total"');
74 public static function Init()
86 "DESCRIPTION" =>
GetMessage(
'SALE_DH_CPCR_DESCRIPTION'),
87 "DESCRIPTION_INNER" =>
GetMessage(
'SALE_DH_CPCR_DESCRIPTION_INNER'),
90 "HANDLER" => __FILE__,
92 "COMPABILITY" =>
array(
"CDeliveryCPCR",
"Compability"),
93 "CALCULATOR" =>
array(
"CDeliveryCPCR",
"Calculate"),
95 'GET_ADMIN_MESSAGE' =>
array(
'CDeliveryCPCR',
'getAdminMessage'),
100 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE_TITLE"),
101 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE_DESCRIPTION"),
103 "RESTRICTIONS_WEIGHT" =>
array(0, 31500),
104 "RESTRICTIONS_SUM" =>
array(0, 500000),
107 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE13_TITLE"),
108 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE_DESCRIPTION"),
110 "RESTRICTIONS_WEIGHT" =>
array(0, 31500),
111 "RESTRICTIONS_SUM" =>
array(0, 500000),
114 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE18_TITLE"),
115 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_SIMPLE_DESCRIPTION"),
117 "RESTRICTIONS_WEIGHT" =>
array(0, 31500),
118 "RESTRICTIONS_SUM" =>
array(0, 500000),
121 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_ECONOM_TITLE"),
122 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_ECONOM_DESCRIPTION"),
124 "RESTRICTIONS_WEIGHT" =>
array(0, 68000),
125 "RESTRICTIONS_SUM" =>
array(0, 500000),
129 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_BIZON_TITLE"),
130 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_BIZON_DESCRIPTION"),
132 "RESTRICTIONS_WEIGHT" =>
array(0, 68000),
133 "RESTRICTIONS_SUM" =>
array(0, 500000),
136 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_COLIBRI_TITLE"),
137 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_COLIBRI_DESCRIPTION"),
139 "RESTRICTIONS_WEIGHT" =>
array(0, 68000),
140 "RESTRICTIONS_SUM" =>
array(0, 500000),
143 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_PELICAN_TITLE"),
144 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_PELICAN_DESCRIPTION"),
146 "RESTRICTIONS_WEIGHT" =>
array(0, 68000),
147 "RESTRICTIONS_SUM" =>
array(0, 500000),
150 "TITLE" =>
GetMessage(
"SALE_DH_CPCR_FRAXT_TITLE"),
151 "DESCRIPTION" =>
GetMessage(
"SALE_DH_CPCR_FRAXT_DESCRIPTION"),
153 "RESTRICTIONS_WEIGHT" =>
array(0, 68000),
154 "RESTRICTIONS_SUM" =>
array(0, 500000),
165 "CONFIG_GROUPS" =>
array(
166 "all" =>
GetMessage(
'SALE_DH_CPCR_CONFIG_TITLE'),
171 "TYPE" =>
"DROPDOWN",
173 "TITLE" =>
GetMessage(
'SALE_DH_CPCR_CONFIG_CATEGORY'),
180 for (
$i = 1;
$i < 9;
$i++)
182 $arConfig[
"CONFIG"][
"category"][
"VALUES"][
$i] =
GetMessage(
'SALE_DH_CPCR_CONFIG_CATEGORY_'.
$i);
192 "category" => intval($strSettings)
199 $category = intval($arSettings[
"category"]);
201 else return $category;
215 require (
"cpcr/locations.php");
223 $country_title ==
$arLocation[
"COUNTRY_SHORT_NAME"]
230 $arReturn[
"COUNTRY"] = $country_id;
239 require (
"cpcr/cities.php");
260 $arReturn[
"CITY_ID"] = $city_id;
265 $arReturn[
"ORIGINAL"] =
array(
279 "TEXT" =>
GetMessage(
'SALE_DH_CPCR_ERROR_CONNECT'),
283 if ($arOrder[
"WEIGHT"] <= 0) $arOrder[
"WEIGHT"] = 1;
289 $cache_id =
"sale3|9.5.0|cpcr|".
290 $arConfig[
"category"][
'VALUE'].
"|".
291 $arLocationFrom[
"ORIGINAL"][
"COUNTRY_ID"].
"|".
292 $arLocationFrom[
"ORIGINAL"][
"CITY_ID"].
"|".
293 $arLocationTo[
"ORIGINAL"][
"COUNTRY_ID"].
"|".
294 $arLocationTo[
"ORIGINAL"][
"CITY_ID"];
296 if ($arOrder[
"WEIGHT"] <= 0.5) $cache_id .=
"|0";
297 elseif ($arOrder[
"WEIGHT"] <= 1) $cache_id .=
"|1";
298 else $cache_id .=
"|".ceil($arOrder[
"WEIGHT"]);
300 $obCache =
new CPHPCache();
305 $vars = $obCache->GetVars();
315 if (
is_set($arLocationFrom[
"CITY_ID"]))
334 if (
is_set($arLocationTo[
"CITY_ID"]))
342 $query_string = implode(
"&", $arQuery);
348 $ob->http_timeout = 50;
369 if (mb_strpos(
$data,
"<?xml") ===
false)
373 "TEXT" =>
GetMessage(
'SALE_DH_CPCR_ERROR_CONNECT'),
378 $objXML->LoadString(
$data);
382 'SIMPLE' =>
'"ГЕПАРД-ЭКСПРЕСС"',
383 'ECONOM' =>
'"ПЕЛИКАН-СТАНДАРТ"',
384 'SIMPLE13' =>
'"ГЕПАРД-ЭКСПРЕСС 13"',
385 'SIMPLE18' =>
'"ГЕПАРД-ЭКСПРЕСС 18"',
386 'BIZON' =>
'"БИЗОН-КАРГО"',
387 'COLIBRI' =>
'"КОЛИБРИ-ДОКУМЕНТ"',
388 'PELICAN' =>
'"ПЕЛИКАН-ОНЛАЙН"',
389 'FRAXT' =>
'"ФРАХТ"',
391 $arTmpResult =
array();
393 if(isset(
$arResult[
"root"][
"#"][
"Error"]) AND is_array(
$arResult[
"root"][
"#"][
"Error"]))
402 if(!empty(
$arResult[
"root"][
"#"][
"Tariff"]))
406 foreach(
$val[
"#"] as
$k => $v)
408 foreach ($arProfiles as $prof =>
$title)
410 if (mb_strtoupper($v[0][
"#"]) == mb_strtoupper(
$title))
412 $arTmpResult[mb_strtolower($prof)] =
array(
413 'VALUE' =>
$val[
"#"][
"Total_Dost"][0][
"#"],
414 'TRANSIT' =>
$val[
"#"][
"DP"][0][
"#"].
" ".
GetMessage(
"SALE_DH_CPCR_DAYS")
416 unset($arProfiles[$prof]);
424 if(
count($arTmpResult) > 0)
426 $obCache->StartDataCache();
427 $obCache->EndDataCache(
437 "TEXT" =>
GetMessage(
'SALE_DH_CPCR_ERROR_CONNECT'),
457 "TEXT" =>
GetMessage(
'SALE_DH_CPCR_ERROR_RESPONSE'),
476 $arProfiles =
array(
"simple",
"econom");
480 if (in_array($arLocationTo[
'CITY_ID'],
array(
481 '269|0',
'328|0',
'1587|0',
'455|0',
'551|0',
'713|0',
'873|0',
'924|0',
'1054|0',
'552|0',
'1243|0',
'1309|0',
'1448|0',
'893|0',
'1828|0',
'1907|0',
'189|0',
'2011|0',
'2137|0'
484 $arProfiles[] =
"simple13";
487 if (in_array($arLocationTo[
'CITY_ID'],
array(
488 '199|0',
'1063|0',
'220|0',
'286|0',
'328|0',
'347|0',
'1071|0',
'1587|0',
'1916|0',
'1726|0',
'735|0',
'785|0',
'1083|0',
'873|0',
'1768|0',
'1054|0',
'1145|0',
'552|0',
'1176|0',
'1243|0',
'1309|0',
'1387|0',
'1472|0',
'893|0',
'1522|0',
'1485|0',
'1907|0',
'189|0',
'2011|0',
'345|0'
491 $arProfiles[] =
"simple18";
496 if (in_array($arLocationFrom[
'CITY_ID'],
array(
497 '2137|0',
'1828|0',
'1781|0',
'1722|0',
'1660|0',
'1448|0',
'924|0',
'713|0',
'551|0',
'455|0',
'286|0',
'269|0',
'122|0',
'1746|0',
'1042|0',
'1759|0',
'199|0',
'1063|0',
'220|0',
'286|0',
'328|0',
'347|0',
'1071|0',
'1587|0',
'1916|0',
'1726|0',
'735|0',
'785|0',
'1083|0',
'873|0',
'1768|0',
'1054|0',
'1145|0',
'552|0',
'1243|0',
'1309|0',
'1387|0',
'1472|0',
'893|0',
'1522|0',
'1485|0',
'1907|0',
'189|0',
'2011|0',
'345|0'
500 $arProfiles[] =
"simple13";
503 if (in_array($arLocationFrom[
'CITY_ID'],
array(
504 '122|0',
'1746|0',
'1042|0',
'1759|0',
'199|0',
'1063|0',
'220|0',
'286|0',
'328|0',
'347|0',
'1071|0',
'1587|0',
'1916|0',
'1726|0',
'735|0',
'785|0',
'1083|0',
'873|0',
'1768|0',
'1054|0',
'1145|0',
'552|0',
'1176|0',
'1243|0',
'1309|0',
'1387|0',
'1472|0',
'893|0',
'1522|0',
'1485|0',
'1907|0',
'189|0',
'2011|0',
'345|0'
507 $arProfiles[] =
"simple18";
519 $fp = fopen(__DIR__.
"/cpcr.log",
"a");
520 fwrite($fp,
"\r\n==========================================\r\n");
530 'SALE_DH_DEPRECATED_MESSAGE',
532 '#A1#' =>
'<a href="/bitrix/admin/sale_delivery_service_edit.php?lang='.LANGUAGE_ID.
'&PARENT_ID=0&CLASS_NAME=%5CSale%5CHandlers%5CDelivery%5CSpsrHandler">',
static convertEncoding($data, $charsetFrom, $charsetTo)
static GetByID($currency)
static __GetLocation($location)
static __Write2Log($data)
static SetSettings($arSettings)
static GetSettings($strSettings)
static Calculate($profile, $arConfig, $arOrder, $STEP)
static Compability($arOrder)
static IncludeModule($module_name)
static getLocationByIdHitCached($id)
static Convert($value, $measureFrom, $measureTo="G")
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT=100, $FULL_PATH=false)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
const DELIVERY_CPCR_SERVER_POST_CATEGORY
const DELIVERY_CPCR_SERVER_PORT
const DELIVERY_CPCR_WRITE_LOG
const DELIVERY_CPCR_SERVER_METHOD
const DELIVERY_CPCR_SERVER_POST_FROM_COUNTRY
const DELIVERY_CPCR_SERVER_POST_PRICE
const DELIVERY_CPCR_SERVER_POST_TO_COUNTRY
const DELIVERY_CPCR_CACHE_LIFETIME
const DELIVERY_CPCR_SERVER_POST_ADDITIONAL
const DELIVERY_CPCR_CITY_DEFAULT
const DELIVERY_CPCR_SERVER_POST_FROM_CITY
const DELIVERY_CPCR_SERVER_POST_TO_CITY
const DELIVERY_CPCR_CATEGORY_DEFAULT
const DELIVERY_CPCR_COUNTRY_DEFAULT
const DELIVERY_CPCR_SERVER
const DELIVERY_CPCR_SERVER_POST_FROM_CITY_NAME
const DELIVERY_CPCR_SERVER_POST_TO_CITY_NAME
const DELIVERY_CPCR_SERVER_POST_WEIGHT
const DELIVERY_CPCR_SERVER_PAGE
</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."%"
$arLocation['REGION_NAME']