getSelfFolderUrl(); $listUrl = $selfFolderUrl."sale_cashbox_list.php?lang=" . $lang; $listUrl = $adminSidePanelHelper->editUrlToPublicPage($listUrl); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED")); Loc::loadMessages(__FILE__); \Bitrix\Main\Loader::includeModule('sale'); \Bitrix\Main\Loader::includeModule('ui'); \Bitrix\Main\UI\Extension::load('ui.buttons.icons'); \Bitrix\Main\UI\Extension::load('ui.forms'); $instance = Application::getInstance(); $context = $instance->getContext(); $request = $context->getRequest(); $server = $context->getServer(); $lang = $context->getLanguage(); $documentRoot = Application::getDocumentRoot(); $isCloud = Loader::includeModule("bitrix24"); $zone = ''; if (!$isCloud && Loader::includeModule('intranet')) { $zone = \CIntranetUtils::getPortalZone(); } \Bitrix\Sale\Cashbox\Cashbox::init(); $id = (int)$request->get('ID'); $cashboxObject = null; $cashbox = [ 'ID' => null, 'NAME' => null, 'HANDLER' => '', 'OFD' => null, 'EMAIL' => null, 'NUMBER_KKM' => null, 'KKM_ID' => null, 'ACTIVE' => null, 'USE_OFFLINE' => null, 'SORT' => null, 'OFD_SETTINGS' => null, ]; $errorMessage = ''; if ($server->getRequestMethod() == "POST" && ($request->get('save') !== null || $request->get('apply') !== null) && $saleModulePermissions == "W" && check_bitrix_sessid() ) { $adminSidePanelHelper->decodeUriComponent($request); $cashbox = array( 'NAME' => $request->get('NAME'), 'HANDLER' => $request->getPost('HANDLER'), 'OFD' => $request->getPost('OFD'), 'EMAIL' => $request->getPost('EMAIL'), 'NUMBER_KKM' => $request->getPost('NUMBER_KKM') ?: '', 'KKM_ID' => $request->get('KKM_ID') ?: '', 'ACTIVE' => ($request->get('ACTIVE') == 'Y') ? 'Y' : 'N', 'USE_OFFLINE' => ($request->get('USE_OFFLINE') == 'Y') ? 'Y' : 'N', 'SORT' => $request->getPost('SORT') ?: 100, 'OFD_SETTINGS' => $request->getPost('OFD_SETTINGS') ?: array(), ); /** @var Cashbox\Cashbox $handler */ $handler = $cashbox['HANDLER']; if (empty($handler)) { $errorMessage .= GetMessage('ERROR_NO_HANDLER')."
\n"; } else { $handlerList = Cashbox\Cashbox::getHandlerList(); if (!isset($handlerList[$cashbox['HANDLER']])) { $errorMessage .= GetMessage('ERROR_NO_HANDLER_EXIST')."
\n"; } } if ($errorMessage) { $adminSidePanelHelper->sendJsonErrorResponse($errorMessage); } if (class_exists($handler)) { $cashbox['SETTINGS'] = $handler::extractSettingsFromRequest($request); } $cashboxObject = Cashbox\Cashbox::create($cashbox); $result = $cashboxObject->validate(); if (!$result->isSuccess()) { foreach ($result->getErrors() as $error) { $errorMessage .= $error->getMessage()."
\n"; } } if ($errorMessage === '') { if ($id > 0) { $result = Cashbox\Manager::update($id, $cashbox); if ($result->isSuccess()) { $service = Cashbox\Manager::getObjectById($id); AddEventToStatFile('sale', 'updateCashbox', $id, $service::getCode()); } } else { $cashbox['ENABLED'] = 'Y'; $result = Cashbox\Manager::add($cashbox); $id = $result->getId(); if ($result->isSuccess()) { $service = Cashbox\Manager::getObjectById($id); AddEventToStatFile('sale', 'addCashbox', $id, $service::getCode()); } } if ($result->isSuccess()) { if ($adminSidePanelHelper->isAjaxRequest()) { $adminSidePanelHelper->sendSuccessResponse("base", array("ID" => $id)); } else { if ($request->getPost("apply") == '') { $adminSidePanelHelper->localRedirect($listUrl); LocalRedirect($listUrl); } else { $applyUrl = $selfFolderUrl."sale_cashbox_edit.php?lang=".$lang."&ID=".$id; $applyUrl = $adminSidePanelHelper->setDefaultQueryParams($applyUrl); LocalRedirect($applyUrl); } } } else { $errorMessage .= implode("\n", $result->getErrorMessages()); } } else { $adminSidePanelHelper->sendJsonErrorResponse($errorMessage); } } elseif ($id > 0) { $cashboxObject = Cashbox\Manager::getObjectById($id); } require($documentRoot."/bitrix/modules/main/include/prolog_admin_after.php"); Page\Asset::getInstance()->addJs("/bitrix/js/sale/cashbox.js"); $APPLICATION->SetTitle(($id > 0) ? Loc::getMessage("SALE_CASHBOX_EDIT_RECORD", array("#ID#" => $id)) : Loc::getMessage("SALE_CASHBOX_NEW_RECORD")); $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("SALE_TAB_CASHBOX"), "ICON" => "sale", "TITLE" => GetMessage("SALE_TAB_CASHBOX_DESCR"), ) ); if ($id > 0 && !$request->isPost()) { $res = \Bitrix\Sale\Cashbox\Internals\CashboxTable::getList(array('filter' => array('ID' => $id))); $cashbox = $res->fetch(); } $requireFields = array(); if (class_exists($cashbox['HANDLER'])) { $requireFields = $cashbox['HANDLER']::getGeneralRequiredFields(); } $isCashboxPaySystem = ($cashboxObject && Cashbox\Manager::isPaySystemCashbox($cashboxObject->getField('HANDLER'))); if ($id > 0 && $cashboxObject && !$isCashboxPaySystem) { $aTabs[] = array( "DIV" => "edit2", "TAB" => GetMessage("SALE_CASHBOX_RESTRICTION"), "ICON" => "sale", "TITLE" => GetMessage("SALE_CASHBOX_RESTRICTION_DESC"), ); } $aTabs[] = array( "DIV" => "edit3", "TAB" => GetMessage("SALE_CASHBOX_TAB_TITLE_SETTINGS"), "ICON" => "sale", "TITLE" => GetMessage("SALE_CASHBOX_TAB_TITLE_SETTINGS_DESC"), ); $aTabs[] = array( "DIV" => "edit4", "TAB" => GetMessage("SALE_CASHBOX_TAB_TITLE_OFD_SETTINGS"), "ICON" => "sale", "TITLE" => GetMessage("SALE_CASHBOX_TAB_TITLE_OFD_SETTINGS_DESC"), ); $tabControl = new CAdminForm("tabControl", $aTabs); $restrictionsHtml = ''; if ($id > 0 && !$isCashboxPaySystem) { ob_start(); require_once($documentRoot."/bitrix/modules/sale/admin/cashbox_restrictions_list.php"); $restrictionsHtml = ob_get_contents(); ob_end_clean(); } $aMenu = array( array( "TEXT" => Loc::getMessage("SALE_CASHBOX_2FLIST"), "LINK" => $listUrl, "ICON" => "btn_list" ) ); if ($id > 0 && $saleModulePermissions >= "W" && !$isCashboxPaySystem) { $aMenu[] = array("SEPARATOR" => "Y"); $deleteUrl = $selfFolderUrl."sale_cashbox_list.php?action=delete&ID[]=".$id."&lang=".$context->getLanguage()."&".bitrix_sessid_get()."#tb"; $buttonAction = "LINK"; if ($adminSidePanelHelper->isPublicFrame()) { $deleteUrl = $adminSidePanelHelper->editUrlToPublicPage($deleteUrl); $buttonAction = "ONCLICK"; } $aMenu[] = array( "TEXT" => Loc::getMessage("SALE_DELETE_CASHBOX"), $buttonAction => "javascript:if(confirm('".Loc::getMessage("SPSN_DELETE_CASHBOX_CONFIRM")."')) top.window.location.href='".$deleteUrl."';", "WARNING" => "Y", "ICON" => "btn_delete" ); } $contextMenu = new CAdminContextMenu($aMenu); $contextMenu->Show(); if ($errorMessage !== '') CAdminMessage::ShowMessage(array("DETAILS"=>$errorMessage, "TYPE"=>"ERROR", "MESSAGE"=>Loc::getMessage("SALE_CASHBOX_ERROR"), "HTML"=>true)); $valuePrecision = (int)Config\Option::get('sale', 'value_precision'); if ($valuePrecision > 2) { $note = BeginNote(); $note .= Loc::getMessage('SALE_CASHBOX_NOTE_VALUE_PRECISION'); $note .= EndNote(); echo $note; } $tabControl->BeginEpilogContent(); echo GetFilterHiddens("filter_"); echo bitrix_sessid_post(); ?>