Exemplo n.º 1
0
            $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);
    }
}