public IEnumerable <PreProductPlanSimuItem> GenerateProductPlan(DateTime from, DateTime to, bool inventoryUnderRetrieval, bool acceptedMaterialOnly, bool materialUsedInOtherCommands) { //var i = 0; //var dcMaterialAndAmount = SaveAmount(ref i, inventoryUnderRetrieval, acceptedMaterialOnly); var lstAmount = SaveAmount(inventoryUnderRetrieval, acceptedMaterialOnly); var istr_pd = new List <PreProductPlanSimuItem>(); while (from <= to) { var pd = new PreProductPlanSimuItem() { Date = from.ToString("dd/MM/yyyy"), Count = 0, PreproductISimulerItems = new List <PreproductISimulerItem>() }; var pdtpln = _unitOfWork.PdtPlnRepository.GetAll().ToList() .Where(i => i.F39_KndEptBgnDate.Date == from.Date) .OrderBy(i => i.F39_UpdateDate); foreach (var tx39PdtPln in pdtpln) { if (!IsStatus(from, tx39PdtPln, materialUsedInOtherCommands)) { Preproduct(tx39PdtPln.F39_PreProductCode, tx39PdtPln.F39_KneadingLine, tx39PdtPln.F39_PrePdtLotAmt, tx39PdtPln.F39_KndCmdNo, ref pd, inventoryUnderRetrieval, acceptedMaterialOnly, ref lstAmount); } } istr_pd.Add(pd); from = from.AddDays(1); } return(istr_pd); }
private void Preproduct(string f39PreProductCode, string f39KneadingLine, int f39PrePdtLotAmt, string f39KndCmdNo, ref PreProductPlanSimuItem item, bool inventoryUnderRetrieval, bool acceptedMaterialOnly, ref Dictionary <string, double> lstAmount) { item.Count += 1; var count = item.Count; var preProduct = _unitOfWork.PreProductRepository.GetMany(i => i.F03_PreProductCode == f39PreProductCode).FirstOrDefault(); var pItem = new PreproductISimulerItem(); pItem.KndLine = f39KneadingLine == Constants.F39_KneadingLine.Megabit.ToString("D"); pItem.Code = count; if (preProduct != null) { pItem.Name = preProduct.F03_PreProductName; pItem.PreProductCode = preProduct.F03_PreProductCode; pItem.batch = preProduct.F03_BatchLot; } pItem.Command = f39KndCmdNo; pItem.Lot = f39PrePdtLotAmt; pItem.Count = 0; var prepdtmkp = _unitOfWork.PrePdtMkpRepository.GetAll().Where(i => i.F02_PreProductCode == f39PreProductCode); var checkSimulation = true; pItem.SimulationPopUpItems = new List <SimulationPopUpItem>(); foreach (var tm02prepdtmkp in prepdtmkp) { var simulationPopUp = new SimulationPopUpItem(); var flag = Material(tm02prepdtmkp.F02_MaterialCode, tm02prepdtmkp.F02_3FLayinAmount, tm02prepdtmkp.F02_4FLayinAmount, preProduct.F03_BatchLot, f39PrePdtLotAmt, ref lstAmount, ref simulationPopUp); if (!flag) { checkSimulation = false; } pItem.SimulationPopUpItems.Add(simulationPopUp); } if (prepdtmkp.Any()) { pItem.Simulation = !checkSimulation ? "NG" : "OK"; } item.PreproductISimulerItems.Add(pItem); }