GetGroupRight("sale"); if($saleModulePermissions == "D") $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED")); $statusesList = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('delete')); if($saleModulePermissions < "W" && empty($statusesList)) { LocalRedirect("sale_order_archive.php?lang=".LANGUAGE_ID); } $res = false; if($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["archive"]=="Y" && check_bitrix_sessid()) { CUtil::JSPostUnescape(); @set_time_limit(0); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php"); $timeLimit = null; $filter = array(); if(isset($_REQUEST["site_id"]) && $_REQUEST["site_id"] != "") $nextStep["SITE_ID"] = $_REQUEST["site_id"]; if (isset($_POST['archive_status_id'])) { $filter["STATUS_ID"] = array(); foreach ($_POST['archive_status_id'] as $key=>$status) { if ($saleModulePermissions == "W" || in_array($status[$key], $statusesList)) { $filter["STATUS_ID"][] = $status[$key]; } } } if($_POST['archive_payed'] <> '') { $filter["=PAYED"] = $_POST['archive_payed']; } if($_POST['archive_canceled'] <> '') { $filter["=CANCELED"] = $_POST['archive_canceled']; } if($_POST['archive_deducted'] <> '') { $filter["=DEDUCTED"] = $_POST['archive_deducted']; } if (isset($_POST['archive_site'])) { foreach ($_POST['archive_site'] as $key=>$site) { $filter["LID"][] = $site[$key]; } } if ((int)($_POST['archive_period']) > 0) { $date = new Type\DateTime(); $latestDate = $date->add('-'.(int)$_POST['archive_period'].' day'); $filter['<=DATE_INSERT'] = $latestDate; } if (isset($_POST['archive_count_execution'])) { $timeLimit = (int)$_POST['archive_count_execution']; } unset($filter['PERIOD']); if ($saleModulePermissions == 'P') { $userCompanyList = Sale\Services\Company\Manager::getUserCompanyList($USER->GetID()); $filter[] = array( "LOGIC" => "OR", '=RESPONSIBLE_ID' => $USER->GetID(), '=COMPANY_ID' => $userCompanyList, ); } if ( ($_POST['archive_blocked_order_accept'] !== 'Y' && $saleModulePermissions == "W") || $saleModulePermissions < "W" ) { $filter[] = array( "LOGIC" => "OR", '=LOCKED_BY' => $USER->GetID(), array( "=DATE_LOCK" => null, '=LOCKED_BY' => null, ) ); } $resultArchiving = Sale\Archive\Manager::archiveOrders($filter, 200, $timeLimit); $dataResult = $resultArchiving->getData(); $count = (int)$dataResult['count']; if($_POST['countArchived'] <> '') { $count += (int)$_POST['countArchived']; } if($resultArchiving->isSuccess() && $dataResult['count'] > 0) { CAdminMessage::ShowMessage(array( "MESSAGE"=>Loc::getMessage("ARCHIVE_IN_PROGRESS"), "DETAILS"=>Loc::getMessage("ARCHIVE_TOTAL")." ".$count."
".Loc::getMessage("SEARCH_REINDEX_NEXT_STEP")."", "HTML"=>true, "TYPE"=>"PROGRESS", )); ?> Loc::getMessage("ARCHIVE_COMPLETE"), "DETAILS"=>Loc::getMessage("ARCHIVE_TOTAL")." ".$count."", "HTML"=>true, "TYPE"=>"OK", )); if (!$resultArchiving->isSuccess()) { $errorList = $resultArchiving->getErrorMessages(); foreach ($errorList as $error) { CAdminMessage::ShowMessage(array( "MESSAGE"=>$error, "TYPE"=>"ERROR", )); } } } require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin_js.php"); } else { $APPLICATION->SetTitle(Loc::getMessage("ARCHIVE_TITLE")); $aTabs = array( array("DIV" => "edit1", "TAB" => Loc::getMessage("ARCHIVE_TAB"), "ICON"=>"main_user_edit"), ); $tabControl = new CAdminTabControl("tabControl", $aTabs, true, true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?>
Begin(); $tabControl->BeginNextTab(); $filterValues = Option::get('sale', 'archive_params'); $filterValues = unserialize($filterValues, ['allowed_classes' => false]); $countExecutionOrders = Option::get('sale', 'archive_time_limit', false); if(!$countExecutionOrders) { $countExecutionOrders = 10; } ?>