publicMode; $selfFolderUrl = $adminPage->getSelfFolderUrl(); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED")); IncludeModuleLangFile(__FILE__); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php"); Page\Asset::getInstance()->addJs("/bitrix/js/sale/cashbox.js"); CJSCore::Init(array('clipboard')); $tableId = "tbl_sale_cashbox"; $instance = \Bitrix\Main\Application::getInstance(); $context = $instance->getContext(); $lang = $context->getLanguage(); $request = $context->getRequest(); $oSort = new CAdminUiSorting($tableId, "ID", "asc"); $lAdmin = new CAdminUiList($tableId, $oSort); $filterFields = array( array( "id" => "NAME", "name" => GetMessage("SALE_CASHBOX_NAME"), "filterable" => "%", "quickSearch" => "%", "default" => true ), array( "id" => "ACTIVE", "name" => GetMessage("SALE_F_ACTIVE"), "type" => "list", "items" => array( "Y" => GetMessage("SALE_YES"), "N" => GetMessage("SALE_NO") ), "filterable" => "", "default" => true ) ); $filter = array(); $lAdmin->AddFilter($filterFields, $filter); if (($ids = $lAdmin->GroupAction()) && $saleModulePermissions >= "W") { if ($request->get('action_target')=='selected') { $ids = array(); $dbRes = \Bitrix\Sale\Cashbox\Internals\CashboxTable::getList( array( 'select' => array('ID'), 'filter' => $filter, 'order' => array(ToUpper($by) => ToUpper($order)) ) ); while ($arResult = $dbRes->fetch()) $ids[] = $arResult['ID']; } foreach ($ids as $id) { if ((int)$id <= 0) { continue; } switch ($_REQUEST['action']) { case "delete": if ($id == \Bitrix\Sale\Cashbox\Cashbox1C::getId()) { $lAdmin->AddGroupError(GetMessage("SPSAN_ERROR_DELETE_1C"), $id); continue 2; } $service = Cashbox\Manager::getObjectById($id); if (Cashbox\Manager::isPaySystemCashbox($service->getField('HANDLER'))) { $lAdmin->AddGroupError( GetMessage( "SPSAN_ERROR_DELETE_CASHBOX_PAYSYSTEM", [ "#CASHBOX_NAME#" => $service::getName(), ] ), $id ); continue 2; } $result = Cashbox\Manager::delete($id); if (!$result->isSuccess()) { if ($result->getErrorMessages()) $lAdmin->AddGroupError(join(', ', $result->getErrorMessages()), $id); else $lAdmin->AddGroupError(GetMessage("SPSAN_ERROR_DELETE"), $id); } else { AddEventToStatFile('sale', 'deleteCashbox', '', $service::getCode()); } break; case "activate": case "deactivate": $service = Cashbox\Manager::getObjectById($id); if (Cashbox\Manager::isPaySystemCashbox($service->getField('HANDLER'))) { $lAdmin->AddGroupError( GetMessage( "SPSAN_ERROR_ACTIVE_CASHBOX_PAYSYSTEM", [ "#CASHBOX_NAME#" => $service::getName(), ] ), $id ); continue 2; } $arFields = array( "ACTIVE" => ($_REQUEST['action'] == 'activate') ? 'Y' : 'N' ); $result = Cashbox\Manager::update($id, $arFields); if (!$result->isSuccess()) { if ($result->getErrorMessages()) $lAdmin->AddGroupError(join(', ', $result->getErrorMessages()), $id); else $lAdmin->AddGroupError(GetMessage("SPSAN_ERROR_UPDATE"), $id); } break; } } if ($lAdmin->hasGroupErrors()) { $adminSidePanelHelper->sendJsonErrorResponse($lAdmin->getGroupErrors()); } else { $adminSidePanelHelper->sendSuccessResponse(); } } $params = array( 'select' => array('*'), 'filter' => $filter ); global $by, $order; $by = isset($by) ? $by : "ID"; $order = isset($order) ? $order : "ASC"; $params['order'] = array($by => $order); $dbResultList = new CAdminUiResult(\Bitrix\Sale\Cashbox\Internals\CashboxTable::getList($params), $tableId); $dbResultList->NavStart(); $headers = array( array("id" => "ID", "content" => GetMessage("SALE_CASHBOX_ID"), "sort" => "ID", "default" => true), array("id" => "NAME", "content" => GetMessage("SALE_CASHBOX_NAME"), "sort" => "NAME", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("SALE_CASHBOX_ACTIVE"), "sort" => "ACTIVE", "default" => true), array("id" => "SORT", "content" => GetMessage("SALE_CASHBOX_SORT"), "sort" => "SORT", "default" => true), array("id" => "DATE_CREATE", "content" => GetMessage("SALE_CASHBOX_DATE_CREATE"), "sort" => "DATE_CREATE", "default" => true), array("id" => "NUMBER_KKM", "content" => GetMessage("SALE_CASHBOX_NUMBER_KKM"), "sort" => "KKM_ID", "default" => true), array("id" => "ENABLED", "content" => GetMessage("SALE_CASHBOX_LAST_CHECK_STATUS"), "sort" => "ENABLED", "default" => true), array("id" => "DATE_LAST_CHECK", "content" => GetMessage("SALE_CASHBOX_DATE_LAST_CHECK"), "default" => true), ); $lAdmin->SetNavigationParams($dbResultList, array("BASE_LINK" => $selfFolderUrl."sale_cashbox_list.php")); $lAdmin->AddHeaders($headers); $visibleHeaders = $lAdmin->GetVisibleHeaderColumns(); while ($cashbox = $dbResultList->Fetch()) { $editUrl = $selfFolderUrl."sale_cashbox_edit.php?ID=".$cashbox['ID']."&lang=".LANGUAGE_ID; $editUrl = $adminSidePanelHelper->editUrlToPublicPage($editUrl); $row =& $lAdmin->AddRow($cashbox['ID'], $cashbox, $editUrl, GetMessage("SALE_EDIT_DESCR")); $row->AddField("ID", "".$cashbox['ID'].""); $row->AddField("NAME", htmlspecialcharsbx($cashbox['NAME'])); $row->AddField("ACTIVE", (($cashbox['ACTIVE']=="Y") ? GetMessage("SALE_YES") : GetMessage("SALE_NO"))); $row->AddField("SORT", $cashbox['SORT']); $row->AddField("DATE_CREATE", $cashbox['DATE_CREATE']); $row->AddField("NUMBER_KKM", htmlspecialcharsbx($cashbox['NUMBER_KKM'])); $enabled = $cashbox['ENABLED'] === 'Y' ? 'Y' : 'N'; $row->AddField("ENABLED", GetMessage("SALE_CASHBOX_LAST_CHECK_STATUS_".$enabled)); $row->AddField("DATE_LAST_CHECK", $cashbox['DATE_LAST_CHECK']); $arActions = array( array( "ICON" => "edit", "TEXT" => GetMessage("SALE_CASHBOX_EDIT"), "TITLE" => GetMessage("SALE_CASHBOX_EDIT_DESCR"), "LINK" => $editUrl, "DEFAULT" => true, ), ); if ( $saleModulePermissions >= "W" && !Cashbox\Manager::isPaySystemCashbox($cashbox['HANDLER']) ) { $arActions[] = array("SEPARATOR" => true); $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("SALE_CASHBOX_DELETE"), "TITLE" => GetMessage("SALE_CASHBOX_DELETE_DESCR"), "ACTION" => "if(confirm('".GetMessage('SALE_CASHBOX_DELETE_CONFIRM', array('#CASHBOX_ID#' => $cashbox['ID']))."')) ".$lAdmin->ActionDoGroup($cashbox['ID'], "delete"), ); } $row->AddActions($arActions); } if ($saleModulePermissions == "W") { $lAdmin->AddGroupActionTable( array( "delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), "activate" => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), "deactivate" => GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"), ) ); $addUrl = $selfFolderUrl."sale_cashbox_edit.php?lang=".$lang; $addUrl = $adminSidePanelHelper->editUrlToPublicPage($addUrl); $aContext = array( array( "TEXT" => GetMessage("SALE_CASHBOX_ADD_NEW"), "LINK" => $addUrl, "ICON" => "btn_new", ) ); if (!$publicMode) { $aContext[] = array( "TEXT" => GetMessage("SALE_CASHBOX_GENERATE_LINK"), "ICON" => "btn_new", 'ONCLICK' => 'BX.Sale.Cashbox.generateConnectionLink()' ); /** @global CUser $USER */ global $USER; if($USER->CanDoOperation("install_updates")) { $aContext[] = array( "TEXT" => GetMessage("SALE_MARKETPLACE_ADD_NEW"), "TITLE" => GetMessage("SALE_MARKETPLACE_ADD_NEW_ALT"), "LINK" => "update_system_market.php?category=149&lang=".LANGUAGE_ID, "ICON" => "btn" ); } } $lAdmin->setContextSettings(array("pagePath" => $selfFolderUrl."sale_cashbox_list.php")); $lAdmin->AddAdminContextMenu($aContext); } $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("SALE_CASHBOX_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); if (!$publicMode && \Bitrix\Sale\Update\CrmEntityCreatorStepper::isNeedStub()) { $APPLICATION->IncludeComponent("bitrix:sale.admin.page.stub", ".default"); } else { ?>