/// <summary> /// Validate BOM /// </summary> /// <param name="bom">bom</param> /// <returns>true if valid</returns> private bool ValidateBOM(VAdvantage.Model.MBOM bom) { VAdvantage.Model.MBOMProduct[] BOMproducts = VAdvantage.Model.MBOMProduct.GetOfBOM(bom); for (int i = 0; i < BOMproducts.Length; i++) { VAdvantage.Model.MBOMProduct BOMproduct = BOMproducts[i]; VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_BOMProduct_ID(), Get_Trx()); if (pp.IsBOM()) { return(ValidateProduct(pp, bom.GetBOMType(), bom.GetBOMUse())); } } return(true); }
/// <summary> /// Validate BOM /// </summary> /// <param name="bom">bom</param> /// <returns>true if valid</returns> private bool ValidateBOM(VAdvantage.Model.MBOM bom) { count = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT COUNT(*) FROM AD_MODULEINFO WHERE IsActive = 'Y' AND PREFIX ='VAMFG_'")); VAdvantage.Model.MBOMProduct[] BOMproducts = VAdvantage.Model.MBOMProduct.GetOfBOM(bom); // if manufacturing module exist and BOM Componet not contain any record against this BOM then not to verify Product if (count > 0 && BOMproducts.Length == 0) { return(false); } for (int i = 0; i < BOMproducts.Length; i++) { VAdvantage.Model.MBOMProduct BOMproduct = BOMproducts[i]; VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_BOMProduct_ID(), Get_Trx()); if (pp.IsBOM()) { return(ValidateProduct(pp, bom.GetBOMType(), bom.GetBOMUse())); } } return(true); }
/// <summary> /// Validate Product /// </summary> /// <param name="product">product</param> /// <param name="BOMType"></param> /// <param name="BOMUse"></param> /// <returns>true if valid</returns> private bool ValidateProduct(VAdvantage.Model.MProduct product, String BOMType, String BOMUse) { if (!product.IsBOM()) { return(true); } // String restriction = "BOMType='" + BOMType + "' AND BOMUse='" + BOMUse + "'"; VAdvantage.Model.MBOM[] boms = VAdvantage.Model.MBOM.GetOfProduct(GetCtx(), _M_Product_ID, Get_Trx(), restriction); //VAdvantage.Model.MBOM[] boms = VAdvantage.Model.MBOM.GetOfProduct(GetCtx(), product.GetM_Product_ID(), Get_Trx(), restriction); if (boms.Length != 1) { log.Warning(restriction + " - Length=" + boms.Length); return(false); } if (_products.Contains(product)) { log.Warning(_product.GetName() + " recursively includes " + product.GetName()); return(false); } _products.Add(product); log.Fine(product.GetName()); // VAdvantage.Model.MBOM bom = boms[0]; VAdvantage.Model.MBOMProduct[] BOMproducts = VAdvantage.Model.MBOMProduct.GetOfBOM(bom); for (int i = 0; i < BOMproducts.Length; i++) { VAdvantage.Model.MBOMProduct BOMproduct = BOMproducts[i]; VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_BOMProduct_ID(), Get_Trx()); //VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_ProductBOM_ID(), Get_Trx()); if (pp.IsBOM()) { return(ValidateProduct(pp, bom.GetBOMType(), bom.GetBOMUse())); } } return(true); }
/// <summary> /// Validate BOM /// </summary> /// <param name="bom">bom</param> /// <returns>true if valid</returns> private bool ValidateBOM(VAdvantage.Model.MBOM bom) { //count = Util.GetValueOfInt(DB.ExecuteScalar(@"SELECT COUNT(*) FROM AD_MODULEINFO WHERE IsActive = 'Y' AND PREFIX ='VAMFG_'")); VAdvantage.Model.MBOMProduct[] BOMproducts = VAdvantage.Model.MBOMProduct.GetOfBOM(bom); // if manufacturing module exist and BOM Componet not contain any record against this BOM then not to verify Product //if (count > 0 && BOMproducts.Length == 0) // JID_0690: If manufaturing Module is not downloaded validate BOM Process was not working. if (BOMproducts.Length == 0) { return(false); } for (int i = 0; i < BOMproducts.Length; i++) { VAdvantage.Model.MBOMProduct BOMproduct = BOMproducts[i]; //VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_BOMProduct_ID(), Get_Trx()); VAdvantage.Model.MProduct pp = new VAdvantage.Model.MProduct(GetCtx(), BOMproduct.GetM_ProductBOM_ID(), Get_Trx()); if (pp.IsBOM() && BOMproduct.GetM_ProductBOMVersion_ID() > 0) { //return ValidateProduct(pp, bom.GetBOMType(), bom.GetBOMUse()); if (_products.Contains(pp)) { log.Warning(_product.GetName() + " recursively includes " + pp.GetName()); return(false); } _products.Add(pp); if (!pp.IsVerified()) { return(false); } } } return(true); }