"content" => GetMessage("CAT_DOC_BARCODE"), "default" => ($requiredFields["BAR_CODE"]["required"] == 'Y') ? true : false ); } $lAdmin->AddHeaders($arHeaders); $isDisable = $bReadOnly ? " disabled" : ""; $maxId = 0; if(is_array($arResult["ELEMENT"])) { foreach($arResult["ELEMENT"] as $code => $value) { $storesTo = $storesFrom = ''; $isMultiply = 'Y' == $value["IS_MULTIPLY_BARCODE"]; $arProductInfo = CCatalogStoreControlUtil::getProductInfo($value["ELEMENT_ID"]); if(is_array($arProductInfo)) $value = array_merge($value, $arProductInfo); $arRes['ID'] = intval($code); $maxId = ($arRes['ID'] > $maxId) ? $arRes['ID'] : $maxId; foreach($arStores as $key => $val) { $selectedTo = ($value['STORE_TO'] == $val['ID']) ? " selected " : " "; $selectedFrom = ($value['STORE_FROM'] == $val['ID']) ? " selected " : " "; $store = ($val["TITLE"] != '') ? $val["TITLE"]." (".$val["ADDRESS"].")" : $val["ADDRESS"]; $storesTo .= '<option'.$selectedTo.'value="'.$val['ID'].'">'.$store.'</option>'; $storesFrom .= '<option'.$selectedFrom.'value="'.$val['ID'].'">'.$store.'</option>'; } $arRows[$arRes['ID']] = $row =& $lAdmin->AddRow($arRes['ID']); $row->AddViewField("IMAGE", CFile::ShowImage($value['DETAIL_PICTURE'], 80, 80, "border=0", "", true));
/** * @param $arFields * @return array|bool */ public static function conductDocument($arFields) { global $DB; $id = intval($arFields["ID"]); $arResult = array(); $i = 0; $dbDocElements = CCatalogStoreDocsElement::getList(array(), array("DOC_ID" => $id)); while ($arDocElement = $dbDocElements->Fetch()) { if (!self::checkAmountField($arDocElement)) { return false; } $arResult["ELEMENTS"][$i] = array("PRODUCT_ID" => $arDocElement["ELEMENT_ID"], "AMOUNT" => $arDocElement["AMOUNT"]); $arProductInfo = CCatalogProduct::GetByID($arDocElement["ELEMENT_ID"]); $newReserved = $arProductInfo["QUANTITY_RESERVED"] - $arDocElement["AMOUNT"]; if ($newReserved >= 0) { if (!CCatalogProduct::Update($arDocElement["ELEMENT_ID"], array("QUANTITY_RESERVED" => $newReserved))) { return false; } $dbAmount = $DB->Query("SELECT SUM(SP.AMOUNT) as SUM, CP.QUANTITY_RESERVED as RESERVED FROM b_catalog_store_product SP INNER JOIN b_catalog_product CP ON SP.PRODUCT_ID = CP.ID INNER JOIN b_catalog_store CS ON SP.STORE_ID = CS.ID WHERE SP.PRODUCT_ID = " . $arDocElement["ELEMENT_ID"] . " AND CS.ACTIVE = 'Y' GROUP BY QUANTITY_RESERVED ", true); if ($arAmount = $dbAmount->Fetch()) { $arFields = array(); $arFields["QUANTITY"] = doubleval($arAmount["SUM"] - $arAmount["RESERVED"]); if (!CCatalogProduct::Update($arDocElement["ELEMENT_ID"], $arFields)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_PURCHASING_INFO_ERROR")); return false; } } } else { $productInfo = CCatalogStoreControlUtil::getProductInfo($arDocElement["ELEMENT_ID"]); $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_WRONG_RESERVED_AMOUNT", array("#PRODUCT#" => '"' . $productInfo["NAME"] . '"'))); return false; } $i++; } if ($i > 0) { return true; } $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_WRONG_ELEMENT_COUNT")); return false; }
} } function fEnableSub() { if (document.getElementById('tbl_sale_order_edit')) document.getElementById('tbl_sale_order_edit').style.zIndex = 10000; } </script> <?php if ($ID > 0) { $arSelect = array("ID", "DOC_ID", "STORE_FROM", "STORE_TO", "ELEMENT_ID", "AMOUNT", "PURCHASING_PRICE", "IS_MULTIPLY_BARCODE"); $dbResult = CCatalogStoreDocsElement::GetList(array(), array('DOC_ID' => $ID), false, false, $arSelect); while ($product = $dbResult->GetNext()) { $docElementId = $product["ID"]; $product = array_merge($product, CCatalogStoreControlUtil::getProductInfo($product["ELEMENT_ID"])); $product["BARCODE"] = ''; if ($product["IS_MULTIPLY_BARCODE"] == 'N') { $dbBarCode = CCatalogStoreBarCode::getList(array(), array("PRODUCT_ID" => $product["ELEMENT_ID"])); if ($arBarCode = $dbBarCode->GetNext()) { $product["BARCODE"] = $arBarCode["BARCODE"]; } } elseif ($product["IS_MULTIPLY_BARCODE"] == 'Y') { $dbBarCodes = CCatalogStoreDocsBarcode::getList(array(), array("DOC_ELEMENT_ID" => $docElementId)); while ($arBarCode = $dbBarCodes->GetNext()) { $product["BARCODE"][] = $arBarCode["BARCODE"]; } } $storeFromName = CCatalogStoreControlUtil::getStoreName($product["STORE_FROM"]); $storeToName = CCatalogStoreControlUtil::getStoreName($product["STORE_TO"]); ?>