예제 #1
0
        public IActionResult p41CreateChild(Models.p41CreateChildViewModel v, string oper)
        {
            RefreshState_p41CreateChild(ref v);

            if (ModelState.IsValid)
            {
                if (oper == "postback")
                {
                    return(View(v));
                }
                if (oper == "save" && (v.lisDestOper == null || v.lisDestOper.Where(p => p.IsSelected == true).Count() == 0))
                {
                    this.AddMessage("Musíte zaškrtnout minimálně jednu operaci.");
                    return(View(v));
                }

                var c = new BO.p41Task()
                {
                    p41Name = v.p41Name, p27ID = v.SelectedP27ID
                };
                int x = Factory.p41TaskBL.CreateChild(c, v.RecMasterP41, v.lisDestOper.Where(p => p.IsSelected == true).ToList(), v.p18flag);
                if (x > 0)
                {
                    v.SetJavascript_CallOnLoad(0, "p41");
                    return(View(v));
                }
            }


            return(View(v));
        }
예제 #2
0
        public BO.p41Task TestRecord(int pid)
        {
            var c = new BO.p41Task()
            {
                p41ID = pid, p41Name = "hovado"
            };

            return(c);
        }
예제 #3
0
        private TechnologickyRozpis handle_one_rozpis(BO.p41Task recP41)
        {
            var ret = new TechnologickyRozpis();


            var recP11 = _f.p11ClientProductBL.Load(recP41.p11ID);

            ret.Hlavicka = new HlavickaZakazky {
                VyrobniZakazka = recP41.p41Code, KodPolozky = recP11.p11Code, NazevPolozky = recP11.p11Name, Mnozstvi = recP41.p41PlanUnitsCount, Datum = recP41.DateInsert, Cas = recP41.DateInsert
            };
            ret.Hlavicka.ZPStart  = recP41.PlanStartClear;
            ret.Hlavicka.ZPStop   = recP41.p41PlanEnd;
            ret.PlanovaneMnozstvi = recP41.p41PlanUnitsCount;
            ret.Stav = recP41.b02ID;

            var mq = new BO.myQuery("p44TaskOperPlan");

            mq.p18flags = new List <int>()
            {
                1, 3
            };
            mq.p41id = recP41.pid;
            var lis = _f.p44TaskOperPlanBL.GetList(mq);

            ret.Polozky = new List <PolozkaVyroby>();
            foreach (var c in lis)
            {
                var recP18  = _f.p18OperCodeBL.Load(c.p18ID);
                var polozka = new PolozkaVyroby()
                {
                    KodOperace = BO.BAS.InInt(recP18.p18Code), CisloOperace = c.p44OperNum, Start = c.p44Start, Stop = c.p44End, Popis = recP18.p18Name
                };
                polozka.Parametr = c.p44OperParam;
                if (c.p19ID > 0)
                {
                    var recP19 = _f.p19MaterialBL.Load(c.p19ID);
                    polozka.MaterialKod   = recP19.p19Code;
                    polozka.MaterialNazev = recP19.p19Name;
                }
                polozka.VahaPozadovana = c.p44MaterialUnitsCount;
                polozka.DelkaTrvani    = c.p44TotalDurationOperMin;
                ret.Polozky.Add(polozka);
            }



            return(ret);
        }
예제 #4
0
        public IActionResult Record(Models.p41RecordViewModel v)
        {
            if (ModelState.IsValid)
            {
                BO.p41Task c = new BO.p41Task();
                if (v.Rec.pid > 0)
                {
                    c = Factory.p41TaskBL.Load(v.Rec.pid);
                }

                c.p52ID        = v.Rec.p52ID;
                c.b02ID        = v.Rec.b02ID;
                c.p27ID        = v.Rec.p27ID;
                c.j02ID_Owner  = v.Rec.j02ID_Owner;
                c.p41IsDraft   = v.Rec.p41IsDraft;
                c.p41Code      = v.Rec.p41Code;
                c.p41Name      = v.Rec.p41Name;
                c.p41Memo      = v.Rec.p41Memo;
                c.p41StockCode = v.Rec.p41StockCode;

                c.p41PlanStart = v.Rec.p41PlanStart;
                //c.p41Duration = v.Rec.p41Duration;
                c.p41PlanUnitsCount = v.Rec.p41PlanUnitsCount;


                v.Rec.pid = Factory.p41TaskBL.Save(c);
                if (v.Rec.pid > 0)
                {
                    Factory.o51TagBL.SaveTagging("p41", v.Rec.pid, v.TagPids);
                    v.SetJavascript_CallOnLoad(v.Rec.pid);
                    return(View(v));
                }
            }

            RefreshState_Record(v);

            this.Notify_RecNotSaved();
            return(View(v));
        }
예제 #5
0
        private void handle_create_by_p52(int p52id)
        {
            if (_lisP27.Count == 0 || p52id == 0)
            {
                return;
            }
            var cP52 = _f.p52OrderItemBL.Load(p52id);
            var cP11 = _f.p11ClientProductBL.Load(cP52.p11ID);

            double   dblTotalKG = cP52.Recalc2Kg - cP52.p52Task_Kg;
            double   dblUsedKG  = 0;
            DateTime dat0       = _dat0;
            var      mq         = new BO.myQuery("p41Task");

            mq.p52id = p52id;
            int    x           = 1;
            string strLastCode = "";

            if (dblTotalKG <= 0)
            {
                _f.CurrentUser.AddMessage(string.Format("Položka objednávky [{0}] je již kompletně rozplánovaná.", cP52.p52Code));
            }

            while (dblUsedKG < dblTotalKG)
            {
                foreach (var kotel in _lisP27)
                {
                    var rec = new BO.p41Task();
                    rec.p52ID             = p52id;
                    rec.p52Code           = cP52.p52Code;
                    rec.p27ID             = kotel.pid;
                    rec.p27Name           = kotel.p27Name;
                    rec.p41Name           = cP11.p11Name + " [" + cP11.p11Code + "]";
                    rec.p41PlanUnitsCount = kotel.p27Capacity;
                    if (rec.p41PlanUnitsCount + dblUsedKG > dblTotalKG)
                    {
                        rec.p41PlanUnitsCount = dblTotalKG - dblUsedKG;
                    }
                    double dur = _f.p12ClientTpvBL.Simulate_Total_Duration(cP11.p12ID, rec.p41PlanUnitsCount, kotel.pid);
                    dat0             = kotel.DateInsert;
                    rec.p41PlanStart = dat0;
                    rec.p41Duration  = dur;

                    rec.p41Code = _f.p41TaskBL.EstimateTaskCode(cP52.p52Code, x);
                    while (strLastCode == rec.p41Code)
                    {
                        x          += 1;
                        rec.p41Code = _f.p41TaskBL.EstimateTaskCode(cP52.p52Code, x);
                    }

                    //kotel.DateInsert = rec.p41PlanEnd.AddSeconds(1);
                    kotel.DateInsert = rec.p41PlanEnd;

                    _tasks.Add(rec);

                    dblUsedKG += rec.p41PlanUnitsCount;
                    if (dblUsedKG >= dblTotalKG)
                    {
                        return;
                    }

                    x          += 1;
                    strLastCode = rec.p41Code;
                }
            }
        }
예제 #6
0
        public IActionResult Create(Models.p41CreateViewModel v, string rec_oper, int p27id)
        {
            if (rec_oper == "p51id_change")
            {
                v.p52ID   = 0;
                v.p52Code = "";
            }
            if (v.p51ID > 0)
            {
                v.RecP51 = Factory.p51OrderBL.Load(v.p51ID);
            }
            if (v.p52ID > 0)
            {
                v.RecP52 = Factory.p52OrderItemBL.Load(v.p52ID);
                v.RecP51 = Factory.p51OrderBL.Load(v.RecP52.p51ID);
            }



            if (rec_oper == "simulation_p51")
            {
                if (v.p51ID == 0)
                {
                    Factory.CurrentUser.AddMessage("Musíte vybrat objednávku.");
                }
                else
                {
                    var simul = new UI.TaskSimulation(Factory);
                    simul.Date0 = getDate0(v);
                    v.Tasks     = simul.getTasksByP51(v.p51ID);
                }
            }
            if (rec_oper == "simulation_p52")
            {
                if (v.p52ID == 0)
                {
                    Factory.CurrentUser.AddMessage("Musíte vybrat položku objednávky.");
                }
                else
                {
                    var simul = new UI.TaskSimulation(Factory);
                    simul.Date0 = getDate0(v);
                    v.Tasks     = simul.getTasksByP52(v.p52ID, v.p27ID);
                }
            }
            if (rec_oper == "simulation_p52ids")
            {
                var simul = new UI.TaskSimulation(Factory);
                simul.Date0 = getDate0(v);
                v.Tasks     = simul.getTasksByP52IDs(BO.BAS.ConvertString2ListInt(v.SelectedP52IDs));
            }

            if (rec_oper == "newitem")
            {
                if (v.Tasks == null)
                {
                    v.Tasks = new List <BO.p41Task>();
                }
                var c = new BO.p41Task();
                if (v.Tasks.Where(p => p.p41PlanEnd != null).Count() > 0)
                {
                    c.p41PlanStart = v.Tasks.Where(p => p.p41PlanEnd != null).Last().p41PlanEnd;
                }
                else
                {
                    c.p41PlanStart = DateTime.Now.AddHours(1);
                }
                c.p41Duration = 60;

                if (p27id > 0)
                {
                    c.p27ID   = p27id;
                    c.p27Name = Factory.p27MszUnitBL.Load(p27id).p27Name;
                }
                if (v.RecP52 != null)
                {
                    c.p52ID   = v.RecP52.pid;
                    c.p52Code = v.RecP52.p52Code;
                    //c.p41Name = v.RecP52.p11Name + " [" + v.RecP52.p11Code + "]";
                }
                v.Tasks.Add(c);

                return(View(v));
            }
            if (rec_oper == "clear")
            {
                v.Tasks = new List <BO.p41Task>();
            }
            if (rec_oper == "delete")
            {
                //došlo k virtuálnímu odstranění řádku zakázky - pouze postback
            }
            if (rec_oper == "postback")     //pouze postback
            {
            }
            if (v.Tasks == null)
            {
                v.Tasks = new List <BO.p41Task>();
            }

            if (ModelState.IsValid)
            {
                if (rec_oper == "save")
                {
                    int x = Factory.p41TaskBL.SaveBatch(v.Tasks.Where(p => p.IsTempDeleted == false).ToList());
                    if (x > 0)
                    {
                        v.SetJavascript_CallOnLoad(0, "p41");
                        return(View(v));
                    }
                }
            }

            if (v.RecP52 != null)
            {
                BO.p11ClientProduct cP11 = Factory.p11ClientProductBL.Load(v.RecP52.p11ID);
                if (cP11.p10ID_Master > 0)
                {
                    v.p25ID = Factory.p10MasterProductBL.Load(cP11.p10ID_Master).p25ID; //z RecP10 se bere typ zařízení pro combo nabídku zařízení
                }
                else
                {
                    if (cP11.p12ID > 0)
                    {
                        v.p25ID = Factory.p12ClientTpvBL.Load(cP11.p12ID).p25ID;    //vlastní klientská receptura
                    }
                }
                var mq = new BO.myQuery("p27MszUnit");
                mq.p25id = v.p25ID;
                v.lisP27 = Factory.p27MszUnitBL.GetList(mq).ToList();
            }



            return(View(v));
        }