function fChangeOrderStatus($ID, $STATUS_ID) { global $APPLICATION; global $crmMode; $errorMessageTmp = ""; $STATUS_ID = trim($STATUS_ID); if (strlen($STATUS_ID) <= 0) $errorMessageTmp .= GetMessage("ERROR_NO_STATUS").". "; if ('' == $errorMessageTmp) { if (!CSaleOrder::CanUserChangeOrderStatus($ID, $STATUS_ID, $GLOBALS["USER"]->GetUserGroupArray())) $errorMessageTmp .= GetMessage("SOD_NO_PERMS2STATUS").". "; } if ('' == $errorMessageTmp) { if (!CSaleOrder::StatusOrder($ID, $STATUS_ID)) { if ($ex = $APPLICATION->GetException()) { if ($ex->GetID() != "ALREADY_FLAG") $errorMessageTmp .= $ex->GetString(); } else $errorMessageTmp .= GetMessage("ERROR_CHANGE_STATUS").". "; } } $arResult = array( 'STATUS_ERR' => false, 'STATUS_ERR_MESS' => '', ); $dbOrder = CSaleOrder::GetList( array("ID" => "DESC"), array("ID" => $ID), false, false, array("DATE_STATUS", "EMP_STATUS_ID", "STATUS_ID") ); if ($arOrder = $dbOrder->Fetch()) { $arResult["DATE_STATUS"] = $arOrder["DATE_STATUS"]; if (!$crmMode && IntVal($arOrder["EMP_STATUS_ID"]) > 0) $arResult["EMP_STATUS_ID"] = GetFormatedUserName($arOrder["EMP_STATUS_ID"], false); $arResult["STATUS_ID"] = $arOrder["STATUS_ID"]; } if ('' != $errorMessageTmp) { $arResult['STATUS_ERR'] = true; $arResult['STATUS_ERR_MESS'] = $errorMessageTmp; } return $arResult; }
$lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_CANCEL_GROUP")), $ID); } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_CANCEL_GROUP_CANCEL_N")), $ID); } break; default: if(substr($_REQUEST['action'], 0, strlen("status_")) == "status_") { $statusID = substr($_REQUEST['action'], strlen("status_")); if(strlen($statusID) > 0) { $arStatus = CSaleStatus::GetByID($statusID); if(CSaleOrder::CanUserChangeOrderStatus($ID, $statusID, $arUserGroups)) { if($arAffectedOrders[$ID]["STATUS_ID"] != $statusID) { if (!CSaleOrder::StatusOrder($ID, $statusID)) { if ($ex = $APPLICATION->GetException()) $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS", Array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])).": ".$ex->GetString(), $ID); else $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS", Array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])), $ID); } } else { $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS_ALREADY", Array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])), $ID); }
if (strlen($errorMessage) <= 0) { $STATUS_ID = Trim($STATUS_ID); if (strlen($STATUS_ID) <= 0) $errorMessage .= GetMessage("ERROR_NO_STATUS").". "; } */ if (CSaleOrder::IsLocked($ID, $lockedBY, $dateLock)) { $errorMessage .= str_replace("#DATE#", "{$dateLock}", str_replace("#ID#", "{$lockedBY}", GetMessage("SOE_ORDER_LOCKED"))) . ". "; } $STATUS_ID = Trim($STATUS_ID); if (strlen($STATUS_ID) <= 0) { $errorMessage .= GetMessage("ERROR_NO_STATUS") . ". "; } if (strlen($errorMessage) <= 0) { if (!CSaleOrder::CanUserChangeOrderStatus($ID, $STATUS_ID, $GLOBALS["USER"]->GetUserGroupArray())) { $errorMessage .= GetMessage("SOD_NO_PERMS2STATUS") . ". "; } } if (strlen($errorMessage) <= 0) { if (!CSaleOrder::StatusOrder($ID, $STATUS_ID)) { if ($ex = $APPLICATION->GetException()) { $errorMessage .= $ex->GetString(); } else { $errorMessage .= GetMessage("ERROR_CHANGE_STATUS") . ". "; } } } if (strlen($errorMessage) <= 0) { LocalRedirect("sale_order_detail.php?ID=" . $ID . "&result=ok_status&lang=" . LANG . GetFilterParams("filter_", false)); }
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; } if ($payed == "N" && $_REQUEST["pay_from_account_back"] != "Y") { $bWithdraw = false; } $result = CSaleOrder::PayOrder($id, $payed, $bWithdraw, $bPay, 0, $arAdditionalFields); break; } echo $result; }
$lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_ERROR_CANCEL_GROUP")), $ID); } } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_CANCEL_GROUP")), $ID); } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_CANCEL_GROUP_CANCEL_N")), $ID); } break; default: if (substr($_REQUEST['action'], 0, strlen("status_")) == "status_") { $statusID = substr($_REQUEST['action'], strlen("status_")); if (strlen($statusID) > 0) { $arStatus = CSaleStatus::GetByID($statusID); if (CSaleOrder::CanUserChangeOrderStatus($ID, $statusID, $GLOBALS["USER"]->GetUserGroupArray())) { if ($arAffectedOrders[$ID]["STATUS_ID"] != $statusID) { if (!CSaleOrder::StatusOrder($ID, $statusID)) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS", array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])) . ": " . $ex->GetString(), $ID); } else { $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS", array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])), $ID); } } } else { $lAdmin->AddGroupError(GetMessage("SOA_ERROR_STATUS_ALREADY", array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])), $ID); } } else { $lAdmin->AddGroupError(GetMessage("SOA_PERMS_STATUS_GROUP", array("#ID#" => $ID, "#STATUS#" => $arStatus["NAME"])), $ID); } }