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
{
?>