Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }