{ $bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DEDUCTION", $arUserGroups); $errorMessageTmp = ""; if (!$bUserCanDeductOrder) { $errorMessageTmp .= GetMessage("SOD_NO_PERMS2DEDUCT").". "; } if ($useStores) { //check if total ordered quantity = quantity on stores if ($errorMessageTmp == "" && $DEDUCTED == "Y") { if(!CSaleOrderHelper::checkQuantity($_POST["PRODUCT"])) if ($ex = $APPLICATION->GetException()) $errorMessageTmp .= $ex->GetString(); } //check if barcodes are valid for deduction if ($errorMessageTmp == "" && $DEDUCTED == "Y") //TODO? && $_POST["HAS_PRODUCTS_WITH_BARCODE_MULTI"] == "Y") { if(!CSaleOrderHelper::checkBarcodes($_POST["PRODUCT"])) if ($ex = $APPLICATION->GetException()) $errorMessageTmp .= $ex->GetString(); } } //updating tmp Id in the store data from the form to the basket ID if the product was added to the basket later
foreach ($arProduct["STORES"] as $arStore) { if ($arProduct["BARCODE_MULTI"] == "N") { reset($arStore["BARCODE"]); $arStore["BARCODE"] = current($arStore["BARCODE"]); unset($arStore["BARCODE_FOUND"]); } if (isset($arStore["QUANTITY"]) && intval($arStore["QUANTITY"]) > 0) { $arStoresTmp[] = $arStore; } } } $arProducts[$prodId]["STORES"] = $arStoresTmp; $arStoreInfo[$prodId] = $arStoresTmp; } if ($deducted == "Y" && $useStores) { if (!CSaleOrderHelper::checkQuantity($arProducts)) { if ($ex = $APPLICATION->GetException()) { $arResult["ERROR"] = $ex->GetString(); break; } } //check if barcodes are valid for deduction if (!CSaleOrderHelper::checkBarcodes($arProducts)) { if ($ex = $APPLICATION->GetException()) { $arResult["ERROR"] = $ex->GetString(); break; } } } if (strlen($undoReason) > 0) { $undoReason = $APPLICATION->ConvertCharset($undoReason, 'utf-8', SITE_CHARSET);