internal static AssyMcpProduct NewAssyMcpProduct(McpBom entity, ProductDetail prodDetail) { try { AssyMcpProduct mcpProduct = new AssyMcpProduct(); mcpProduct.LineID = entity.LINE_ID; mcpProduct.ProductID = entity.FINAL_PROD_ID; mcpProduct.Process = prodDetail.Process; mcpProduct.ProductDetail = prodDetail; mcpProduct.AllParts = new List <AssyMcpPart>(); mcpProduct.AssyParts = new List <AssyMcpPart>(); return(mcpProduct); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(null); } }
/// <summary> /// </summary> /// <param name="entity"/> /// <returns/> public bool OnAfterLoad_McpBom(McpBom entity) { try { entity.LINE_ID = UtilityHelper.Trim(entity.LINE_ID); entity.STEP_ID = UtilityHelper.Trim(entity.STEP_ID); entity.FROM_PROD_ID = UtilityHelper.Trim(entity.FROM_PROD_ID); entity.FROM_PROD_NAME = UtilityHelper.Trim(entity.FROM_PROD_NAME); entity.TO_PROD_ID = UtilityHelper.Trim(entity.TO_PROD_ID); entity.TO_PROD_NAME = UtilityHelper.Trim(entity.TO_PROD_NAME); entity.FINAL_PROD_ID = UtilityHelper.Trim(entity.FINAL_PROD_ID); entity.FINAL_PROD_NAME = UtilityHelper.Trim(entity.FINAL_PROD_NAME); entity.ASSY_IN_PROD_ID = UtilityHelper.Trim(entity.ASSY_IN_PROD_ID); entity.ASSY_IN_PROD_NAME = UtilityHelper.Trim(entity.ASSY_IN_PROD_NAME); #if DEBUG if (entity.ASSY_IN_PROD_ID == "357937") { Console.WriteLine(); } if (entity.FINAL_PROD_ID == "357937") { Console.WriteLine(); } #endif AssyMcpProduct finalProduct = null; Tuple <string, string, bool, bool, int> key = new Tuple <string, string, bool, bool, int>(entity.LINE_ID, entity.FINAL_PROD_ID, false, false, 1); if (InputMart.Instance.MicronBEProducts.TryGetValue(key, out finalProduct) == false) { ProductDetail productDetail = FindHelper.FindProductDetail(entity.LINE_ID, entity.FINAL_PROD_ID); if (productDetail == null) { WriteHelper.WriteMasterDataErrorLog(MasterDataErrorEventType.PRODUCT, entity.LINE_ID, string.Empty, string.Empty, entity.FINAL_PROD_ID, string.Empty, string.Empty, 0, string.Empty, "Cannot find ProductMaster", string.Empty, "McpBom"); return(false); } finalProduct = NewHelper.NewAssyMcpProduct(entity, productDetail); InputMart.Instance.MicronBEProducts.Add(key, finalProduct); } ProductDetail inProductDetail = FindHelper.FindProductDetail(entity.LINE_ID, entity.ASSY_IN_PROD_ID); if (inProductDetail == null) { WriteHelper.WriteMasterDataErrorLog(MasterDataErrorEventType.PRODUCT, entity.LINE_ID, string.Empty, string.Empty, entity.ASSY_IN_PROD_ID, string.Empty, string.Empty, 0, string.Empty, "Cannot find ProductMaster", string.Empty, "McpBom"); return(false); } Tuple <string, string, bool, bool, int> inProdKey = new Tuple <string, string, bool, bool, int>(entity.LINE_ID, entity.ASSY_IN_PROD_ID, true, false, entity.COMP_SEQ); AssyMcpPart inMcpPart; if (InputMart.Instance.MicronBEProducts.TryGetValue(inProdKey, out inMcpPart) == false) { inMcpPart = NewHelper.NewAssyMcpPart(entity.LINE_ID, entity.ASSY_IN_PROD_ID, finalProduct, false, entity.COMP_SEQ, entity.COMP_QTY, inProductDetail); inMcpPart.PartChangeStep = entity.STEP_ID; InputMart.Instance.MicronBEProducts.Add(inProdKey, inMcpPart); } if (finalProduct.AllParts.Contains(inMcpPart) == false) { finalProduct.AllParts.Add(inMcpPart); } if (finalProduct.AssyParts.Contains(inMcpPart) == false) { finalProduct.AssyParts.Add(inMcpPart); } finalProduct.MaxSequence = finalProduct.AssyParts.Count; return(true); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(false); } }