getSelfFolderUrl(); $listUrl = $selfFolderUrl."cat_contractor_list.php?lang=".LANGUAGE_ID; $listUrl = $adminSidePanelHelper->editUrlToPublicPage($listUrl); CModule::IncludeModule("catalog"); $publicMode = $adminPage->publicMode || $adminSidePanelHelper->isPublicSidePanel(); $accessController = AccessController::getCurrent(); if ($publicMode) { $hasAccess = $accessController->check(ActionDictionary::ACTION_INVENTORY_MANAGEMENT_ACCESS); $bReadOnly = false; } else { $hasAccess = $accessController->check(ActionDictionary::ACTION_CATALOG_READ) || $accessController->check(ActionDictionary::ACTION_STORE_VIEW) ; $bReadOnly = !$accessController->check(ActionDictionary::ACTION_STORE_VIEW); } if (!$hasAccess) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } if (Manager::getActiveProvider()) { LocalRedirect($listUrl); } if ($ex = $APPLICATION->GetException()) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $strError = $ex->GetString(); ShowError($strError); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); die(); } IncludeModuleLangFile(__FILE__); ClearVars(); $errorMessage = ""; $bVarsFromForm = false; $ID = (isset($_REQUEST["ID"]) ? (int)$_REQUEST["ID"] : 0); $typeReadOnly = false; $userId = (int)$USER->GetID(); $typeList = Catalog\ContractorTable::getTypeDescriptions(); if ($_SERVER["REQUEST_METHOD"] == "POST" && check_bitrix_sessid() && $_REQUEST["Update"] <> '' && !$bReadOnly) { $adminSidePanelHelper->decodeUriComponent(); if ($PERSON_TYPE == Catalog\ContractorTable::TYPE_INDIVIDUAL) $INN = $KPP = $COMPANY = ''; $PERSON_NAME = ($_REQUEST["PERSON_NAME"] == GetMessage("CONTRACTOR_NAME")) ? '' : $_REQUEST["PERSON_NAME"]; $PERSON_LASTNAME = ($_REQUEST["PERSON_LASTNAME"] == GetMessage("CONTRACTOR_LAST_NAME")) ? '' : $_REQUEST["PERSON_LASTNAME"]; $PERSON_MIDDLENAME = ($_REQUEST["PERSON_MIDDLENAME"] == GetMessage("CONTRACTOR_SECOND_NAME")) ? '' : $_REQUEST["PERSON_MIDDLENAME"]; $arFields = Array( "PERSON_TYPE" => $PERSON_TYPE, "SITE_ID" => SITE_ID, "PERSON_NAME" => $PERSON_NAME, "PERSON_LASTNAME" => $PERSON_LASTNAME, "PERSON_MIDDLENAME" => $PERSON_MIDDLENAME, "EMAIL" => $_REQUEST["EMAIL"], "PHONE" => $_REQUEST["PHONE"], "POST_INDEX" => $_REQUEST["POST_INDEX"], "COUNTRY" => $_REQUEST["COUNTRY"], "CITY" => $XML_ID, "INN" => $INN, "KPP" => $KPP, "COMPANY" => $COMPANY, "ADDRESS" => $ADDRESS, "CREATED_BY" => $userId, "MODIFIED_BY" => $userId, ); $DB->StartTransaction(); if ($errorMessage == '' && $ID > 0 && $res = CCatalogContractor::update($ID, $arFields)) { $ID = $res; $DB->Commit(); $adminSidePanelHelper->sendSuccessResponse("base", array("ID" => $ID)); if ($_REQUEST["apply"] == '') { $adminSidePanelHelper->localRedirect($listUrl); LocalRedirect($listUrl); } else { $applyUrl = $selfFolderUrl."cat_contractor_edit.php?lang=".LANGUAGE_ID."&ID=".$ID; $applyUrl = $adminSidePanelHelper->setDefaultQueryParams($applyUrl); LocalRedirect($applyUrl); } } elseif ($errorMessage == '' && $ID == 0 && $res = CCatalogContractor::Add($arFields)) { $ID = $res; $DB->Commit(); $adminSidePanelHelper->sendSuccessResponse("base", array("ID" => $ID)); if ($_REQUEST["apply"] == '') { $adminSidePanelHelper->localRedirect($listUrl); LocalRedirect($listUrl); } else { $applyUrl = $selfFolderUrl."cat_contractor_edit.php?lang=".LANGUAGE_ID."&ID=".$ID; $applyUrl = $adminSidePanelHelper->setDefaultQueryParams($applyUrl); LocalRedirect($applyUrl); } } else { $bVarsFromForm = true; $errorMessage = $APPLICATION->GetException()->GetString(); $DB->Rollback(); $adminSidePanelHelper->sendJsonErrorResponse($errorMessage); } } if ($ID > 0) $APPLICATION->SetTitle(str_replace("#ID#", $ID, GetMessage("CONTRACTOR_TITLE_UPDATE"))); else $APPLICATION->SetTitle(GetMessage("CONTRACTOR_TITLE_ADD")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $str_ACTIVE = "Y"; if ($ID > 0) { $arSelect = array( "ID", "PERSON_TYPE", "SITE_ID", "PERSON_NAME", "EMAIL", "PHONE", "POST_INDEX", "COUNTRY", "CITY", "COMPANY", "INN", "KPP", "ADDRESS", ); $dbResult = CCatalogContractor::GetList(array(),array('ID' => $ID),false,false,$arSelect); if (!$dbResult->ExtractFields("str_")) $ID = 0; } if ($bVarsFromForm) $DB->InitTableVarsForEdit("b_catalog_contractor", "", "str_"); if(isset($str_ADDRESS)) $str_ADDRESS = (trim($str_ADDRESS) != '') ? $str_ADDRESS : ''; $str_PERSON_TYPE = (int)($str_PERSON_TYPE ?? CONTRACTOR_INDIVIDUAL); $aMenu = array( array( "TEXT" => GetMessage("CONTRACTOR_LIST"), "ICON" => "btn_list", "LINK" => $listUrl ) ); if ($ID > 0 && !$bReadOnly) { $aMenu[] = array("SEPARATOR" => "Y"); $addUrl = $selfFolderUrl."cat_contractor_edit.php?lang=".LANGUAGE_ID; $addUrl = $adminSidePanelHelper->editUrlToPublicPage($addUrl); $aMenu[] = array( "TEXT" => GetMessage("CONTRACTOR_NEW"), "ICON" => "btn_new", "LINK" => $addUrl ); $deleteUrl = $selfFolderUrl."cat_contractor_list.php?action=delete&ID[]=".$ID."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."#tb"; if ($adminSidePanelHelper->isPublicFrame()) { $deleteUrl = $adminSidePanelHelper->editUrlToPublicPage($deleteUrl); } $aMenu[] = array( "TEXT" => GetMessage("CONTRACTOR_DELETE"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('".GetMessage("CONTRACTOR_DELETE_CONFIRM")."')) top.window.location='".$deleteUrl."';", "WARNING" => "Y" ); } $context = new CAdminContextMenu($aMenu); $context->Show(); ?>