Ejemplo n.º 1
0
 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"] = '';
        }