Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
							$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);
								}
Exemplo n.º 3
0
 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));
 }
Exemplo n.º 4
0
            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;
}
Exemplo n.º 5
0
                     $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);
             }
         }