/** @global CMain $APPLICATION */ define('STOP_STATISTICS', true); define('NO_AGENT_CHECK', true); define('PUBLIC_AJAX_MODE', true); use Bitrix\Main, Bitrix\Main\Localization\Loc, Bitrix\Main\Loader; require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php'); Loc::loadMessages(__FILE__); $saleRights = $APPLICATION->GetGroupRight('sale'); if ($saleRights < 'W') { require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); ShowError(Loc::getMessage('SALE_BASKET_DISCOUNT_CONVERT_ERRORS_RIGHTS')); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php'); die(); } if (!check_bitrix_sessid()) { require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); ShowError(Loc::getMessage('SALE_BASKET_DISCOUNT_CONVERT_ERRORS_INCORRECT_SESSION')); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php'); die(); } if (!Loader::includeModule('sale')) { require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); ShowError(Loc::getMessage('SALE_BASKET_DISCOUNT_CONVERT_ERRORS_MODULE_SALE_ABSENT')); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php'); die(); } if (!Loader::includeModule('catalog')) { require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); ShowError(Loc::getMessage('SALE_BASKET_DISCOUNT_CONVERT_ERRORS_MODULE_CATALOG_ABSENT')); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin.php'); die(); } /** @var $request Main\HttpRequest */ $request = Main\Context::getCurrent()->getRequest(); if ( $request->getRequestMethod() == 'GET' && ($request['operation'] == 'Y' || $request['getCount'] == 'Y' || $request['clearTags'] == 'Y') ) { CUtil::JSPostUnescape(); $filter = array(); $filter = CSaleBasketDiscountConvert::checkFilter($request); $result = array(); if ($request['operation'] == 'Y') { $params = array( 'sessID' => $request['ajaxSessionID'], 'maxExecutionTime' => $request['maxExecutionTime'], 'maxOperationCounter' => $request['maxOperationCounter'], 'counter' => $request['counter'], 'operationCounter' => $request['operationCounter'], 'lastID' => $request['lastID'] ); $basketDiscount = new CSaleBasketDiscountConvert( $params['sessID'], $params['maxExecutionTime'], $params['maxOperationCounter'] ); $basketDiscount->initStep($params['counter'], $params['operationCounter'], $params['lastID']); $basketDiscount->setFilter($filter); $basketDiscount->run(); $result = $basketDiscount->saveStep(); } if ($request['getCount'] == 'Y') { $result = array( 'counter' => CSaleBasketDiscountConvert::getFilterCounter($filter) ); } if ($request['clearTags'] == 'Y') { $adminNotifyIterator = CAdminNotify::GetList(array(), array('MODULE_ID' => 'sale', 'TAG' => 'BASKET_DISCOUNT_CONVERTED')); if ($adminNotifyIterator) { if ($adminNotify = $adminNotifyIterator->Fetch()) CAdminNotify::Delete($adminNotify['ID']); unset($adminNotify); } unset($adminNotifyIterator); } header('Content-Type: application/x-javascript; charset='.LANG_CHARSET); echo CUtil::PhpToJSObject($result, false, true); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_admin_after.php'); } else { $APPLICATION->SetTitle(Loc::getMessage('SALE_BASKET_DISCOUNT_CONVERT_PAGE_TITLE')); $ordersCounter = CSaleBasketDiscountConvert::getAllCounter(); $oneStepTime = CSaleBasketDiscountConvert::getDefaultExecutionTime(); if ($ordersCounter == 0) { $adminNotifyIterator = CAdminNotify::GetList(array(), array('MODULE_ID' => 'sale', 'TAG' => 'BASKET_DISCOUNT_CONVERTED')); if ($adminNotifyIterator) { if ($adminNotify = $adminNotifyIterator->Fetch()) CAdminNotify::Delete($adminNotify['ID']); unset($adminNotify); } unset($adminNotifyIterator); } require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php'); $tabList = array( array('DIV' => 'basketDiscountTab01', 'TAB' => Loc::getMessage('SALE_BASKET_DISCOUNT_TAB'), 'ICON' => 'sale', 'TITLE' => Loc::getMessage('SALE_BASKET_DISCOUNT_TAB_TITLE')) ); $tabControl = new CAdminTabControl('basketDiscountConvert', $tabList, true, true); CJSCore::Init(array('date')); Main\Page\Asset::getInstance()->addJs('/bitrix/js/catalog/step_operations.js'); Main\Page\Asset::getInstance()->addJs('/bitrix/js/sale/admin/step_operations.js'); $startDate = new Main\Type\DateTime(); $startDate->add('-3M'); $startDate->setTime(0,0,0); ?>