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; }
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; }
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]; }
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(); } }
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(); } }
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; }