コード例 #1
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)
                { }
            }
        }