function GetConfig($siteId = false)
 {
     $shopLocationId = CSaleHelper::getShopLocationId($siteId);
     $arShopLocation = CSaleHelper::getLocationByIdHitCached($shopLocationId);
     if (!$arShopLocation) {
         $arShopLocation = array();
     }
     $shopPrevLocationId = COption::GetOptionString('sale', 'delivery_rus_post_first_prev_loc', 0);
     /* if shop's location was changed */
     if ($shopPrevLocationId != $shopLocationId) {
         COption::SetOptionString('sale', 'delivery_rus_post_first_prev_loc', $shopLocationId);
         COption::RemoveOption('sale', 'delivery_rus_post_first_tarifs');
     }
     $arConfig = array('CONFIG_GROUPS' => array('wrapper' => GetMessage('SALE_DH_RPF_WRP_TITLE')));
     $aviableBoxes = self::getAviableBoxes();
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'wrapper', $arConfig);
     }
     $arConfig['CONFIG']['tarif_section_1'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RPF_TARIFS'), 'GROUP' => 'wrapper');
     $arTarifs = CSaleHelper::getOptionOrImportValues('delivery_rus_post_first_tarifs', array('CDeliveryRusPostFirst', 'getTarifsByRegionFromCsv'), array($arShopLocation));
     foreach (self::$TARIFS as $arTarif) {
         $tarifId = $arTarif[self::$TARIF_IDX];
         $arConfig['CONFIG']['TARIF_' . $tarifId] = array('TYPE' => 'STRING', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0', 'TITLE' => $arTarif[self::$TARIF_DESCR], 'GROUP' => 'wrapper');
     }
     /* Additional services */
     foreach (self::$SERVICES as $serviceId => $arService) {
         $tarifId = $arService[self::$TARIF_IDX];
         $arConfig['CONFIG']['service_' . $tarifId . '_section'] = array('TYPE' => 'SECTION', 'TITLE' => $arService[self::$TARIF_DESCR], 'GROUP' => 'wrapper');
         $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RPF_SRV_ALLOW'), 'GROUP' => 'wrapper', 'DEFAULT' => $serviceId == 'NOTIFICATION_REG' ? 'N' : 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'));
         $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RPF_SRV_PRICE'), 'GROUP' => 'wrapper', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     }
     return $arConfig;
 }
示例#2
0
 public static function getValues($psId = false, $persId = false)
 {
     $arResult = array();
     //get saved
     if (intval($psId) > 0) {
         $dbPSAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $psId, "PERSON_TYPE_ID" => $persId));
         if ($arPSAction = $dbPSAction->Fetch()) {
             $arResult = self::extractFromField($arPSAction["TARIF"]);
         }
     }
     //or get default
     if (empty($arResult)) {
         $arResult = CSaleHelper::getOptionOrImportValues('ps_payment_forward_calc_tarifs', array('CSalePaySystemTarifPFC', 'getAllCMTarifsFromCsv'));
     }
     return $arResult;
 }
示例#3
0
 function GetConfig($siteId = false)
 {
     global $APPLICATION;
     $shopLocationId = CSaleHelper::getShopLocationId($siteId);
     $arShopLocation = \CSaleHelper::getLocationByIdHitCached($shopLocationId);
     if (!$arShopLocation) {
         $arShopLocation = array();
     }
     if (isset($_REQUEST["SET_DEFAULT_TARIF_ZONES"]) && $_REQUEST["SET_DEFAULT_TARIF_ZONES"] == "Y") {
         Option::delete('sale', array('name' => 'delivery_rus_post_prev_loc'));
     }
     $shopPrevLocationId = Option::get('sale', 'delivery_rus_post_prev_loc', "");
     /* if shop's location was changed */
     if (strlen($shopPrevLocationId) <= 0 || $shopPrevLocationId != $shopLocationId) {
         Option::set('sale', 'delivery_rus_post_prev_loc', $shopLocationId);
         Option::delete('sale', array('name' => 'delivery_regs_to_zones'));
         Option::delete('sale', array('name' => 'delivery_rus_post_tarifs'));
     }
     $arConfig = array('CONFIG_GROUPS' => array('zones' => GetMessage('SALE_DH_RP_CONFIG_GROUP_ZONES'), 'tarifs' => GetMessage('SALE_DH_RP_CONFIG_GROUP_TARIFS'), 'land' => GetMessage('SALE_DH_RP_CONFIG_GROUP_LAND'), 'avia' => GetMessage('SALE_DH_RP_CONFIG_GROUP_AVIA')));
     // Zones tab
     $arRegions = CSaleDeliveryHelper::getRegionsList();
     $arZones = array();
     $arZones[0] = GetMessage('SALE_DH_RP_CONFIG_ZONES_EMPTY');
     for ($i = 1; $i <= self::$ZONES_COUNT; $i++) {
         $arZones[$i] = GetMessage('SALE_DH_RP_CONFIG_ZONE') . ' ' . $i;
     }
     $arRegsToZones = CSaleHelper::getOptionOrImportValues('delivery_regs_to_zones', array('CDeliveryRusPost', 'importZonesFromCsv'), array($arShopLocation));
     $arConfig['CONFIG']['SET_DEFAULT_TARIF_ZONES'] = array('TYPE' => 'CUSTOM', 'TITLE' => GetMessage('SALE_DH_RP_SET_DEFAULT_TARIF_ZONES'), 'GROUP' => 'zones', 'DEFAULT' => '<a href="' . $APPLICATION->GetCurPageParam('', array('SET_DEFAULT_TARIF_ZONES')) . '&SET_DEFAULT_TARIF_ZONES=Y">' . GetMessage('SALE_DH_RP_SET_DEFAULT_TARIF_ZONES_SET') . '</a>');
     foreach ($arRegions as $regId => $regName) {
         $codeByName = self::getRegionCodeByOldName($regName);
         // old location
         $code = strlen($codeByName) > 0 ? $codeByName : $regId;
         if (isset($arRegsToZones[$code])) {
             $arConfig['CONFIG']['REG_' . $code] = array('TYPE' => 'DROPDOWN', 'DEFAULT' => isset($arRegsToZones[$code]) ? $arRegsToZones[$code] : '0', 'TITLE' => $regName, 'GROUP' => 'zones', 'VALUES' => $arZones);
         }
     }
     /*
     tarifs tab
     1. land
     1.1. Base Price
     */
     $arConfig['CONFIG']['tarif_section_1'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_WEIGHT_LESS'), 'GROUP' => 'tarifs');
     $arTarifs = CSaleHelper::getOptionOrImportValues('delivery_rus_post_tarifs', array('CDeliveryRusPost', 'getTarifsByRegionFromCsv'), array($arShopLocation));
     foreach ($arZones as $zoneId => $zoneName) {
         if ($zoneId <= 0) {
             continue;
         }
         $tarifId = self::$TARIF_LESS_500[$zoneId];
         $arConfig['CONFIG']['ZONE_RATE_MAIN_' . $zoneId] = array('TYPE' => 'STRING', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0', 'TITLE' => $zoneName, 'GROUP' => 'tarifs');
     }
     $arConfig['CONFIG']['tarif_section_2'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_WEIGHT_MORE'), 'GROUP' => 'tarifs');
     foreach ($arZones as $zoneId => $zoneName) {
         if ($zoneId <= 0) {
             continue;
         }
         $tarifId = self::$TARIF_MORE_500[$zoneId];
         $arConfig['CONFIG']['ZONE_RATE_ADD_' . $zoneId] = array('TYPE' => 'STRING', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0', 'TITLE' => $zoneName, 'GROUP' => 'tarifs');
     }
     /* Additional services */
     $arConfig['CONFIG']['tarif_add_services'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_ADD_SRV'), 'GROUP' => 'tarifs');
     /* 1.2 Service heavy weight 10 - 20 kg */
     $tarifId = self::$TARIF_HEAVY_WEIGHT;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_HEAVY'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'));
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_HEAVY_VAL') . ' %', 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     /* 1.5 Service fragile */
     $tarifId = self::$TARIF_FRAGILE;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_FRGL'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'), 'TOP_LINE' => 'Y');
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_FRGL_VAL') . ' %', 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     /* 4. Service declared value */
     $tarifId = self::$TARIF_DECLARED_VAL;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_DECL'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'), 'TOP_LINE' => 'Y');
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_DECL_VAL'), 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     // land tab
     $aviableBoxes = self::getAviableBoxes();
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'land', $arConfig);
     }
     /* 2.1 avia tab*/
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'avia', $arConfig);
     }
     $tarifId = self::$TARIF_AVIA_STANDART;
     $arConfig['CONFIG']['tarif_avia_services'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_TARIFS_AVIA'), 'GROUP' => 'avia');
     $arConfig['CONFIG']['tarif_avia_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_TARIF_AVIA_STNDRT'), 'GROUP' => 'avia', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     $tarifId = self::$TARIF_AVIA_HEAVY;
     $arConfig['CONFIG']['tarif_avia_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_TARIF_AVIA_HEAVY'), 'GROUP' => 'avia', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     return $arConfig;
 }
示例#4
0
 public static function GetConfig($siteId = false)
 {
     $shopLocationId = CSaleHelper::getShopLocationId($siteId);
     $arShopLocation = CSaleLocation::GetByID($shopLocationId);
     $shopPrevLocationId = COption::GetOptionString('sale', 'delivery_rus_post_prev_loc', 0);
     /* if shop's location was changed */
     if ($shopPrevLocationId != $shopLocationId) {
         COption::SetOptionString('sale', 'delivery_rus_post_prev_loc', $shopLocationId);
         COption::RemoveOption('sale', 'delivery_regs_to_zones');
         COption::RemoveOption('sale', 'delivery_rus_post_tarifs');
     }
     $arConfig = array('CONFIG_GROUPS' => array('zones' => GetMessage('SALE_DH_RP_CONFIG_GROUP_ZONES'), 'tarifs' => GetMessage('SALE_DH_RP_CONFIG_GROUP_TARIFS'), 'land' => GetMessage('SALE_DH_RP_CONFIG_GROUP_LAND'), 'avia' => GetMessage('SALE_DH_RP_CONFIG_GROUP_AVIA')));
     // Zones tab
     $arRegions = CSaleDeliveryHelper::getRegionsList();
     $arZones = array();
     $arZones[0] = GetMessage('SALE_DH_RP_CONFIG_ZONES_EMPTY');
     for ($i = 1; $i <= self::$ZONES_COUNT; $i++) {
         $arZones[$i] = GetMessage('SALE_DH_RP_CONFIG_ZONE') . ' ' . $i;
     }
     $arRegsToZones = CSaleHelper::getOptionOrImportValues('delivery_regs_to_zones', array('CDeliveryRusPost', 'importZonesFromCsv'), array($arShopLocation['REGION_NAME_LANG']));
     foreach ($arRegions as $regId => $regName) {
         $arConfig['CONFIG']['REG_' . $regId] = array('TYPE' => 'DROPDOWN', 'DEFAULT' => isset($arRegsToZones[$regId]) ? $arRegsToZones[$regId] : '0', 'TITLE' => $regName, 'GROUP' => 'zones', 'VALUES' => $arZones);
     }
     /*
     tarifs tab
     1. land
     1.1. Base Price
     */
     $arConfig['CONFIG']['tarif_section_1'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_WEIGHT_LESS'), 'GROUP' => 'tarifs');
     $arTarifs = CSaleHelper::getOptionOrImportValues('delivery_rus_post_tarifs', array('CDeliveryRusPost', 'getTarifsByRegionFromCsv'), array($arShopLocation['REGION_NAME_LANG']));
     foreach ($arZones as $zoneId => $zoneName) {
         if ($zoneId <= 0) {
             continue;
         }
         $tarifId = self::$TARIF_LESS_500[$zoneId];
         $arConfig['CONFIG']['ZONE_RATE_MAIN_' . $zoneId] = array('TYPE' => 'STRING', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0', 'TITLE' => $zoneName, 'GROUP' => 'tarifs');
     }
     $arConfig['CONFIG']['tarif_section_2'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_WEIGHT_MORE'), 'GROUP' => 'tarifs');
     foreach ($arZones as $zoneId => $zoneName) {
         if ($zoneId <= 0) {
             continue;
         }
         $tarifId = self::$TARIF_MORE_500[$zoneId];
         $arConfig['CONFIG']['ZONE_RATE_ADD_' . $zoneId] = array('TYPE' => 'STRING', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0', 'TITLE' => $zoneName, 'GROUP' => 'tarifs');
     }
     /* Additional services */
     $arConfig['CONFIG']['tarif_add_services'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_ADD_SRV'), 'GROUP' => 'tarifs');
     /* 1.2 Service heavy weight 10 - 20 kg */
     $tarifId = self::$TARIF_HEAVY_WEIGHT;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_HEAVY'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'));
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_HEAVY_VAL') . ' %', 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     /* 1.5 Service fragile */
     $tarifId = self::$TARIF_FRAGILE;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_FRGL'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'), 'TOP_LINE' => 'Y');
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_FRGL_VAL') . ' %', 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     /* 4. Service declared value */
     $tarifId = self::$TARIF_DECLARED_VAL;
     $arConfig['CONFIG']['service_' . $tarifId . '_enabled'] = array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_RP_SRV_DECL'), 'GROUP' => 'tarifs', 'DEFAULT' => 'Y', 'HIDE_BY_NAMES' => array('service_' . $tarifId . '_value'), 'TOP_LINE' => 'Y');
     $arConfig['CONFIG']['service_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_SRV_DECL_VAL'), 'GROUP' => 'tarifs', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     // land tab
     $aviableBoxes = self::getAviableBoxes();
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'land', $arConfig);
     }
     /* 2.1 avia tab*/
     foreach ($aviableBoxes as $boxId => $arBox) {
         CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'avia', $arConfig);
     }
     $tarifId = self::$TARIF_AVIA_STANDART;
     $arConfig['CONFIG']['tarif_avia_services'] = array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_RP_TARIFS_AVIA'), 'GROUP' => 'avia');
     $arConfig['CONFIG']['tarif_avia_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_TARIF_AVIA_STNDRT'), 'GROUP' => 'avia', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     $tarifId = self::$TARIF_AVIA_HEAVY;
     $arConfig['CONFIG']['tarif_avia_' . $tarifId . '_value'] = array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_RP_TARIF_AVIA_HEAVY'), 'GROUP' => 'avia', 'DEFAULT' => isset($arTarifs[$tarifId]) ? $arTarifs[$tarifId] : '0');
     return $arConfig;
 }