Exemplo n.º 1
0
        internal protected static void GenerujRevizi(int ZakaznikId, int ProvozId, int Rok, int?UmisteniId, string Nabidka, string Projekt)
        {
            bool existrevize1;
            bool existrevize2;


            GenRevizeCust gen       = new GenRevizeCust();
            DnyRevize     dnyRevize = MinimalniDatum(ZakaznikId, ProvozId, Rok, UmisteniId);

            gen.Dnyrevize = dnyRevize;


            // REVIZE1
            if ((UmisteniId != null) && (UmisteniId != 0))
            {
                existrevize1 = Revize.ExistRevision(ZakaznikId, ProvozId, Rok, 1, UmisteniId);
                if (existrevize1 == true)
                {
                    //prirazeni revize do modelu
                    gen.Revize1 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 1, UmisteniId, null);
                }
                else
                {
                    gen.Dnyrevize.PrvnidenobdobiR1    = Prvnidenobdobi(Rok, 1);
                    gen.Dnyrevize.PoslednidenobdobiR1 = Poslednidenobdobi(Rok, 1);
                    gen.Dnyrevize.PrvnidenobdobiR2    = Prvnidenobdobi(Rok, 2);
                    gen.Dnyrevize.PoslednidenobdobiR2 = Poslednidenobdobi(Rok, 2);
                    // Prvni revize v obdobi
                    if (
                        (dnyRevize.DenRevize1 >= gen.Dnyrevize.PrvnidenobdobiR1)
                        &&
                        (dnyRevize.DenRevize1 <= gen.Dnyrevize.PoslednidenobdobiR1)
                        )
                    {
                        gen.Revize1 = Revize.GenerateRevision(ProvozId, Rok, 1, dnyRevize.DenRevize1, 1, UmisteniId, Nabidka, Projekt);
                    }
                    // prvni revize pred obdobim
                    if (
                        (dnyRevize.DenRevize1 < gen.Dnyrevize.PrvnidenobdobiR1)

                        )
                    {
                        gen.Revize1 = Revize.GenerateRevision(ProvozId, Rok, 1, gen.Dnyrevize.PrvnidenobdobiR1, 1, UmisteniId, Nabidka, Projekt);
                    }
                    // prvni revize v druhem pololeti vygeneruje se jako revize 2
                    if (
                        (dnyRevize.DenRevize1 >= gen.Dnyrevize.PrvnidenobdobiR2)
                        &&
                        (dnyRevize.DenRevize1 <= gen.Dnyrevize.PoslednidenobdobiR2)

                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, dnyRevize.DenRevize1, 1, UmisteniId, Nabidka, Projekt);
                    }
                }
            }
            else
            {
                existrevize1 = Revize.ExistRevision(ZakaznikId, ProvozId, Rok, 1, null);

                if (existrevize1 == true)
                {
                    //prirazeni revize do modelu
                    gen.Revize1 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 1, null, null);
                }
                else
                {
                    gen.Dnyrevize.PrvnidenobdobiR1    = Prvnidenobdobi(Rok, 1);
                    gen.Dnyrevize.PoslednidenobdobiR1 = Poslednidenobdobi(Rok, 1);
                    gen.Dnyrevize.PrvnidenobdobiR2    = Prvnidenobdobi(Rok, 2);
                    gen.Dnyrevize.PoslednidenobdobiR2 = Poslednidenobdobi(Rok, 2);

                    // Prvni revize v obdobi
                    if (
                        (dnyRevize.DenRevize1 >= gen.Dnyrevize.PrvnidenobdobiR1)
                        &&
                        (dnyRevize.DenRevize1 <= gen.Dnyrevize.PoslednidenobdobiR1)
                        )
                    {
                        gen.Revize1 = Revize.GenerateRevision(ProvozId, Rok, 1, dnyRevize.DenRevize1, 1, null, Nabidka, Projekt);
                    }
                    // prvni revize pred obdobim
                    if (
                        (dnyRevize.DenRevize1 < gen.Dnyrevize.PrvnidenobdobiR1)

                        )
                    {
                        gen.Revize1 = Revize.GenerateRevision(ProvozId, Rok, 1, gen.Dnyrevize.PrvnidenobdobiR1, 1, null, Nabidka, Projekt);
                    }
                    // prvni revize v druhem pololeti vygeneruje se jako revize 2
                    if (
                        (dnyRevize.DenRevize1 >= gen.Dnyrevize.PrvnidenobdobiR2)
                        &&
                        (dnyRevize.DenRevize1 <= gen.Dnyrevize.PoslednidenobdobiR2)
                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, dnyRevize.DenRevize1, 1, null, Nabidka, Projekt);
                    }
                }
            }
            // REVIZE2
            if ((UmisteniId != null) && (UmisteniId != 0))
            {
                existrevize2 = Revize.ExistRevision(ZakaznikId, ProvozId, Rok, 2, UmisteniId);
                if (existrevize2 == true)
                {
                    //prirazeni revize do modelu
                    gen.Revize2 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 2, UmisteniId, null);
                }
                else
                {
                    gen.Dnyrevize.PrvnidenobdobiR2    = Prvnidenobdobi(Rok, 2);
                    gen.Dnyrevize.PoslednidenobdobiR2 = Poslednidenobdobi(Rok, 2);
                    // druha revize v obdobi
                    if (
                        (dnyRevize.DenRevize2 >= gen.Dnyrevize.PrvnidenobdobiR2)
                        &&
                        (dnyRevize.DenRevize2 <= gen.Dnyrevize.PoslednidenobdobiR2)
                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, dnyRevize.DenRevize2, 1, UmisteniId, Nabidka, Projekt);
                    }
                    // druha revize pred obdobim
                    if (
                        (dnyRevize.DenRevize2 < gen.Dnyrevize.PrvnidenobdobiR2)

                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, gen.Dnyrevize.PrvnidenobdobiR2, 1, UmisteniId, Nabidka, Projekt);
                    }
                }
            }
            else
            {
                existrevize2 = Revize.ExistRevision(ZakaznikId, ProvozId, Rok, 2, null);

                if (existrevize2 == true)
                {
                    //prirazeni revize do modelu
                    gen.Revize2 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 2, null, null);
                }
                else
                {
                    gen.Dnyrevize.PrvnidenobdobiR2    = Prvnidenobdobi(Rok, 2);
                    gen.Dnyrevize.PoslednidenobdobiR2 = Poslednidenobdobi(Rok, 2);

                    // druha revize v obdobi
                    if (
                        (dnyRevize.DenRevize2 >= gen.Dnyrevize.PrvnidenobdobiR2)
                        &&
                        (dnyRevize.DenRevize2 <= gen.Dnyrevize.PoslednidenobdobiR2)
                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, dnyRevize.DenRevize2, 1, null, Nabidka, Projekt);
                    }
                    // druha revize pred obdobim
                    if (
                        (dnyRevize.DenRevize2 < gen.Dnyrevize.PrvnidenobdobiR2)

                        )
                    {
                        gen.Revize2 = Revize.GenerateRevision(ProvozId, Rok, 2, gen.Dnyrevize.PrvnidenobdobiR2, 1, null, Nabidka, Projekt);
                    }
                }
            }

            List <CalculatedSCForRevision> list = Calculatescfrorevision(ZakaznikId, ProvozId, UmisteniId);

            InsertSCtoRevision(gen, list);
            try
            {
                Revize.UpdateRevizeHeader(gen.Revize1.Id);
            }
            catch (Exception ex)
            {
                log.Error("Revize1 - update revize header: " + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException);
            }
            try
            {
                Revize.UpdateRevizeHeader(gen.Revize2.Id);
            }
            catch (Exception ex)
            {
                log.Error("Revize2 - update revize header: " + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException);
            }
            // na zaklade prvku provozu spocitat kdy by mela byt dalsi revize
            // - pokud v obdobi - spoctene datum ()
            // - pokud starsi vygenerovat k 1.1.daneho roku
            // - pokud do tohoto obdobi nespada tak negenerovat (jenom klapka nema artikly atd.)
        }
Exemplo n.º 2
0
        /// <summary>
        /// Prohledani seznamu a dohledani zda již neexistuji revize v danem obdobi
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="listplanrev"></param>
        /// <returns></returns>
        private static List <VypocetPlanuRevizi> LoopAndCreate(string conn, List <VypocetPlanuRevizi> listplanrev)
        {
            foreach (var item in listplanrev)
            {
                if (item.UmisteniId == 0)
                {
                    var r1exist = Revize.ExistRevision(item.ZakaznikId, item.ProvozId, item.Rok_R1, item.R1POL, null);
                    if (r1exist == false)
                    {
                        item.Revize1 = Revize.GenerateRevision(item.ProvozId, item.Rok_R1, item.R1POL, item.R1.Value, StatusRevize.Planned(), null, "", "");
                        List <SCList> sclist = new List <SCList>();
                        sclist = SCList.FindScForRevision(conn, item.ProvozId, null, item.Rok_R1, item.R1POL);
                        var      t        = SCList.AddItemsFromList(sclist, item.Revize1.Id);
                        RevizeSC revizesc = new RevizeSC();
                        Revize.UpdateRevizeHeader(item.Revize1.Id);
                        //bool done = RevizeSC.CreateUpdateSC(SCProvozu.GetList(item.ProvozId, null, 1, null), item.Revize1.Id);
                    }
                    else
                    {
                        item.Revize1 = Revize.ReturnRevision(item.ZakaznikId, item.ProvozId, item.Rok_R1, item.R1POL, null, null);
                    }
                    var r2exist = Revize.ExistRevision(item.ZakaznikId, item.ProvozId, item.Rok_R2, item.R2POL, null);
                    if (r2exist == false)
                    {
                        item.Revize2 = Revize.GenerateRevision(item.ProvozId, item.Rok_R2, item.R2POL, item.R2.Value, StatusRevize.Planned(), null, "", "");
                        List <SCList> sclist = new List <SCList>();
                        sclist = SCList.FindScForRevision(conn, item.ProvozId, null, item.Rok_R2, item.R2POL);
                        var      t        = SCList.AddItemsFromList(sclist, item.Revize2.Id);
                        RevizeSC revizesc = new RevizeSC();
                        Revize.UpdateRevizeHeader(item.Revize2.Id);
                    }
                    else
                    {
                        item.Revize2 = Revize.ReturnRevision(item.ZakaznikId, item.ProvozId, item.Rok_R2, item.R2POL, null, null);
                    }
                    // update hlavicky - počet baterií, palníků atd
                }
                else
                {
                    var r1exist = Revize.ExistRevision(item.ZakaznikId, item.ProvozId, item.Rok_R1, item.R1POL, item.UmisteniId);
                    if (r1exist == false)
                    {
                        item.Revize1 = Revize.GenerateRevision(item.ProvozId, item.Rok_R1, item.R1POL, item.R1.Value, StatusRevize.Planned(), item.UmisteniId, "", "");

                        List <SCList> sclist = new List <SCList>();
                        sclist = SCList.FindScForRevision(conn, item.ProvozId, item.UmisteniId, item.Rok_R1, item.R1POL);
                        var      t        = SCList.AddItemsFromList(sclist, item.Revize1.Id);
                        RevizeSC revizesc = new RevizeSC();
                        Revize.UpdateRevizeHeader(item.Revize1.Id);
                    }
                    else
                    {
                        item.Revize1 = Revize.ReturnRevision(item.ZakaznikId, item.ProvozId, item.Rok_R1, item.R1POL, item.UmisteniId, null);
                    }
                    var r2exist = Revize.ExistRevision(item.ZakaznikId, item.ProvozId, item.Rok_R2, item.R2POL, item.UmisteniId);
                    if (r2exist == false)
                    {
                        item.Revize2 = Revize.GenerateRevision(item.ProvozId, item.Rok_R2, item.R2POL, item.R2.Value, StatusRevize.Planned(), item.UmisteniId, "", "");
                        List <SCList> sclist = new List <SCList>();
                        sclist = SCList.FindScForRevision(conn, item.ProvozId, item.UmisteniId, item.Rok_R2, item.R2POL);
                        var      t        = SCList.AddItemsFromList(sclist, item.Revize2.Id);
                        RevizeSC revizesc = new RevizeSC();
                        Revize.UpdateRevizeHeader(item.Revize2.Id);
                    }
                    else
                    {
                        item.Revize2 = Revize.ReturnRevision(item.ZakaznikId, item.ProvozId, item.Rok_R2, item.R2POL, item.UmisteniId, null);
                    }
                    // update hlavicky - počet baterií, palníků atd
                }
            }
            return(listplanrev);
        }
Exemplo n.º 3
0
        public static void GenerujReviziTlakoveZkousky(int ZakaznikId, int ProvozId, int?UmisteniId, int Rok)
        {
            GenerovaniRevizeTlakoveZkousky GRTZ = new GenerovaniRevizeTlakoveZkousky
            {
                Rok        = Rok,
                ZakaznikId = ZakaznikId,
                Zakaznik   = Zakaznik.GetById(ZakaznikId),
                ProvozId   = ProvozId,
                Provoz     = Provoz.GetById(ProvozId),
                UmisteniId = UmisteniId,
                // dohledání exisujících revizí pro vybraný rok
                Revize1 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 1, UmisteniId, false),
                Revize2 = Revize.ReturnRevision(ZakaznikId, ProvozId, Rok, 2, UmisteniId, false)
            };

            if (UmisteniId != null)
            {
                GRTZ.Umisteni = Umisteni.GetById(UmisteniId.Value);
            }
            int pocetTlkZkR1 = 0; int pocetTlkZkR2 = 0; int revize1 = 0; int revize2 = 0;

            try
            {
                revize1 = GRTZ.Revize1.Id;
            }
            catch (Exception ex)
            {
                log.Debug($"Nenalazena Revize1 {ex.Data} {ex.HResult} {ex.InnerException} {ex.Message}");
            }
            try
            {
                revize2 = GRTZ.Revize2.Id;
            }
            catch (Exception ex)
            {
                log.Debug($"Nenalazena Revize2 {ex.Data} {ex.HResult} {ex.InnerException} {ex.Message}");
            }
            using (var db = new Model1Container())
            {
                //Výpočet počtu artiklů, které mají příznak tlakové zkoušky pro jednotlivé revize
                pocetTlkZkR1 = db.RevizeSC.Where(t => t.RevizeId == revize1 && t.TlakovaZkouska == true).Count();
                pocetTlkZkR2 = db.RevizeSC.Where(t => t.RevizeId == revize2 && t.TlakovaZkouska == true).Count();
            }

            int pocetTlkZ = pocetTlkZkR1 + pocetTlkZkR2;



            // Pokud existují artikly v revizích, které mají příznak tlakové zkoušky dojde ke generování třetí revize a přesun do speciální tlakové zkoušky
            if (pocetTlkZ > 0)
            {
                // načení záznamů, ketré jsou s evidovanou tlakovou zkouškou
                if (pocetTlkZkR1 > 0)
                {
                    try
                    {
                        GRTZ.TlakoveZkouskyRev1 = RevizeSC.SeznamTlakovychZkousekRevize(GRTZ.Revize1.Id);
                    }
                    catch (Exception ex) { log.Debug($" GRTZ.TlakoveZkouskyRev1 -  {ex.Data} {ex.HResult} {ex.InnerException} {ex.Message}"); }
                }
                if (pocetTlkZkR2 > 0)
                {
                    try
                    {
                        GRTZ.TlakoveZkouskyRev2 = RevizeSC.SeznamTlakovychZkousekRevize(GRTZ.Revize2.Id);
                    }
                    catch (Exception ex) { log.Debug($" GRTZ.TlakoveZkouskyRev2 -  {ex.Data} {ex.HResult} {ex.InnerException} {ex.Message}"); }
                }
                // pokud neexisuje revize na tlakovou zkoušku vygenerování revize
                var exist = Revize.ExistRevision(GRTZ.ZakaznikId, GRTZ.ProvozId, GRTZ.Rok, 3, GRTZ.UmisteniId);
                if (exist == true)
                {
                    //pokud exisuje nacte se
                    GRTZ.Revize3 = Revize.ReturnRevision(GRTZ.ZakaznikId, GRTZ.ProvozId, Rok, 3, GRTZ.UmisteniId, null);
                }
                else
                {
                    //pokud neexistuje vygeneruje se
                    try
                    {
                        GRTZ.Revize3 = Revize.GenerateRevision(GRTZ.ProvozId, GRTZ.Rok, 3, System.DateTime.Now, 1, GRTZ.UmisteniId, GRTZ.Revize1.Nabidka, GRTZ.Revize1.Projekt);
                    }
                    catch (Exception ex)
                    {
                        log.Debug($" GRTZ.Revize3 -  {ex.Data} {ex.HResult} {ex.InnerException} {ex.Message}");
                    }
                }
                //přesun tlakových zkoušek do speciální revize
                if (pocetTlkZkR1 > 0)
                {
                    try
                    {
                        RevizeSC.LoopRevizeSCTlakoveZkousky(GRTZ.Revize3, GRTZ.TlakoveZkouskyRev1);
                    }
                    catch (Exception ex) { }
                }
                if (pocetTlkZkR1 > 0)
                {
                    try
                    {
                        RevizeSC.LoopRevizeSCTlakoveZkousky(GRTZ.Revize3, GRTZ.TlakoveZkouskyRev2);
                    }
                    catch (Exception ex) { }
                }
                //aktualizace hlavičkových údajů na jednotlivých revizích
                try
                {
                    Revize.UpdateRevizeHeader(GRTZ.Revize1.Id);
                }
                catch (Exception ex)
                { }
                try
                {
                    Revize.UpdateRevizeHeader(GRTZ.Revize2.Id);
                }
                catch (Exception ex)
                { }
                try
                {
                    Revize.UpdateRevizeHeader(GRTZ.Revize3.Id);
                }
                catch (Exception ex)
                { }
            }
        }