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; }
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; }
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; }
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; }