function getConfig($siteId = false)
 {
     $shopLocationId = CSaleHelper::getShopLocationId($siteId);
     $arShopLocation = CSaleHelper::getLocationByIdHitCached($shopLocationId);
     $locString = strlen($arShopLocation["COUNTRY_NAME_LANG"]) > 0 ? $arShopLocation["COUNTRY_NAME_LANG"] : "";
     $locString .= strlen($arShopLocation["REGION_NAME_LANG"]) > 0 ? (strlen($locString) > 0 ? ", " : "") . $arShopLocation["REGION_NAME_LANG"] : "";
     $locString .= strlen($arShopLocation["CITY_NAME_LANG"]) > 0 ? (strlen($locString) > 0 ? ", " : "") . $arShopLocation["CITY_NAME_LANG"] : "";
     $locDelivery = Adapter::mapLocation($shopLocationId);
     $arConfig = array('CONFIG_GROUPS' => array('exchange_sett' => GetMessage('SALE_DH_PECOM_EXCH_TITLE'), 'add_services' => GetMessage('SALE_DH_PECOM_ADD_SERVICES_TITLE'), 'auto' => GetMessage('SALE_DH_PECOM_AUTO_TITLE'), 'avia' => GetMessage('SALE_DH_PECOM_AVIA_TITLE')), "CONFIG" => array("LOGIN" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_LOGIN'), "GROUP" => "exchange_sett"), "KEY" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_KEY'), "GROUP" => "exchange_sett"), "NAME" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_NAME'), "GROUP" => "exchange_sett"), "INN" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_INN'), "GROUP" => "exchange_sett"), "CITY" => array("TYPE" => "TEXT_RO", "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_CITY'), "DEFAULT" => $locString, "GROUP" => "exchange_sett"), "CITY_DELIVERY" => array("TYPE" => "DROPDOWN", "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_CITY_DELIVERY'), "VALUES" => $locDelivery, "GROUP" => "exchange_sett"), "PHONE" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_PHONE'), "GROUP" => "exchange_sett"), "PAYMENT_FORM" => array("TYPE" => "DROPDOWN", "DEFAULT" => self::$PAYER_BUYER, "TITLE" => GetMessage('SALE_DH_PECOM_AS_PAYMENT_FORM'), "GROUP" => "exchange_sett", "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYMENT_BANK'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYMENT_KASSA'))), "SERVICE_TAKE" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE'), 'GROUP' => 'add_services'), "SERVICE_TAKE_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_TAKE_TENT_ENABLED', 'SERVICE_TAKE_HYDRO_ENABLED')), "SERVICE_TAKE_TENT_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_TENT'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_TAKE_HYDRO_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_HYDRO'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_DELIVERY" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY'), 'GROUP' => 'add_services'), "SERVICE_DELIVERY_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_DELIVERY_TENT_ENABLED', 'SERVICE_DELIVERY_HYDRO_ENABLED', 'SERVICE_OTHER_DELIVERY_PAYER')), "SERVICE_DELIVERY_TENT_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_TENT'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_DELIVERY_HYDRO_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_HYDRO'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_OTHER_DELIVERY_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER'), 'GROUP' => 'add_services'), "SERVICE_OTHER_PLOMBIR_ENABLE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PLOMBIR_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_PLOMBIR_COUNT', 'SERVICE_OTHER_PLOMBIR_PAYER')), "SERVICE_OTHER_PLOMBIR_COUNT" => array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PLOMBIR_COUNT'), 'GROUP' => 'add_services', 'DEFAULT' => '0'), "SERVICE_OTHER_PLOMBIR_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_PALLETE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PALLETE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_PALLETE_PAYER')), "SERVICE_OTHER_PALLETE_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_INSURANCE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_INSURANCE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_INSURANCE_PAYER')), "SERVICE_OTHER_INSURANCE_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_RIGID_PACKING" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_RIGID_PACKING'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_RIGID_PAYER')), "SERVICE_OTHER_RIGID_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER')))));
     $aviableBoxes = self::getAviableBoxes();
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'auto', $arConfig);
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'avia', $arConfig);
     }
     return $arConfig;
 }
示例#2
0
 function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
 {
     $arPacks = CSaleDeliveryHelper::getBoxesFromConfig($profile, $arConfig);
     $arPackagesParams = CSaleDeliveryHelper::getRequiredPacks($arOrder["ITEMS"], $arPacks, self::$MAX_WEIGHT);
     $packageCount = count($arPackagesParams);
     if (intval($packageCount) <= 0) {
         return array("RESULT" => "ERROR", "TEXT" => GetMessage("SALE_DH_KP_OVERLOAD"));
     }
     $totalPrice = 0;
     $shopLocationId = CSaleHelper::getShopLocationId(SITE_ID);
     $arShopLocation = CSaleHelper::getLocationByIdHitCached($shopLocationId);
     $arLocationTo = CSaleHelper::getLocationByIdHitCached($arOrder['LOCATION_TO']);
     foreach ($arPackagesParams as $arPackage) {
         $totalPrice += self::calculatePackPrice($arPackage, $profile, $arConfig, $arShopLocation['REGION_ID'], $arLocationTo['REGION_ID']);
     }
     $arResult = array('RESULT' => 'OK', 'VALUE' => $totalPrice, 'PACKS_COUNT' => $packageCount);
     return $arResult;
 }
示例#3
0
 protected static function mapLocation2($internalLocationId)
 {
     if (intval($internalLocationId) <= 0) {
         return array();
     }
     static $result = array();
     if (!isset($result[$internalLocationId])) {
         $result[$internalLocationId] = array();
         $internalLocation = \CSaleHelper::getLocationByIdHitCached($internalLocationId);
         $externalId = Location::getExternalId($internalLocationId);
         //Let's try to find upper city
         if (strlen($externalId) <= 0) {
             $cityId = self::getUpperCityId($internalLocationId);
             $externalId = Location::getExternalId($cityId);
         }
         if (strlen($externalId) > 0) {
             $result[$internalLocationId] = array($externalId => !empty($internalLocation["CITY_NAME_LANG"]) ? $internalLocation["CITY_NAME_LANG"] : "");
         }
     }
     return $result[$internalLocationId];
 }
示例#4
0
 function Compability($arOrder, $arConfig)
 {
     $arLocationFrom = CSaleHelper::getLocationByIdHitCached($arOrder["LOCATION_FROM"]);
     $arLocationTo = CDeliveryEMS::__GetLocation($arOrder["LOCATION_TO"]);
     if ($arConfig['category']['VALUE'] == 'doc' && $arOrder['WEIGHT'] > 2000) {
         return array();
     } elseif (CDeliveryEMS::__IsRussian($arLocationFrom) && $arOrder['WEIGHT'] <= 31500 && $arLocationTo['EMS_ID']) {
         return array('delivery');
     } else {
         return array();
     }
 }
示例#5
0
 public static function getTarifNumFromCsv(array $arShopLocation)
 {
     if (empty($arShopLocation) || !isset($arShopLocation['REGION_NAME_LANG'], $arShopLocation["ID"])) {
         return false;
     }
     $regionCodeFromCode = $regionCodeFromName = "";
     $loc = \CSaleHelper::getLocationByIdHitCached($arShopLocation["ID"]);
     $res = \Bitrix\Sale\Location\LocationTable::getList(array('filter' => array('=ID' => $loc["REGION_ID"]), 'select' => array('CODE')));
     if ($locReg = $res->fetch()) {
         $regionCodeFromCode = $locReg["CODE"];
     }
     $regionCodeFromName = self::getRegionCodeByOldName($arShopLocation['REGION_NAME_LANG']);
     $csvFile = CSaleHelper::getCsvObject(DELIVERY_RP_CSV_PATH . '/tarif_regions.csv');
     $tarifNumber = false;
     $COL_TARIF_NUM = 0;
     while ($arRes = $csvFile->Fetch()) {
         if (strlen($regionCodeFromCode) > 0 && in_array($regionCodeFromCode, $arRes) || strlen($regionCodeFromName) > 0 && in_array($regionCodeFromName, $arRes)) {
             $tarifNumber = $arRes[$COL_TARIF_NUM];
             break;
         }
     }
     return $tarifNumber;
 }
 function Compability($arOrder, $arConfig)
 {
     $arLocationFrom = CSaleHelper::getLocationByIdHitCached($arOrder["LOCATION_FROM"]);
     if (ToUpper($arLocationFrom["CITY_NAME_ORIG"]) == "МОСКВА" || ToUpper($arLocationFrom["CITY_SHORT_NAME"]) == "МОСКВА" || ToUpper($arLocationFrom["CITY_NAME_LANG"]) == "МОСКВА" || ToUpper($arLocationFrom["CITY_NAME_ORIG"]) == "MOSCOW" || ToUpper($arLocationFrom["CITY_SHORT_NAME"]) == "MOSCOW" || ToUpper($arLocationFrom["CITY_NAME_LANG"]) == "MOSCOW") {
         $arLocationTo = CSaleHelper::getLocationByIdHitCached($arOrder["LOCATION_TO"]);
         if (!CDeliveryRUSSIANPOST::__IsRussian($arLocationTo) && $arConfig['category']['VALUE'] == 26) {
             return array();
         }
         if (isset($arConfig["category"]["VALUE"]) && $arConfig["category"]["VALUE"] == 26) {
             return array("ground");
         } else {
             return array("ground", "avia");
         }
     } else {
         return array();
     }
 }
示例#7
0
 function __GetLocation($location)
 {
     static $arCPCRCountries;
     static $arCPCRCity;
     $arLocation = CSaleHelper::getLocationByIdHitCached($location);
     $arReturn = array();
     if (!is_array($arCPCRCountries)) {
         require "cpcr/locations.php";
     }
     foreach ($arCPCRCountries as $country_id => $country_title) {
         if ($country_title == $arLocation["COUNTRY_NAME_ORIG"] || $country_title == $arLocation["COUNTRY_SHORT_NAME"] || $country_title == $arLocation["COUNTRY_NAME_LANG"] || $country_title == $arLocation["COUNTRY_NAME"]) {
             $arReturn["COUNTRY"] = $country_id;
             break;
         }
     }
     $arReturn["CITY"] = $arLocation["CITY_NAME_LANG"];
     if (!is_array($arCPCRCity)) {
         require "cpcr/cities.php";
     }
     /*
     if (is_set($arCPCRCity, $arLocation["CITY_ID"]))
     {
     	$arReturn["CITY_ID"] = $arCPCRCity[$arLocation["CITY_ID"]];
     }
     */
     foreach ($arCPCRCity as $city_id => $city_title) {
         if ($city_title == $arLocation["CITY_NAME_ORIG"] || $city_title == $arLocation["CITY_SHORT_NAME"] || $city_title == $arLocation["CITY_NAME_LANG"] || $city_title == $arLocation["CITY_NAME"]) {
             $arReturn["CITY_ID"] = $city_id;
             break;
         }
     }
     $arReturn["ORIGINAL"] = array("ID" => $arLocation["ID"], "COUNTRY_ID" => $arLocation["COUNTRY_ID"], "CITY_ID" => $arLocation["CITY_ID"]);
     return $arReturn;
 }