GetGroupRight('sale') < 'W'; if ($readOnly) $APPLICATION->AuthForm(GetMessage('ACCESS_DENIED')); use Bitrix\Sale\Internals\StatusTable, Bitrix\Sale\Internals\StatusLangTable, Bitrix\Sale\Internals\StatusGroupTaskTable, Bitrix\Main\Loader, Bitrix\Main\TaskTable, Bitrix\Main\GroupTable, Bitrix\Main\Localization\Loc, Bitrix\Main\Localization\LanguageTable; Loader::includeModule('sale'); Loc::loadMessages(__FILE__); Loc::loadMessages(__DIR__.'/task_description.php'); // initialise variables $statusId = $_REQUEST['ID'] ? $DB->ForSql($_REQUEST['ID'], 2) : null; $status = array(); // TYPE, SORT, NOTIFY $translations = array(); // LID => LID, NAME, DESCRIPTION $groupTasks = array(); // GROUP_ID => GROUP_ID, TASK_ID $languages = array(); // LID => NAME $groups = array(); // ID => NAME $errors = array(); $tasks = array(); // ID => TASK $result = TaskTable::getList(array( 'select' => array('*'), 'filter' => array('=MODULE_ID' => 'sale', '=BINDING' => 'status'), )); while ($row = $result->fetch()) $tasks[$row['ID']] = $row; asort($tasks); $statusFields = StatusTable::getEntity()->getFields(); $statusLangFields = StatusLangTable::getEntity()->getFields(); // get languages $result = LanguageTable::getList(array( 'select' => array('LID', 'NAME'), 'filter' => array('=ACTIVE' => 'Y') )); while ($row = $result->fetch()) $languages[$row['LID']] = $row['NAME']; // get groups $saleGroupIds = array(); $result = $APPLICATION->GetGroupRightList(array('MODULE_ID' => 'sale', 'G_ACCESS' => 'U')); while ($row = $result->Fetch()) if ($row['GROUP_ID'] > 2) $saleGroupIds[] = $row['GROUP_ID']; if ($saleGroupIds) { $result = GroupTable::getList(array( 'select' => array('ID', 'NAME'), 'filter' => array('=ID' => $saleGroupIds), 'order' => array('C_SORT' => 'ASC', 'ID' => 'ASC'), )); while ($row = $result->fetch()) $groups[$row['ID']] = $row['NAME']; } // A D D / U P D A T E ///////////////////////////////////////////////////////////////////////////////////////////////// if ($_SERVER['REQUEST_METHOD'] == 'POST' && !$readOnly && check_bitrix_sessid() && ($_POST['save'] || $_POST['apply'])) { // prepare & check status $status = array( 'TYPE' => $_POST['TYPE'] == 'O' ? 'O' : 'D', 'SORT' => ($statusSort = intval($_POST['SORT'])) ? $statusSort : 100, 'NOTIFY' => $_POST['NOTIFY'] ? 'Y' : 'N', ); $result = new \Bitrix\Main\Entity\Result; if ($statusId) { $sid = $statusId; StatusTable::checkFields($result, $statusId, $status); } else { $sid = $status['ID'] = trim($_POST['NEW_ID']); StatusTable::checkFields($result, null, $status); } $errors = $result->getErrorMessages(); // prepare & check translations foreach ($languages as $languageId => $languageName) { $translationName = trim($_REQUEST['NAME_'.$languageId]); $translations[$languageId] = array( 'STATUS_ID' => $sid, 'LID' => $languageId, 'NAME' => $translationName, 'DESCRIPTION' => trim($_REQUEST['DESCRIPTION_'.$languageId]), ); if (! $translationName) $errors[] = Loc::getMessage('ERROR_NO_NAME')." [$languageId] ".htmlspecialcharsbx($languageName); } // prepare & check group tasks foreach ($groups as $groupId => $groupName) { $taskId = $_REQUEST['TASK'.$groupId]; $groupTasks[$groupId] = array( 'STATUS_ID' => $sid, 'GROUP_ID' => $groupId, 'TASK_ID' => $taskId, ); if (! $tasks[$taskId]) $errors[] = Loc::getMessage('SSEN_INVALID_TASK_ID_FOR').' '.$groupName; } // add or update status if (! $errors) { // update status, delete translations and group tasks if ($statusId) { $result = StatusTable::update($statusId, $status); if ($result->isSuccess()) { StatusLangTable::deleteByStatus($statusId); StatusGroupTaskTable::deleteByStatus($statusId); } else $errors = $result->getErrorMessages(); } // add new status, create mail template else { $result = StatusTable::add($status); if ($result->isSuccess()) { $statusId = $status['ID']; CSaleStatus::CreateMailTemplate($statusId); } else $errors = $result->getErrorMessages(); } } // add translations and group tasks, redirect if (! $errors) { foreach ($translations as $data) StatusLangTable::add($data); foreach ($groupTasks as $data) StatusGroupTaskTable::add($data); if ($_POST['save']) LocalRedirect('sale_status.php?lang='.LANGUAGE_ID.GetFilterParams('filter_', false)); } } // L O A D O R N E W ///////////////////////////////////////////////////////////////////////////////////////////////// else if ($statusId) { if ($row = StatusTable::getList(array( 'select' => array('*'), 'filter' => array('=ID' => $statusId), 'limit' => 1, ))->fetch()) { $status = $row; $result = StatusLangTable::getList(array( 'select' => array('*'), 'filter' => array('=STATUS_ID' => $statusId), )); while ($row = $result->fetch()) $translations[$row['LID']] = $row; $result = StatusGroupTaskTable::getList(array( 'select' => array('*'), 'filter' => array('=STATUS_ID' => $statusId), )); while ($row = $result->fetch()) $groupTasks[$row['GROUP_ID']] = $row; } else { $status['ID'] = $statusId; $statusId = null; } } // V I E W ///////////////////////////////////////////////////////////////////////////////////////////////////////////// if($statusId) $APPLICATION->SetTitle(Loc::getMessage('SALE_EDIT_RECORD', array('#ID#' => $statusId))); else $APPLICATION->SetTitle(Loc::getMessage('SALE_NEW_RECORD')); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); $aMenu = array( array( "TEXT" => Loc::getMessage("SSEN_2FLIST"), "ICON" => "btn_list", "LINK" => "/bitrix/admin/sale_status.php?lang=".LANGUAGE_ID.GetFilterParams("filter_") ) ); if ($statusId && !$readOnly) { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "TEXT" => Loc::getMessage("SSEN_NEW_STATUS"), "ICON" => "btn_new", "LINK" => "/bitrix/admin/sale_status_edit.php?lang=".LANGUAGE_ID.GetFilterParams("filter_") ); $aMenu[] = array( "TEXT" => Loc::getMessage("SSEN_DELETE_STATUS"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('".GetMessageJS("SSEN_DELETE_STATUS_CONFIRM")."')) window.location='/bitrix/admin/sale_status.php?action=delete&ID[]=".urlencode($statusId)."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."#tb';", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); if ($errors) CAdminMessage::ShowMessage(implode('
', $errors)); ?>

Fatal error: Uncaught Error: Call to undefined function GetFilterHiddens() in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\distr\admin\status_edit.php:231 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\sale\distr\admin\status_edit.php on line 231