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