/// <summary> /// </summary> /// <param name="entity"/> /// <returns/> public bool OnAfterLoad_Wip(Wip entity) { try { entity.LOT_ID = UtilityHelper.Trim(entity.LOT_ID); entity.LINE_ID = UtilityHelper.Trim(entity.LINE_ID); entity.STEP_ID = UtilityHelper.Trim(entity.STEP_ID); entity.PROCESS_ID = UtilityHelper.Trim(entity.PROCESS_ID); entity.PRODUCT_ID = UtilityHelper.Trim(entity.PRODUCT_ID); entity.PRODUCT_NAME = UtilityHelper.Trim(entity.PRODUCT_NAME); entity.HOLD_CODE = UtilityHelper.Trim(entity.HOLD_CODE); entity.LOT_STATE = UtilityHelper.Trim(entity.LOT_STATE); entity.EQP_ID = UtilityHelper.Trim(entity.EQP_ID); entity.ASM_RESERVATION_ID = UtilityHelper.Trim(entity.ASM_RESERVATION_ID); #if DEBUG if (entity.LOT_ID.StartsWith("BF8QK4N.5X")) { Console.WriteLine(); } if (entity.PRODUCT_ID == "BF8QK4N.5X") { Console.WriteLine(); } #endif ProductDetail productDetail = FindHelper.FindProductDetail(entity.LINE_ID, entity.PRODUCT_ID); Mozart.SeePlan.Simulation.EntityState state = FindHelper.FindLotState(entity.LOT_STATE, entity.HOLD_CODE, entity.EQP_ID); if (productDetail == null) { WriteHelper.WriteMasterDataErrorLog(MasterDataErrorEventType.WIP, entity.LINE_ID, entity.STEP_ID, entity.LOT_ID, entity.PRODUCT_ID, string.Empty, string.Empty, entity.LOT_QTY, string.Empty, "Cannot find ProductMaster", string.Empty, "Wip"); WriteHelper.WriteUnpeg(entity, string.Empty, false, state, UnpegReason.MASTER_DATA, "Cannot find ProductMaster"); return(false); } MicronBEAssyProcess process = productDetail.Process; MicronBEAssyBEStep step = process.FindStep(entity.STEP_ID) as MicronBEAssyBEStep; if (step == null) { WriteHelper.WriteMasterDataErrorLog(MasterDataErrorEventType.WIP, entity.LINE_ID, entity.STEP_ID, entity.LOT_ID, entity.PRODUCT_ID, productDetail.DesignID, string.Empty, entity.LOT_QTY, string.Empty, "Cannot find ProcessStep", string.Format("PROCESS_ID : {0}", productDetail.Process.ProcessID), "Wip"); WriteHelper.WriteUnpeg(entity, productDetail.DesignID, false, state, UnpegReason.MASTER_DATA, "Cannot find ProcessStep"); return(false); } string unpegReason = string.Empty; Product product = FindHelper.FindWipProduct(entity, process, step, state, out unpegReason); if (product == null) { WriteHelper.WriteMasterDataErrorLog(MasterDataErrorEventType.WIP, entity.LINE_ID, entity.STEP_ID, entity.LOT_ID, entity.PRODUCT_ID, productDetail.DesignID, string.Empty, entity.LOT_QTY, string.Empty, "Cannot find ProcessStep", string.Format("PROCESS_ID : {0}", productDetail.Process.ProcessID), "Wip"); WriteHelper.WriteUnpeg(entity, productDetail.DesignID, false, state, UnpegReason.MASTER_DATA, unpegReason); return(false); } MicronBEAssyWipInfo wipInfo = new MicronBEAssyWipInfo(); wipInfo.LotID = entity.LOT_ID; wipInfo.Product = product; wipInfo.Process = process; wipInfo.UnitQty = (double)entity.LOT_QTY; wipInfo.InitialStep = process.FindStep(entity.STEP_ID); wipInfo.CurrentState = state; wipInfo.LineID = entity.LINE_ID; InputMart.Instance.MicronBEAssyWipInfo.Add(wipInfo.InitialStep.StepID, wipInfo); return(false); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(false); } }