Example #1
0
		"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"),
Example #2
0
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") . ". ";
Example #3
0
	"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();

	/*
Example #4
0
     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;
     }
Example #5
0
			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"].")");
					}
Example #6
0
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;
 }
Example #8
0
    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();
Example #9
0
        $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();
?>
Example #10
0
         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>";