"TEXT" => GetMessage("SOE_TO_UNLOCK"), "LINK" => "/bitrix/admin/sale_order_new.php?ID=".$ID."&unlock=Y&lang=".LANGUAGE_ID.GetFilterParams("filter_"), ); } $link = urlencode(DeleteParam(array("mode"))); $link = urlencode($APPLICATION->GetCurPage())."?mode=settings".($link <> "" ? "&".$link: ""); $bUserCanViewOrder = CSaleOrder::CanUserViewOrder($ID, $arUserGroups, $intUserID); $bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $arUserGroups, $LID); $bUserCanDeleteOrder = CSaleOrder::CanUserDeleteOrder($ID, $arUserGroups, $intUserID); $bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($ID, $arUserGroups, $intUserID); $bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DEDUCTION", $arUserGroups); $bUserCanMarkOrder = CSaleOrder::CanUserMarkOrder($ID, $arUserGroups, $intUserID); $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "P", $arUserGroups); $bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "D", $arUserGroups); if ($bUserCanViewOrder && $ID > 0) { $aMenu[] = array( "TEXT" => GetMessage("NEWO_DETAIL"), "TITLE"=>GetMessage("NEWO_DETAIL_TITLE"), "LINK" => "/bitrix/admin/sale_order_detail.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_") ); } if ($ID > 0) { $aMenu[] = array( "TEXT" => GetMessage("NEWO_TO_PRINT"), "TITLE"=>GetMessage("NEWO_TO_PRINT_TITLE"),
if ($PARTIAL_SUBMIT == "Y") { $bVarsFromForm = true; $arInd = array(); $ids = array(); $allIDs = array(); $arIDs = explode(",", trim($_POST["BASKET_IDS"])); foreach ($arIDs as $v) { $ids[] = $v; $allIDs[] = $v; } } $bUserCanViewOrder = CSaleOrder::CanUserViewOrder($ID, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); $bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $GLOBALS["USER"]->GetUserGroupArray()); $bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($ID, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "P", $GLOBALS["USER"]->GetUserGroupArray()); $bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "D", $GLOBALS["USER"]->GetUserGroupArray()); $bUserCanDeleteOrder = CSaleOrder::CanUserDeleteOrder($ID, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); $simpleForm = COption::GetOptionString("sale", "lock_catalog", "Y"); $bSimpleForm = $simpleForm == "Y" ? True : False; if ($action == "update" && $saleModulePermissions >= "U" && $_SERVER["REQUEST_METHOD"] == "POST" && check_bitrix_sessid() && $bUserCanEditOrder && $PARTIAL_SUBMIT != "Y" && empty($dontsave)) { // ***************************************************************** // ***** Preparing *********************************************** // ***************************************************************** $bTrabsactionStarted = False; // Order params $currentDate = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))); $dbOrderTmp = CSaleOrder::GetList(array(), array("ID" => $ID)); //GetByID($ID); $arOrder = $dbOrderTmp->Fetch(); if (!$arOrder) { $errorMessage .= GetMessage("SOE_NO_ORDER") . ". ";
"CC_CHARGE_OFF" => GetMessage("SOD_FROM_CARD"), "OUT_CHARGE_OFF" => GetMessage("SOD_INPUT"), "ORDER_UNPAY" => GetMessage("SOD_CANCEL_PAYMENT"), "ORDER_CANCEL_PART" => GetMessage("SOD_CANCEL_SEMIPAYMENT"), "MANUAL" => GetMessage("SOD_HAND"), "DEL_ACCOUNT" => GetMessage("SOD_DELETE"), "AFFILIATE" => GetMessage("SOD1_AFFILIATES_PAY"), ); $bUserCanViewOrder = CSaleOrder::CanUserViewOrder($ID, $arUserGroups, $intUserID); $bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $arUserGroups); $bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($ID, $arUserGroups, $intUserID); $bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DEDUCTION", $arUserGroups); $bUserCanMarkOrder = CSaleOrder::CanUserMarkOrder($ID, $arUserGroups, $intUserID); $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_PAYMENT", $arUserGroups); $bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DELIVERY", $arUserGroups); $bUserCanDeleteOrder = CSaleOrder::CanUserDeleteOrder($ID, $arUserGroups, $intUserID); if (isset($_REQUEST["ORDER_AJAX"]) AND $_REQUEST["ORDER_AJAX"] == "Y" AND check_bitrix_sessid()) { CUtil::DecodeUriComponent($_REQUEST); $type = $_REQUEST["type"]; $order = CSaleOrder::getById($ID); $allowIds = \Bitrix\Main\Config\Option::get("sale", "p2p_status_list", ""); if(strlen($allowIds)) $allowIds = unserialize($allowIds); else $allowIds = array(); /*
if (!$bUserCanDeliverOrder) { break; } $arAdditionalFields = array(); if ($status_id && CSaleOrder::CanUserChangeOrderStatus($id, $status_id, $GLOBALS["USER"]->GetUserGroupArray())) { $arAdditionalFields = array("STATUS_ID" => $status_id); } $deliver = isset($_REQUEST['deliver']) ? trim($_REQUEST['deliver']) : ''; if ($deliver) { $result = CSaleOrder::DeliverOrder($id, $deliver, 0, $arAdditionalFields); } elseif (!empty($arAdditionalFields)) { $result = CSaleOrder::Update($id, $arAdditionalFields); } break; case "order_pay": $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($id, "PERM_PAYMENT", $GLOBALS["USER"]->GetUserGroupArray()); if (!$bUserCanPayOrder) { break; } $payed = isset($_REQUEST['payed']) ? trim($_REQUEST['payed']) : 'N'; $pay_from_account = isset($_REQUEST['pay_from_account']) ? trim($_REQUEST['pay_from_account']) : 'N'; $pay_from_account_back = isset($_REQUEST['pay_from_account_back']) ? trim($_REQUEST['pay_from_account_back']) : 'N'; $arAdditionalFields = array(); if ($status_id && CSaleOrder::CanUserChangeOrderStatus($id, $status_id, $GLOBALS["USER"]->GetUserGroupArray())) { $arAdditionalFields = array("STATUS_ID" => $status_id); } $bWithdraw = true; $bPay = true; if ($_REQUEST["pay_from_account"] == "Y") { $bPay = false; }
while($arStatusListTmp = $dbStatusListTmp->Fetch()) { $arStatusList[$arStatusListTmp["ID"]] = "[".$arStatusListTmp["ID"]."] ".$arStatusListTmp["NAME"]; } $row->AddSelectField("STATUS_ID", $arStatusList); } } $row->AddField("PRICE_DELIVERY", htmlspecialcharsex(SaleFormatCurrency($arOrder["PRICE_DELIVERY"], $arOrder["CURRENCY"]))); $fieldValue = ""; if (in_array("ALLOW_DELIVERY", $arVisibleColumns)) { if ($row->bEditMode != true || $row->bEditMode == true && !CSaleOrder::CanUserChangeOrderFlag($f_ID, "PERM_DELIVERY", $arUserGroups)) { $fieldValue .= "<span id=\"allow_deliv_".$arOrder["ID"]."\">".(($arOrder["ALLOW_DELIVERY"] == "Y") ? GetMessage("SO_YES") : GetMessage("SO_NO"))."</span>"; $fieldValueTmp = $arOrder["DATE_ALLOW_DELIVERY"]; if (strlen($arOrder["DATE_ALLOW_DELIVERY"]) > 0) { if (IntVal($arOrder["EMP_ALLOW_DELIVERY_ID"]) > 0) { if (!isset($LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]]) || empty($LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]])) { $dbUser = CUser::GetByID($arOrder["EMP_ALLOW_DELIVERY_ID"]); if ($arUser = $dbUser->Fetch()) $LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]] = htmlspecialcharsEx($arUser["NAME"].((strlen($arUser["NAME"])<=0 || strlen($arUser["LAST_NAME"])<=0) ? "" : " ").$arUser["LAST_NAME"]." (".$arUser["LOGIN"].")"); }
define('NO_AGENT_CHECK', true); define("NO_AGENT_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); define('DisableEventsCheck', true); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; CComponentUtil::__IncludeLang(dirname($_SERVER["SCRIPT_NAME"]), "/ajax.php"); if (!CModule::IncludeModule('sale')) { die(GetMessage("SMODE_SALE_NOT_INSTALLED")); } if (!CModule::IncludeModule('mobileapp')) { die(GetMessage('SMODE_MOBILEAPP_NOT_INSTALLED')); } $arResult = array(); $arUserGroups = $USER->GetUserGroupArray(); $orderId = isset($_REQUEST['orderId']) ? trim($_REQUEST['orderId']) : 0; $bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_DEDUCTION", $arUserGroups); if ($USER->IsAuthorized() && check_bitrix_sessid() && $bUserCanDeductOrder) { $action = isset($_REQUEST['action']) ? trim($_REQUEST['action']) : ''; switch ($action) { case "order_deduct": $deducted = isset($_REQUEST['deducted']) ? trim($_REQUEST['deducted']) : ''; $useStores = isset($_REQUEST['useStores']) && trim($_REQUEST['useStores']) == 'Y' ? true : false; $undoReason = isset($_REQUEST['undoReason']) ? trim($_REQUEST['undoReason']) : ''; $arProducts = isset($_REQUEST['products']) ? $_REQUEST['products'] : array(); $arProducts = $APPLICATION->ConvertCharsetArray($arProducts, 'utf-8', SITE_CHARSET); $arStoreInfo = array(); foreach ($arProducts as $prodId => $arProduct) { $arStoresTmp = array(); if (isset($arProduct["STORES"]) && is_array($arProduct["STORES"])) { foreach ($arProduct["STORES"] as $arStore) { if ($arProduct["BARCODE_MULTI"] == "N") {
/** * @param $id * @param bool $value * @param array $storeData * @return Sale\Result * @throws Main\ObjectNotFoundException * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\NotSupportedException */ public static function shipment($id, $value, array $storeData = array()) { global $USER; $result = new Sale\Result(); /** @var Sale\Order $order */ if ($order = Sale\Order::load($id)) { /** @var Sale\Basket $basket */ if (!($basket = $order->getBasket())) { throw new Main\ObjectNotFoundException('Entity "Basket" not found'); } /** @var Sale\ShipmentCollection $shipmentCollection */ if (!($shipmentCollection = $order->getShipmentCollection())) { throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found'); } /** @var Sale\Shipment $shipment */ foreach ($shipmentCollection as $shipment) { if ($shipment->isSystem()) { continue; } /** @var Sale\ShipmentItemCollection $shipmentItemCollection */ if (!($shipmentItemCollection = $shipment->getShipmentItemCollection())) { throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found'); } /** @var Sale\Result $r */ $r = static::fillShipmentItemCollectionFromRequest($shipmentItemCollection, $storeData, $basket); if (!$r->isSuccess()) { $result->addErrors($r->getErrors()); return $result; } if (!\CSaleOrder::CanUserChangeOrderFlag($id, "PERM_DEDUCTION", $USER->GetUserGroupArray())) { $result->addError(new Sale\ResultError(Main\Localization\Loc::getMessage('SALE_COMPATIBLE_ORDER_DEDUCT_NO_PERMISSION'), 'SALE_COMPATIBLE_ORDER_DEDUCT_NO_PERMISSION')); return $result; } /** @var Sale\Result $r */ $r = $shipment->setField('DEDUCTED', $value === true ? 'Y' : 'N'); if (!$r->isSuccess()) { $result->addErrors($r->getErrors()); continue; } } } /** @var Sale\Result $r */ $r = $order->save(); if (!$r->isSuccess()) { $result->addErrors($r->getErrors()); } return $result; }
if (!isset($arParams['MENU_ITEMS']['STATUS_CHANGE']) || $arParams['MENU_ITEMS']['STATUS_CHANGE'] != false) { $arResult['MENU_ITEMS'] = array("STATUS_CHANGE"); } $arStatusesData = array(); foreach ($arResult['STATUSES'] as $key => $status) { $arStatusesData[$status["ID"]] = $status["~NAME"]; } $arResult["DAILOG"]["STATUSES"] = array("ITEMS" => $arStatusesData, "TITLE" => GetMessage('SMOD_STATUS'), "RADIO_NAME" => "radio_statuses", "SELECTED" => $arResult['ORDER']['STATUS_ID']); } $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_PAYMENT", $GLOBALS["USER"]->GetUserGroupArray()); if ($bUserCanPayOrder && (!isset($arParams['MENU_ITEMS']['PAYMENT']) || $arParams['MENU_ITEMS']['PAYMENT'] != false)) { $arResult['MENU_ITEMS'][] = "PAYMENT"; } $bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_DELIVERY", $GLOBALS["USER"]->GetUserGroupArray()); if ($bUserCanDeliverOrder && (!isset($arParams['MENU_ITEMS']['DELIVERY']) || $arParams['MENU_ITEMS']['DELIVERY'] != false)) { $arResult['MENU_ITEMS'][] = "DELIVERY"; } $bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_DEDUCTION", $GLOBALS["USER"]->GetUserGroupArray()); if ($bUserCanDeductOrder && (!isset($arParams['MENU_ITEMS']['DEDUCTION']) || $arParams['MENU_ITEMS']['DEDUCTION'] != false)) { $arResult['MENU_ITEMS'][] = "DEDUCTION"; } $bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($orderId, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); if ($bUserCanCancelOrder && (!isset($arParams['MENU_ITEMS']['ORDER_CANCEL']) || $arParams['MENU_ITEMS']['ORDER_CANCEL'] != false)) { $arResult['MENU_ITEMS'][] = "ORDER_CANCEL"; } if (isset($arParams["SHOW_UPPER_BUTTONS"]) && $arParams["SHOW_UPPER_BUTTONS"] != 'Y') { $arResult["SHOW_UPPER_BUTTONS"] = false; } else { $arResult["SHOW_UPPER_BUTTONS"] = true; } $this->IncludeComponentTemplate();
$arResult['STATUSES'][] = $arStatusListTmp; } if (!isset($arParams['MENU_ITEMS']['STATUS_CHANGE']) || $arParams['MENU_ITEMS']['STATUS_CHANGE'] != false) { $arResult['MENU_ITEMS'] = array("STATUS_CHANGE"); } $arStatusesData = array(); foreach ($arResult['STATUSES'] as $key => $status) { $arStatusesData[$status["ID"]] = $status["~NAME"]; } $arResult["DAILOG"]["STATUSES"] = array("ITEMS" => $arStatusesData, "TITLE" => GetMessage('SMOD_STATUS'), "RADIO_NAME" => "radio_statuses", "SELECTED" => $arResult['ORDER']['STATUS_ID']); } $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_PAYMENT", $GLOBALS["USER"]->GetUserGroupArray()); if ($bUserCanPayOrder && (!isset($arParams['MENU_ITEMS']['PAYMENT']) || $arParams['MENU_ITEMS']['PAYMENT'] != false)) { $arResult['MENU_ITEMS'][] = "PAYMENT"; } $bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($orderId, "PERM_DELIVERY", $GLOBALS["USER"]->GetUserGroupArray()); if ($bUserCanDeliverOrder && (!isset($arParams['MENU_ITEMS']['DELIVERY']) || $arParams['MENU_ITEMS']['DELIVERY'] != false)) { $arResult['MENU_ITEMS'][] = "DELIVERY"; } $bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($orderId, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); if ($bUserCanCancelOrder && (!isset($arParams['MENU_ITEMS']['ORDER_CANCEL']) || $arParams['MENU_ITEMS']['ORDER_CANCEL'] != false)) { $arResult['MENU_ITEMS'][] = "ORDER_CANCEL"; } if (isset($arParams["SHOW_UPPER_BUTTONS"]) && $arParams["SHOW_UPPER_BUTTONS"] != 'Y') { $arResult["SHOW_UPPER_BUTTONS"] = false; } else { $arResult["SHOW_UPPER_BUTTONS"] = true; } $this->IncludeComponentTemplate(); ?>
if ($saleModulePermissions < "W") { $arFilter["GROUP_ID"] = $GLOBALS["USER"]->GetUserGroupArray(); $arFilter["PERM_STATUS"] = "Y"; } $arStatusList = array(); $dbStatusListTmp = CSaleStatus::GetList(array("SORT" => "ASC"), $arFilter, $arGroupByTmpS, false, array("ID", "NAME", "SORT")); while ($arStatusListTmp = $dbStatusListTmp->Fetch()) { $arStatusList[$arStatusListTmp["ID"]] = "[" . $arStatusListTmp["ID"] . "] " . $arStatusListTmp["NAME"]; } $row->AddSelectField("STATUS_ID", $arStatusList); } } $row->AddField("PRICE_DELIVERY", htmlspecialcharsex(SaleFormatCurrency($arOrder["PRICE_DELIVERY"], $arOrder["CURRENCY"]))); $fieldValue = ""; if (in_array("ALLOW_DELIVERY", $arVisibleColumns)) { if ($row->bEditMode != true || $row->bEditMode == true && !CSaleOrder::CanUserChangeOrderFlag($f_ID, "PERM_DELIVERY", $GLOBALS["USER"]->GetUserGroupArray())) { $fieldValue .= "<span id=\"allow_deliv_" . $arOrder["ID"] . "\">" . ($arOrder["ALLOW_DELIVERY"] == "Y" ? GetMessage("SO_YES") : GetMessage("SO_NO")) . "</span>"; $fieldValueTmp = $arOrder["DATE_ALLOW_DELIVERY"]; if (strlen($arOrder["DATE_ALLOW_DELIVERY"]) > 0) { if (IntVal($arOrder["EMP_ALLOW_DELIVERY_ID"]) > 0) { if (!isset($LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]]) || empty($LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]])) { $dbUser = CUser::GetByID($arOrder["EMP_ALLOW_DELIVERY_ID"]); if ($arUser = $dbUser->Fetch()) { $LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]] = htmlspecialcharsEx($arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"] . " (" . $arUser["LOGIN"] . ")"); } } $fieldValueTmp .= "<br />[<a href=\"/bitrix/admin/user_edit.php?ID=" . $arOrder["EMP_ALLOW_DELIVERY_ID"] . "&lang=" . LANG . "\">" . $arOrder["EMP_ALLOW_DELIVERY_ID"] . "</a>] "; $fieldValueTmp .= $LOCAL_PAYED_USER_CACHE[$arOrder["EMP_ALLOW_DELIVERY_ID"]]; } if (!$bExport) { $fieldValue .= "<script type=\"text/javascript\">\n\t\t\t\t\t\tnew top.BX.CHint({\n\t\t\t\t\t\t\tparent: top.BX('allow_deliv_" . $arOrder["ID"] . "'),\n\t\t\t\t\t\t\tshow_timeout: 10,\n\t\t\t\t\t\t\thide_timeout: 100,\n\t\t\t\t\t\t\tdx: 2,\n\t\t\t\t\t\t\tpreventHide: true,\n\t\t\t\t\t\t\tmin_width: 250,\n\t\t\t\t\t\t\thint: '" . CUtil::JSEscape($fieldValueTmp) . "'\n\t\t\t\t\t\t});\n\t\t\t\t\t</script>";