public static List <MicronBEAssyBELot> GetSplitLots(MicronBEAssyBELot lot, double stdLotSize) { try { List <MicronBEAssyBELot> splitLots = new List <MicronBEAssyBELot>(); int splitQty = (int)Math.Ceiling(lot.UnitQtyDouble / stdLotSize); double unitQty = lot.UnitQtyDouble; for (int i = 1; i <= splitQty; i++) { string splitLotID = GenerateSplitNo(lot, i); double splitLotQty = stdLotSize < unitQty ? stdLotSize : unitQty; MicronBEAssyBELot splitLot = lot.Clone() as MicronBEAssyBELot; splitLot.LotID = splitLotID; splitLot.UnitQtyDouble = splitLotQty; MicronBEAssyPlanInfo plan = new MicronBEAssyPlanInfo(); plan.Init(splitLot.CurrentStep); plan.LotID = splitLot.LotID; plan.UnitQty = splitLot.UnitQtyDouble; plan.ProductID = splitLot.Product.ProductID; plan.ProcessID = splitLot.Process.ProcessID; splitLot.SetCurrentPlan(plan); unitQty -= splitLotQty; splitLots.Add(splitLot); } return(splitLots); } catch (Exception e) { WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0} MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name)); return(null); } }