protected function applyBarCode($arFields, $userId) { $barCode = $arFields["BARCODE"]; $elementId = $arFields["PRODUCT_ID"]; $storeToId = isset($arFields["STORE_ID"]) ? $arFields["STORE_ID"] : 0; $storeFromId = isset($arFields["STORE_FROM"]) ? $arFields["STORE_FROM"] : 0; $storeName = CCatalogStoreControlUtil::getStoreName($storeFromId); $productInfo = CCatalogStoreControlUtil::getProductInfo($elementId); $newStore = 0; $userId = intval($userId); $result = false; $rsProps = CCatalogStoreBarCode::GetList(array(), array("BARCODE" => $barCode), false, false, array('ID', 'STORE_ID', 'PRODUCT_ID')); if ($arBarCode = $rsProps->Fetch()) { if ($storeFromId > 0) { if ($storeToId > 0) { if ($arBarCode["STORE_ID"] == $storeFromId && $arBarCode["PRODUCT_ID"] == $elementId) { $newStore = $storeToId; } else { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_WRONG_STORE_BARCODE", array("#STORE#" => '"' . $storeName . '"', "#PRODUCT#" => '"' . $productInfo["NAME"] . '"', "#BARCODE#" => '"' . $barCode . '"'))); return false; } } } else { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_BARCODE_ALREADY_EXIST", array("#PRODUCT#" => '"' . $productInfo["NAME"] . '"', "#BARCODE#" => '"' . $barCode . '"'))); return false; } if ($newStore > 0) { $result = CCatalogStoreBarCode::update($arBarCode["ID"], array("STORE_ID" => $storeToId, "MODIFIED_BY" => $userId)); } else { $result = CCatalogStoreBarCode::delete($arBarCode["ID"]); } } else { if ($storeFromId > 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("CAT_DOC_WRONG_STORE_BARCODE", array("#STORE#" => '"' . $storeName . '"', "#PRODUCT#" => '"' . $productInfo["NAME"] . '"', "#BARCODE#" => '"' . $barCode . '"'))); return false; } elseif ($storeToId > 0) { $result = CCatalogStoreBarCode::Add(array("PRODUCT_ID" => $elementId, "STORE_ID" => $storeToId, "BARCODE" => $barCode, "MODIFIED_BY" => $userId, "CREATED_BY" => $userId)); } } return $result; }
$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"]); ?> <script type="text/javascript"> var arBarCodes = new Array(); <?php if (is_array($product["BARCODE"])) { foreach ($product["BARCODE"] as $barCode) { ?> arBarCodes.push("<?php echo $barCode; ?> "); <?php } $product["BARCODE"] = ''; }