protected static function getDeliveryChildrenList() { static $result = null; if ($result === null) { $result = array(); foreach (Delivery\Services\Manager::getActiveList() as $dlvId => $dlvParams) { $parentId = intval($dlvParams["PARENT_ID"]); if (!isset($result[$parentId])) { $result[$parentId] = array(); } $result[$parentId][] = $dlvId; } } return $result; }
$propertySettings += $locationSettings; if ($property['IS_LOCATION'] != 'Y' || $property['MULTIPLE'] == 'Y') { // TODO unset($propertySettings['INPUT_FIELD_LOCATION']); } } // RELATION SETTINGS /////////////////////////////////////////////////////////////////////////////////////////////////// // payment system options $paymentOptions = array(); $result = CSalePaySystem::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME", "ACTIVE", "SORT", "LID")); while ($row = $result->Fetch()) { $paymentOptions[$row['ID']] = $row['NAME'] . ($row['LID'] ? " ({$row['LID']}) " : ' ') . "[{$row['ID']}]"; } // delivery system options $deliveryOptions = array(); foreach (\Bitrix\Sale\Delivery\Services\Manager::getActiveList(true) as $deliveryId => $deliveryFields) { $name = $deliveryFields["NAME"] . " [" . $deliveryId . "]"; $sites = \Bitrix\Sale\Delivery\Restrictions\Manager::getSitesByServiceId($deliveryId); if (!empty($sites)) { $name .= " (" . implode(", ", $sites) . ")"; } $deliveryOptions[$deliveryId] = $name; } $relationsSettings = array('P' => array('TYPE' => 'ENUM', 'LABEL' => Loc::getMessage('SALE_PROPERTY_PAYSYSTEM'), 'OPTIONS' => $paymentOptions, 'MULTIPLE' => 'Y', 'SIZE' => '5'), 'D' => array('TYPE' => 'ENUM', 'LABEL' => Loc::getMessage('SALE_PROPERTY_DELIVERY'), 'OPTIONS' => $deliveryOptions, 'MULTIPLE' => 'Y', 'SIZE' => '5')); // VALIDATE AND SAVE POST ////////////////////////////////////////////////////////////////////////////////////////////// if ($_SERVER['REQUEST_METHOD'] == 'POST' && (isset($_POST["apply"]) || isset($_POST["save"])) && bitrix_sessid()) { // validate property foreach ($propertySettings as $name => $input) { if ($error = Input\Manager::getError($input, $property[$name])) { if ($input['MULTIPLE'] && $input['MULTIPLE'] == 'Y') { $errorString = '';
$arUGroupsEx = array(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while ($arUGroups = $dbUGroups->Fetch()) { $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"]; } $arPaySystems = array("" => GetMessage("SALE_1C_NO")); $dbPaySystems = CSalePaySystem::GetList(array("SORT" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME")); $arPaySystemsWithoutInner = array("" => GetMessage("SALE_1C_NO")); while ($arPaySystem = $dbPaySystems->Fetch()) { $arPaySystems[$arPaySystem["ID"]] = "[" . $arPaySystem["ID"] . "] " . $arPaySystem["NAME"]; if ($arPaySystem["ID"] != Bitrix\Sale\PaySystem\Manager::getInnerPaySystemId()) { $arPaySystemsWithoutInner[$arPaySystem["ID"]] = "[" . $arPaySystem["ID"] . "] " . $arPaySystem["NAME"]; } } $shipmentServices = array("" => GetMessage("SALE_1C_NO")); $deliveryList = \Bitrix\Sale\Delivery\Services\Manager::getActiveList(); foreach ($deliveryList as $shipmentService) { $shipmentServices[$shipmentService["ID"]] = "[" . $shipmentService["ID"] . "] " . $shipmentService["NAME"]; } $arAllOptions = array(array("1C_SALE_SITE_LIST", GetMessage("SALE_1C_SITE_LIST"), "", array("list", $arSites)), array("1C_IMPORT_NEW_ORDERS", GetMessage("SALE_1C_IMPORT_NEW_ORDERS"), "N", array("checkbox")), array("1C_SITE_NEW_ORDERS", GetMessage("SALE_1C_SITE_NEW_ORDERS"), "s1", array("list", $arSites)), array("1C_SALE_ACCOUNT_NUMBER_SHOP_PREFIX", GetMessage("SALE_1C_SALE_ACCOUNT_NUMBER_SHOP_PREFIX"), "", array("text")), array("1C_EXPORT_PAYED_ORDERS", GetMessage("SALE_1C_EXPORT_PAYED_ORDERS"), "", array("checkbox")), array("1C_EXPORT_ALLOW_DELIVERY_ORDERS", GetMessage("SALE_1C_EXPORT_ALLOW_DELIVERY_ORDERS"), "", array("checkbox")), array("1C_CHANGE_STATUS_FROM_1C", GetMessage("SALE_1C_CHANGE_STATUS_FROM_1C"), "", array("checkbox")), array("1C_EXPORT_FINAL_ORDERS", GetMessage("SALE_1C_EXPORT_FINAL_ORDERS"), "", array("list", $arStatuses)), array("1C_FINAL_STATUS_ON_DELIVERY", GetMessage("SALE_1C_FINAL_STATUS_ON_DELIVERY"), "F", array("list", $arStatuses)), array("1C_REPLACE_CURRENCY", GetMessage("SALE_1C_REPLACE_CURRENCY"), GetMessage("SALE_1C_RUB"), array("text")), array("1C_IMPORT_DEFAULT_PS", GetMessage("SALE_1C_IMPORT_DEFAULT_PS_C"), "", array("list", $arPaySystems)), array("1C_IMPORT_DEFAULT_PS_B", GetMessage("SALE_1C_IMPORT_DEFAULT_PS_B"), "", array("list", $arPaySystems)), array("1C_IMPORT_DEFAULT_PS_A", GetMessage("SALE_1C_IMPORT_DEFAULT_PS_A"), "", array("list", $arPaySystems)), array("1C_IMPORT_DEFAULT_PS_ORDER_PAID", GetMessage("SALE_1C_IMPORT_DEFAULT_PS_ORDER_PAID"), "", array("list", $arPaySystemsWithoutInner)), array("1C_IMPORT_DEFAULT_SHIPMENT_SERVICE", GetMessage("SALE_1C_IMPORT_DEFAULT_SHIPMENT_SERVICE"), "", array("list", $shipmentServices)), array("1C_IMPORT_UPDATE_BASKET_QUANTITY", GetMessage("SALE_1C_IMPORT_UPDATE_BASKET_QUANTITY"), "", array("checkbox")), array("1C_IMPORT_NEW_PAYMENT", GetMessage("SALE_1C_IMPORT_NEW_PAYMENT"), "", array("checkbox")), array("1C_IMPORT_NEW_SHIPMENT", GetMessage("SALE_1C_IMPORT_NEW_SHIPMENT"), "", array("checkbox")), array("1C_IMPORT_NEW_ORDER_NEW_SHIPMENT", GetMessage("SALE_1C_IMPORT_NEW_ORDER_NEW_SHIPMENT"), "", array("checkbox")), array("1C_SALE_GROUP_PERMISSIONS", GetMessage("SALE_1C_GROUP_PERMISSIONS"), "1", array("mlist", 5, $arUGroupsEx)), array("1C_SALE_USE_ZIP", GetMessage("SALE_1C_USE_ZIP"), "Y", array("checkbox")), array("1C_INTERVAL", GetMessage("SALE_1C_INTERVAL"), 30, array("text", 20)), array("1C_FILE_SIZE_LIMIT", GetMessage("SALE_1C_FILE_SIZE_LIMIT"), 200 * 1024, array("text", 20))); if ($REQUEST_METHOD == "POST" && strlen($Update) > 0 && $CAT_RIGHT >= "W" && check_bitrix_sessid()) { $allOptionCount = count($arAllOptions); for ($i = 0; $i < $allOptionCount; $i++) { $name = $arAllOptions[$i][0]; $val = $_REQUEST[$name]; if ($arAllOptions[$i][3][0] == "checkbox" && $val != "Y") { $val = "N"; } if ($arAllOptions[$i][3][0] == "mlist" && is_array($val)) { $val = implode(",", $val); }