"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));
Ejemplo n.º 2
0
 /**
  * @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"]);
        ?>