$errorMsgs = array(); Loc::loadMessages(__FILE__); Bitrix\Main\Loader::includeModule('sale'); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); $arUserGroups = $USER->GetUserGroupArray(); if ($saleModulePermissions == "D") { $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED")); } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/lib/helpers/admin/orderedit.php"; $allowedStatusesView = array(); //load order if (!empty($_REQUEST["ID"]) && intval($_REQUEST["ID"]) > 0) { $saleOrder = Bitrix\Sale\Order::load($_REQUEST["ID"]); } if ($saleOrder) { $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view')); } if (!$saleOrder || !in_array($saleOrder->getField("STATUS_ID"), $allowedStatusesView)) { LocalRedirect("/bitrix/admin/sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false)); } $ID = intval($_REQUEST["ID"]); /** @var Bitrix\Sale\Order $saleOrder */ Admin\OrderEdit::initCouponsData($saleOrder->getUserId(), $ID); CUtil::InitJSCore(); $APPLICATION->SetTitle(Loc::getMessage("SALE_OVIEW_TITLE", array("#ID#" => $saleOrder->getId(), "#NUM#" => strlen($saleOrder->getField('ACCOUNT_NUMBER')) > 0 ? $saleOrder->getField('ACCOUNT_NUMBER') : $saleOrder->getId(), "#DATE#" => $saleOrder->getDateInsert()->toString()))); \Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/admin/order_edit.js"); ob_start(); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/admin/order_history.php"; $historyContent = ob_get_contents(); ob_end_clean(); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
if ($arOneUser = $userIterator->fetch()) { $strLockUser = CUser::FormatName($strNameFormat, $arOneUser); $strLockUserInfo = '<a href="/bitrix/admin/user_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $intLockUserID . '">' . $strLockUser . '</a>'; } unset($arOneUser, $userIterator); $result->addError(new \Bitrix\Main\Entity\EntityError(GetMessage('SOE_ORDER_LOCKED2', array('#ID#' => $strLockUserInfo, '#DATE#' => $strLockTime)))); } $allowedStatusesView = array(); $order = Bitrix\Sale\Order::load($_REQUEST["ID"]); if ($order) { $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view')); } if (!$order || !in_array($order->getField("STATUS_ID"), $allowedStatusesView)) { LocalRedirect("/bitrix/admin/sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false)); } $allowedStatusesEdit = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('edit')); if (!in_array($order->getField("STATUS_ID"), $allowedStatusesEdit)) { LocalRedirect("/bitrix/admin/sale_order_view.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_")); } $userId = isset($_POST["USER_ID"]) ? intval($_POST["USER_ID"]) : $order->getUserId(); OrderEdit::initCouponsData($userId, $ID, isset($_POST["OLD_USER_ID"]) ? intval($_POST["USER_ID"]) : $userId); if (!$boolLocked) { \Bitrix\Sale\Order::lock($ID); } $isSavingOperation = $_SERVER["REQUEST_METHOD"] == "POST" && (isset($_POST["apply"]) || isset($_POST["save"])); $isRefreshDataAndSaveOperation = $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["refresh_data_and_save"]) && $_POST["refresh_data_and_save"] == "Y"; $isNeedFieldsRestore = $_SERVER["REQUEST_METHOD"] == "POST" && !$isSavingOperation && !$isRefreshDataAndSaveOperation; //save order params if (($isSavingOperation || $isNeedFieldsRestore || $isRefreshDataAndSaveOperation) && $saleModulePermissions >= "U" && check_bitrix_sessid() && $result->isSuccess()) { if ($isSavingOperation || $isRefreshDataAndSaveOperation) { $order = OrderEdit::editOrderByFormData($_POST, $order, $USER->GetID(), true, $_FILES, $result);
while (($file = readdir($handle)) !== false) { if ($file == "." || $file == "..") { continue; } if (is_file($_SERVER["DOCUMENT_ROOT"] . $strPath2Export . $file) && substr($file, strlen($file) - 4) == ".php") { $export_name = substr($file, 0, strlen($file) - 4); $arGroupActionsTmp["export_" . $export_name] = array("action" => "exportData('" . $export_name . "')", "value" => "export_" . $export_name, "name" => str_replace("#EXP#", $export_name, Loc::getMessage("SOAN_EXPORT_2"))); } } } closedir($handle); } $lAdmin->AddGroupActionTable($arGroupActionsTmp); $aContext = array(); if ($saleModulePermissions == "U") { $allowedStatusesUpdate = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($intUserID, array('update')); } if ($saleModulePermissions == "W" || $saleModulePermissions == "U" && !empty($allowedStatusesUpdate)) { $siteLID = ""; $arSiteMenu = array(); $arSitesShop = array(); $arSitesTmp = array(); $rsSites = CSite::GetList($b = "id", $o = "asc", array("ACTIVE" => "Y")); while ($arSite = $rsSites->GetNext()) { $site = Option::get("sale", "SHOP_SITE_" . $arSite["ID"], ""); if ($arSite["ID"] == $site) { $arSitesShop[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]); } $arSitesTmp[] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]); } $rsCount = count($arSitesShop);
if ($value["TYPE"] == "STRING" && !preg_match("/^\\d+\$/", $tmp)) { $filterName = "%PROPERTY_VAL_BY_CODE_" . $key; } else { $filterName = "PROPERTY_VAL_BY_CODE_" . $key; } $filterOrderProps[$filterName] = $tmp; $filterOrderPropValue[$key] = $tmp; } } } if ($saleModulePermissions < "W") { if (strlen($filter_lang) <= 0 && count($arAccessibleSites) > 0) { $arFilter["=LID"] = $arAccessibleSites; } } $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($intUserID, array('view')); if ($saleModulePermissions < "W") { if (!$arFilter["=STATUS_ID"]) { $arFilter["=STATUS_ID"] = array(); } $intersected = array_intersect($arFilter["=STATUS_ID"], $allowedStatusesView); if (!empty($arFilter["=STATUS_ID"])) { if (empty($intersected)) { $arFilter[]["=STATUS_ID"] = $arFilter["=STATUS_ID"]; $arFilter[]["=STATUS_ID"] = $allowedStatusesView; unset($arFilter["=STATUS_ID"], $arFilter["=STATUS_ID"]); } else { $arFilter["=STATUS_ID"] = $intersected; } } else { $arFilter["=STATUS_ID"] = $allowedStatusesView;
?> <input type="text" name="filter_price_to" value="<?php echo floatval($filter_price_to) > 0 ? floatval($filter_price_to) : ""; ?> " size="3"> </td> </tr> <tr> <td valign="top"><?php echo Loc::getMessage("SALE_F_STATUS"); ?> :<br /><img src="/bitrix/images/sale/mouse.gif" width="44" height="21" border="0" alt=""></td> <td valign="top"> <select name="filter_status[]" multiple size="3"> <?php $statusesList = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view')); $allStatusNames = \Bitrix\Sale\OrderStatus::getAllStatusesNames(); foreach ($statusesList as $statusCode) { if (!($statusName = $allStatusNames[$statusCode])) { continue; } ?> <option value="<?php echo htmlspecialcharsbx($statusCode); ?> "<?php if (is_array($filter_status) && in_array($statusCode, $filter_status)) { echo " selected"; } ?> >[<?php
} require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/lib/helpers/admin/orderedit.php"; //load order $boolLocked = \Bitrix\Sale\Order::isLocked($ID); if ($boolLocked) { $result->addError(new \Bitrix\Main\Entity\EntityError(OrderEdit::getLockingMessage($ID))); } $allowedStatusesView = array(); $order = Bitrix\Sale\Order::load($_REQUEST["ID"]); if ($order) { $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view')); } if (!$order || !in_array($order->getField("STATUS_ID"), $allowedStatusesView)) { LocalRedirect("/bitrix/admin/sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false)); } $allowedStatusesUpdate = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('update')); if (!in_array($order->getField("STATUS_ID"), $allowedStatusesUpdate)) { LocalRedirect("/bitrix/admin/sale_order_view.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_")); } $userId = isset($_POST["USER_ID"]) ? intval($_POST["USER_ID"]) : $order->getUserId(); OrderEdit::initCouponsData($userId, $ID, isset($_POST["OLD_USER_ID"]) ? intval($_POST["USER_ID"]) : null); if (!$boolLocked) { \Bitrix\Sale\Order::lock($ID); } $isSavingOperation = $_SERVER["REQUEST_METHOD"] == "POST" && (isset($_POST["apply"]) || isset($_POST["save"])); $isRefreshDataAndSaveOperation = $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["refresh_data_and_save"]) && $_POST["refresh_data_and_save"] == "Y"; $isNeedFieldsRestore = $_SERVER["REQUEST_METHOD"] == "POST" && !$isSavingOperation && !$isRefreshDataAndSaveOperation; //save order params if (($isSavingOperation || $isNeedFieldsRestore || $isRefreshDataAndSaveOperation) && $saleModulePermissions >= "U" && check_bitrix_sessid() && $result->isSuccess()) { if ($isSavingOperation || $isRefreshDataAndSaveOperation) { $order = OrderEdit::editOrderByFormData($_POST, $order, $USER->GetID(), true, $_FILES, $result);