public static function convertNewServiceToOld($service, $sid = false) { if (!isset($service["CONFIG"]["MAIN"]["SID"])) { return false; } self::initHandlers(); $handlers = self::getRegisteredHandlers("SID"); if ($sid !== false) { $service["SID"] = $sid; } else { $service["SID"] = $service["CONFIG"]["MAIN"]["SID"]; } $service["TAX_RATE"] = $service["CONFIG"]["MAIN"]["MARGIN_VALUE"]; //todo: %, CURRENCY $service["INSTALLED"] = 'Y'; $service["BASE_CURRENCY"] = $service["CURRENCY"]; $service["SETTINGS"] = $service["CONFIG"]["MAIN"]["OLD_SETTINGS"]; $service["HANDLER"] = $handlers[$service["SID"]]["HANDLER"]; if (intval($service["LOGOTIP"]) > 0) { $service["LOGOTIP"] = \CFile::getFileArray($service["LOGOTIP"]); } $siteId = false; if (isset($service["ID"]) && intval($service["ID"]) > 0) { $restrictions = \Bitrix\Sale\Delivery\Services\Manager::getRestrictionsByDeliveryId($service["ID"]); foreach ($restrictions as $restriction) { if ($restriction["CLASS_NAME"] == '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite' && !empty($restriction["PARAMS"]["SITE_ID"])) { if (is_array($restriction["PARAMS"]["SITE_ID"])) { reset($restriction["PARAMS"]["SITE_ID"]); $siteId = current($restriction["PARAMS"]["SITE_ID"]); } else { $siteId = $restriction["PARAMS"]["SITE_ID"]; } break; } } } if (!$siteId) { $siteId = Helper::getDefaultSiteId(); } $service["CONFIG"] = self::createConfig($handlers[$service["SID"]], $service["SETTINGS"], $siteId); $service["SETTINGS"] = unserialize($service["SETTINGS"]); $service["PROFILES"] = array(); if (isset($service["ID"]) && intval($service["ID"]) > 0) { foreach (Manager::getByParentId($service["ID"]) as $profile) { $profileId = $profile["CONFIG"]["MAIN"]["PROFILE_ID"]; $profileParams = array("TITLE" => $profile["NAME"], "DESCRIPTION" => $profile["DESCRIPTION"], "TAX_RATE" => $service["CONFIG"]["MAIN"]["MARGIN_VALUE"], "ACTIVE" => $profile["ACTIVE"]); $restrictions = Manager::getRestrictionsByDeliveryId($profile["ID"]); foreach ($restrictions as $restriction) { switch ($restriction["CLASS_NAME"]) { case '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByWeight': $profileParams["RESTRICTIONS_WEIGHT"] = array($restriction["PARAMS"]["MIN_WEIGHT"], $restriction["PARAMS"]["MAX_WEIGHT"]); break; case '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByPrice': $profileParams["RESTRICTIONS_SUM"] = array($restriction["PARAMS"]["MIN_PRICE"], $restriction["PARAMS"]["MAX_PRICE"]); break; case '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByDimensions': $profileParams["RESTRICTIONS_DIMENSIONS"] = array($restriction["PARAMS"]["LENGTH"], $restriction["PARAMS"]["WIDTH"], $restriction["PARAMS"]["HEIGHT"]); $profileParams["RESTRICTIONS_MAX_SIZE"] = $restriction["PARAMS"]["MAX_DIMENSION"]; $profileParams["RESTRICTIONS_DIMENSIONS_SUM"] = $restriction["PARAMS"]["MAX_DIMENSIONS_SUM"]; break; default: break; } } $service["PROFILES"][$profileId] = $profileParams; } } unset($service["CODE"]); if (strlen($service["SID"]) > 0 && isset($handlers[$service["SID"]])) { $result = array_merge($handlers[$service["SID"]], $service); } else { $result = $service; } return $result; }
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; $lang = isset($_REQUEST['lang']) ? trim($_REQUEST['lang']) : "ru"; \Bitrix\Main\Context::getCurrent()->setLanguage($lang); Loc::loadMessages(__FILE__); $arResult = array("ERROR" => ""); if (!\Bitrix\Main\Loader::includeModule('sale')) { $arResult["ERROR"] = "Error! Can't include module \"Sale\""; } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/lib/delivery/inputs.php"; $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if (strlen($arResult["ERROR"]) <= 0 && $saleModulePermissions >= "W" && check_bitrix_sessid()) { $action = isset($_REQUEST['action']) ? trim($_REQUEST['action']) : ''; switch ($action) { case "get_group_dialog_content": $selectedGroupId = isset($_REQUEST['selectedGroupId']) ? trim($_REQUEST['selectedGroupId']) : ''; die("<table><tr><td>" . \Bitrix\Sale\Delivery\Helper::getGroupChooseControl($selectedGroupId, "DELIVERY_GROUP[]", ' size="10" style="width: 300px;"') . "</td></tr></table>"); break; case "get_restriction_params_html": $className = isset($_REQUEST['className']) ? trim($_REQUEST['className']) : ''; $params = isset($_REQUEST['params']) ? $_REQUEST['params'] : array(); $deliveryId = isset($_REQUEST['deliveryId']) ? intval($_REQUEST['deliveryId']) : 0; $sort = isset($_REQUEST['sort']) ? intval($_REQUEST['sort']) : 100; if (!$className) { throw new \Bitrix\Main\ArgumentNullException("className"); } $restriction = Services\Manager::getRestrictionObject($className); $paramsStructure = $restriction->getParamsStructure($deliveryId); $params = $restriction->prepareParamsValues($params, $deliveryId); $paramsField = "<table width='100%'>"; foreach ($paramsStructure as $name => $param) { $paramsField .= "<tr>" . "<td valign=\"top\" style=\"padding-right:20px;\">" . (strlen($param["LABEL"]) > 0 ? $param["LABEL"] . ": " : "") . "</td>" . "<td>" . \Bitrix\Sale\Internals\Input\Manager::getEditHtml("RESTRICTION[" . $name . "]", $param, isset($params[$name]) ? $params[$name] : false) . "</td>" . "</tr>";
?> </a> </td> </tr> <?php } else { ?> <tr> <td width="40%"> <?php echo Loc::getMessage("SALE_DSE_FORM_GROUP_ID"); ?> :</td> <td width="60%"> <?php echo \Bitrix\Sale\Delivery\Helper::getGroupChooseControl($fields["PARENT_ID"], "PARENT_ID"); ?> <a href="javascript:void(0);" style="border-bottom: 1px dashed; cursor: pointer; text-decoration: none;" onclick="BX.Sale.Delivery.createGroup();" > <?php echo Loc::getMessage("SALE_DSE_ADD"); ?> </a> <input type="hidden" name="GROUP_NAME" id="GROUP_NAME" value=""> </td> </tr> <?php
public static function getParamsStructure() { return array("MIN_PRICE" => array("TYPE" => "NUMBER", "DEFAULT" => "0", 'MIN' => 0, "LABEL" => Loc::getMessage("SALE_DLVR_RSTR_BY_PRICE_MIN_PRICE")), "MAX_PRICE" => array("TYPE" => "NUMBER", "DEFAULT" => "0", 'MIN' => 0, "LABEL" => Loc::getMessage("SALE_DLVR_RSTR_BY_PRICE_MAX_PRICE")), "CURRENCY" => array("TYPE" => "ENUM", "DEFAULT" => "RUB", "LABEL" => Loc::getMessage("SALE_DLVR_RSTR_BY_PRICE_CURRECY"), "OPTIONS" => \Bitrix\Sale\Delivery\Helper::getCurrenciesList())); }
echo htmlspecialcharsbx($className::getClassTitle()); ?> </option> <?php } ?> <?php } ?> </select> </td> </tr> <tr> <td><?php echo Loc::getMessage("SALE_SDL_FILTER_GROUP"); ?> :</td> <td> <?php echo \Bitrix\Sale\Delivery\Helper::getGroupChooseControl($filter_group, "filter_group", "", true); ?> </td> </tr> <?php $oFilter->Buttons(array("table_id" => $sTableID, "url" => $APPLICATION->GetCurPageParam(), "form" => "find_form")); $oFilter->End(); ?> </form> <?php $lAdmin->DisplayList(); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";