GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php"); IncludeModuleLangFile(__FILE__); $lheStyle = ' '; $APPLICATION->AddHeadString($lheStyle, true, true); $SID = $_REQUEST["SID"]; //$bInstall = strlen($handlerPath) > 0 && strlen($SID) <= 0; $errorsList = ""; //$obDelivery = new CSaleDeliveryHandler(); if (CModule::IncludeModule("fileman")) $bFilemanModuleInst = true; $siteList = array(); $rsSites = CSite::GetList($by = "sort", $order = "asc", Array()); $i = 0; while($arRes = $rsSites->Fetch()) { $siteList[] = array( 'ID' => $arRes['ID'], 'NAME' => $arRes['NAME'], ); } $siteCount = count($siteList); if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_REQUEST["Update"]) && check_bitrix_sessid()) { $arHandlersData = isset($_POST["STRUCTURE"]) ? urldecode($_POST["STRUCTURE"]) : ''; $arHandlersData = json_decode($arHandlersData, true); if( 'utf-8' != strtolower(SITE_CHARSET)) $arHandlersData = $APPLICATION->ConvertCharsetArray($arHandlersData, 'utf-8', SITE_CHARSET); if ($arHandlersData) { if ($_REQUEST["USE_DIFF_SITES_SETTINGS"] != "Y") { $curSITE_ID = $_REQUEST["current_site"]; $arHandlersData = array("ALL" => $arHandlersData[$curSITE_ID]); $arHandlersData["ALL"]["LID"] = false; } foreach ($arHandlersData as $siteID => $arHandler) { foreach ($arHandlersData[$siteID]["PROFILES"] as $profile_id => $arProfile) { if (is_array($arProfile["RESTRICTIONS_SUM"])) { $currency = array_shift($arProfile["RESTRICTIONS_SUM"]); foreach ($arProfile["RESTRICTIONS_SUM"] as $key => $value) { $arProfile["RESTRICTIONS_SUM"][$key] = CCurrencyRates::ConvertCurrency($value, $currency, $arHandlersData[$siteID]["BASE_CURRENCY"]); } $arHandlersData[$siteID]["PROFILES"][$profile_id] = $arProfile; } } $arConfig = array(); foreach ($arHandlersData[$siteID]["CONFIG"]["CONFIG"] as $configID => $arHandlerConfig) { if(isset($arHandlerConfig["CHECK_FORMAT"])) { $formatError = CSaleDeliveryHelper::getFormatError($arHandlerConfig["VALUE"], $arHandlerConfig["CHECK_FORMAT"], $arHandlerConfig["TITLE"]); if(!is_null($formatError)) $errorsList .= $formatError; } $arConfig[$configID] = $arHandlerConfig["VALUE"]; } $arHandlersData[$siteID]["CONFIG"] = $arConfig; //$arHandlersData[$siteID]["HANDLER"] = $handlerPath; } //add logotip $arPicture = array(); if(array_key_exists("LOGOTIP", $_FILES) && $_FILES["LOGOTIP"]["error"] == 0) $arPicture = $_FILES["LOGOTIP"]; if($_POST["LOGOTIP_del"] == "Y") $arPicture["del"] = trim($_POST["LOGOTIP_del"]); if(!empty($arPicture)) $arHandlersData["ALL"]["LOGOTIP"] = $arPicture; foreach ($arHandlersData as $SITE_ID => $arHandlerData) { $APPLICATION->ResetException(); $arHandlerData["PROFILE_USE_DEFAULT"] == "N"; CSaleDeliveryHandler::Set($SID, $arHandlerData, $SITE_ID == "ALL" ? false : $SITE_ID); if ($ex = $APPLICATION->GetException()) { $errorsList .= $ex->GetString()."
"; } } //pay system for delivery if (is_set($_POST["PAY_SYSTEM"]) && is_array($_POST["PAY_SYSTEM"])) { foreach ($_POST["PAY_SYSTEM"] as $profileName => $arPSIds) CSaleDelivery2PaySystem::UpdateDelivery($SID, array( "PAYSYSTEM_ID" => $arPSIds, "DELIVERY_PROFILE_ID" => $profileName ) ); } if (strlen($errorsList) <= 0) { if (strlen($_REQUEST["apply"]) > 0) LocalRedirect($APPLICATION->GetCurPage()."?lang=".LANG."&SID=".urlencode($SID)); else LocalRedirect('/bitrix/admin/sale_delivery_handlers.php?lang='.LANG); die(); } } else { $errorsList .= GetMessage('SALE_DH_ERROR_UNRECOGNIZED')."
"; } } $rsDeliveryInfo = CSaleDeliveryHandler::GetBySID($SID); if ($rsDeliveryInfo->SelectedRowsCount() <= 0) { echo 'error'; die(); } while ($arHandler = $rsDeliveryInfo->Fetch()) { $bInstall = $arHandler["INSTALLED"] == "N"; unset($arHandler["DBGETSETTINGS"]); unset($arHandler["DBSETSETTINGS"]); unset($arHandler["GETCONFIG"]); unset($arHandler["COMPABILITY"]); unset($arHandler["CALCULATOR"]); if (strlen($arHandler["LID"]) > 0) $arDeliveryInfo[$arHandler["LID"]] = $arHandler; else { $arDeliveryInfo = array("ALL" => $arHandler); break; } } if (count($arDeliveryInfo) > 0 && !isset($arDeliveryInfo['ALL']) && count($arDeliveryInfo) != count($siteList)) { $tmp = array_values($arDeliveryInfo); $ar = $tmp[0]; foreach ($siteList as $arSite) { if (!isset($arDeliveryInfo[$arSite['ID']])) { $arDeliveryInfo[$arSite['ID']] = $ar; $arDeliveryInfo[$arSite['ID']]['ACTIVE'] = 'N'; unset($arDeliveryInfo[$arSite['ID']]["ID"]); } } } if (!$bInstall) { if (count($arDeliveryInfo) > 0) { $arSitesConfigured = array_keys($arDeliveryInfo); $bSites = $arSitesConfigured[0] != "ALL"; if (!$bSites) { foreach ($siteList as $arSite) { $arDeliveryInfo[$arSite["ID"]] = $arDeliveryInfo["ALL"]; $arDeliveryInfo[$arSite["ID"]]["LID"] = $arSite["ID"]; } unset($arDeliveryInfo["ALL"]); } $handlerPath = $arDeliveryInfo[$siteList[0]["ID"]]["HANDLER"]; $deliveryHint = $arDeliveryInfo[$siteList[0]["ID"]]['DESCRIPTION_INNER']; $deliveryName = $arDeliveryInfo[$siteList[0]["ID"]]['NAME']; } else { $bInstall = true; } } else if(isset($arDeliveryInfo["ALL"])) { $arDeliveryInfoTmp = $arDeliveryInfo; $arDeliveryInfoTmp["ALL"]["ACTIVE"] = 'N'; $arDeliveryInfoTmp["ALL"]["SORT"] = '100'; $arDeliveryInfo = array(); foreach ($siteList as $arSite) { $arDeliveryInfo[$arSite["ID"]] = $arDeliveryInfoTmp["ALL"]; $arDeliveryInfo[$arSite["ID"]]["LID"] = $arSite["ID"]; } unset($arDeliveryInfoTmp); $handlerPath = $arDeliveryInfo[$siteList[0]["ID"]]["HANDLER"]; $deliveryHint = $arDeliveryInfo[$siteList[0]["ID"]]['DESCRIPTION_INNER']; $deliveryName = $arDeliveryInfo[$siteList[0]["ID"]]['NAME']; $bSites = false; } else { $bSites = true; foreach ($siteList as $arSite) { $arDeliveryInfo[$arSite["ID"]]["ACTIVE"] = 'N'; $arDeliveryInfo[$arSite["ID"]]["SORT"] = '100'; } $handlerPath = $arDeliveryInfo[$siteList[0]["ID"]]["HANDLER"]; $deliveryHint = $arDeliveryInfo[$siteList[0]["ID"]]['DESCRIPTION_INNER']; $deliveryName = $arDeliveryInfo[$siteList[0]["ID"]]['NAME']; } foreach ($siteList as $arSite) { $curSITE_ID = $arSite["ID"]; unset($arDeliveryInfo[$curSITE_ID]["SETTINGS"]); if (!is_array($arDeliveryInfo[$curSITE_ID]["CONFIG"]["CONFIG_GROUPS"])) { $arDeliveryInfo[$curSITE_ID]["CONFIG"]["CONFIG"] = array(); foreach ($arDeliveryInfo[$curSITE_ID]["CONFIG"] as $key => $arConfig) { if ($key != "CONFIG") { $arConfig["GROUP"] = "none"; $arDeliveryInfo[$curSITE_ID]["CONFIG"]["CONFIG"] = $arConfig; unset($arDeliveryInfo[$curSITE_ID]["CONFIG"][$key]); } } $arDeliveryInfo[$curSITE_ID]["CONFIG"]["CONFIG_GROUPS"] = array("none" => ""); } foreach ($arDeliveryInfo[$curSITE_ID]['PROFILES'] as $key => $arProfile) { if (!is_set($arProfile['ACTIVE'])) $arProfile['ACTIVE'] = "Y"; if (!is_set($arProfile['TAX_RATE'])) $arProfile['TAX_RATE'] = "0"; if (!is_set($arProfile['RESTRICTIONS_DIMENSIONS_SUM'])) $arProfile['RESTRICTIONS_DIMENSIONS_SUM'] = "0"; if (!is_set($arProfile['RESTRICTIONS_MAX_SIZE'])) $arProfile['RESTRICTIONS_MAX_SIZE'] = "0"; if (!is_array($arProfile["RESTRICTIONS_WEIGHT"]) || count($arProfile["RESTRICTIONS_WEIGHT"]) <= 0) $arProfile["RESTRICTIONS_WEIGHT"] = array(0); if (!is_array($arProfile["RESTRICTIONS_DIMENSIONS"]) || count($arProfile["RESTRICTIONS_DIMENSIONS"]) <= 0) $arProfile["RESTRICTIONS_DIMENSIONS"] = array(0); if (!is_array($arProfile["RESTRICTIONS_SUM"]) || count($arProfile["RESTRICTIONS_SUM"]) <= 0) $arProfile["RESTRICTIONS_SUM"] = array(0); else array_unshift($arProfile["RESTRICTIONS_SUM"], $arDeliveryInfo[$curSITE_ID]['BASE_CURRENCY']); foreach ($arProfile["RESTRICTIONS_WEIGHT"] as $pkey => $value) $arProfile["RESTRICTIONS_WEIGHT"][$pkey] = number_format(doubleval($value), 2, '.', ''); foreach ($arProfile["RESTRICTIONS_SUM"] as $pkey => $value) $arProfile["RESTRICTIONS_SUM"][$pkey] = $pkey > 0 ? number_format(doubleval($value), 2, '.', '') : $value; if (count($arProfile["RESTRICTIONS_SUM"]) < 3) $arProfile["RESTRICTIONS_SUM"][] = "0.00"; foreach ($arProfile["RESTRICTIONS_DIMENSIONS"] as $pkey => $value) $arProfile["RESTRICTIONS_DIMENSIONS"][$pkey] = number_format(doubleval($value), 2, '.', ''); $arDeliveryInfo[$curSITE_ID]['PROFILES'][$key] = $arProfile; } } $APPLICATION->SetTitle(GetMessage("SALE_DH_TITLE_EDIT").": (".htmlspecialcharsEx($SID).") ".$deliveryName); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aTabs = array( array("DIV" => "editbase", "TAB" => GetMessage("SALE_DH_EDIT_BASECONFIG"), "TITLE" => GetMessage("SALE_DH_EDIT_BASECONFIG_DESCR")) ); $SITE_ID = $siteList[0]['ID']; if (is_array($arDeliveryInfo[$SITE_ID]["CONFIG"])) { if (is_array($arDeliveryInfo[$SITE_ID]["CONFIG"]["CONFIG_GROUPS"])) { foreach ($arDeliveryInfo[$SITE_ID]["CONFIG"]["CONFIG_GROUPS"] as $group => $title) { $configTabsCount++; $aTabs[] = array("DIV" => "edit_".htmlspecialcharsbx($group), "TAB" => htmlspecialcharsbx($title), "TITLE" => htmlspecialcharsbx($title)); } } else { $configTabsCount++; $aTabs[] = array("DIV" => "edit_config", "TAB" => GetMessage('SALE_DH_EDIT_CONFIG'), "TITLE" => GetMessage('SALE_DH_EDIT_CONFIG_DESCR')); } } if(is_array($arDeliveryInfo[$SITE_ID]["PROFILES"])) { foreach ($arDeliveryInfo[$SITE_ID]["PROFILES"] as $profileId => $arProfile) { if(!array_key_exists($profileId, $arDeliveryInfo[$SITE_ID]["CONFIG"]["CONFIG_GROUPS"])) { $configTabsCount++; $aTabs[] = array("DIV" => "edit_".htmlspecialcharsbx($profileId), "TAB" => htmlspecialcharsbx($arProfile["TITLE"]), "TITLE" => htmlspecialcharsbx($arProfile["TITLE"])); } } } //$aTabs[] = array("DIV" => "editbase_profiles", "TAB" => GetMessage('SALE_DH_EDIT_PROFILES'), "TITLE" => GetMessage('SALE_DH_EDIT_PROFILES_DESCR')); //$aTabs[] = array("DIV" => "delivery2pay", "TAB" => GetMessage('SALE_TAB_DELIVERY_PAY'), "TITLE" => GetMessage('SALE_TAB_DELIVERY_PAY_DESC')); $tabControl = new CAdminViewTabControl("tabControl", $aTabs, true, false); $parentTabControl = new CAdminTabControl('parentTabControl', array( array("DIV" => "edit_main", "TAB" => GetMessage('SALE_DH_TAB_TITLE_EDIT'), "ICON" => "sale", "TITLE" => GetMessage('SALE_DH_TAB_TITLE_EDIT_ALT')) ), true, true); $aContext = array( array( "TEXT" => GetMessage("SALE_DH_LIST"), "LINK" => "sale_delivery_handlers.php?lang=".LANG, "TITLE" => GetMessage("SALE_DH_LIST_ALT"), "ICON" => "btn_list" ), ); $obContextMenu = new CAdminContextMenu($aContext); $obContextMenu->Show(); $arConfigValues = array(); foreach ($arDeliveryInfo[$SITE_ID]["CONFIG"]["CONFIG"] as $config_id => $arConfig) { if ($arConfig["TYPE"] != "MULTISELECT") $arConfigValues[$config_id] = strlen($arConfig["VALUE"]) > 0 ? $arConfig["VALUE"] : $arConfig["DEFAULT"]; else { if (is_set($arConfig["VALUE"]) && !is_array($arConfig["VALUE"])) $arConfig["VALUE"] = array("0" => $arConfig["VALUE"]); if (!is_set($arConfig["VALUE"]) && is_set($arConfig["DEFAULT"]) && !is_array($arConfig["DEFAULT"])) $arConfig["DEFAULT"] = array("0" => $arConfig["DEFAULT"]); $arConfigValues[$config_id] = count($arConfig["VALUE"]) > 0 ? $arConfig["VALUE"] : $arConfig["DEFAULT"]; } } ?>