$fields = array("DELIVERY_ID" => $deliveryId, "SORT" => $sort, "PARAMS" => $params); $res = $restriction->save($fields, $restrictionId); if (!$res->isSuccess()) { $arResult["ERROR"] .= implode(".", $res->getErrorMessages()); } $arResult["HTML"] = getRestrictionHtml($deliveryId); break; case "delete_restriction": $restrictionId = isset($_REQUEST['restrictionId']) ? intval($_REQUEST['restrictionId']) : 0; $deliveryId = isset($_REQUEST['deliveryId']) ? intval($_REQUEST['deliveryId']) : 0; if (!$restrictionId) { throw new \Bitrix\Main\ArgumentNullException('restrictionId'); } $dbRes = \Bitrix\Sale\Delivery\Restrictions\Table::getById($restrictionId); if ($fields = $dbRes->fetch()) { $restriction = Services\Manager::getRestrictionObject($fields["CLASS_NAME"]); $res = $restriction->delete($restrictionId, $deliveryId); if (!$res->isSuccess()) { $arResult["ERROR"] .= implode(".", $res->getErrorMessages()); } } else { $arResult["ERROR"] .= "Can't find restriction with id: " . $restrictionId; } $arResult["HTML"] = getRestrictionHtml($deliveryId); break; default: $arResult["ERROR"] = "Error! Wrong action!"; break; } } else { if (strlen($arResult["ERROR"]) <= 0) {
$className = $record['CLASS_NAME']::getClassTitle(); } else { $className = $record['CLASS_NAME']; } } else { $className = ""; } if (!$record["PARAMS"]) { $record["PARAMS"] = array(); } $editAction = "BX.Sale.Delivery.getRestrictionParamsHtml({" . "class: '" . \CUtil::JSEscape($record["CLASS_NAME"]) . "',deliveryId: " . $ID . ",title: '" . $className . "',restrictionId: " . $record["ID"] . ",params: " . \CUtil::PhpToJSObject($record["PARAMS"]) . ",sort: " . $record["SORT"] . ",lang: '" . LANGUAGE_ID . "'" . "});"; $row =& $lAdmin->AddRow($record['ID'], $record); $row->AddField('ID', '<a href="javascript:void(0);" onclick="' . $editAction . '">' . $record['ID'] . '</a>'); $row->AddField('SORT', $record['SORT']); $row->AddField('CLASS_NAME', $className); $restriction = Services\Manager::getRestrictionObject($record['CLASS_NAME']); $paramsStructure = $restriction->getParamsStructure($ID); $record["PARAMS"] = $restriction->prepareParamsValues($record["PARAMS"], $ID); $paramsField = ""; foreach ($paramsStructure as $name => $params) { $paramsField .= (isset($params["LABEL"]) && strlen($params["LABEL"]) > 0 ? $params["LABEL"] . ": " : "") . Input\Manager::getViewHtml($params, isset($record["PARAMS"][$name]) ? $record["PARAMS"][$name] : null) . "<br>"; } $row->AddField('PARAMS', $paramsField); if ($saleModulePermissions >= "W") { $arActions = array(); $arActions[] = array("ICON" => "edit", "TEXT" => Loc::getMessage("SALE_RDL_EDIT_DESCR"), "ACTION" => $editAction, "DEFAULT" => true); $arActions[] = array("SEPARATOR" => true); $arActions[] = array("ICON" => "delete", "TEXT" => Loc::getMessage("SALE_RDL_DELETE"), "ACTION" => "javascript:if(confirm('" . Loc::getMessage("SALE_RDL_CONFIRM_DEL_MESSAGE") . "')) BX.Sale.Delivery.deleteRestriction(" . $record["ID"] . "," . $ID . ");"); $row->AddActions($arActions); } }