Пример #1
0
        /// <summary>
        /// Spocita minimalni datum pro nasledujic revizi 1 a revizi 2
        /// </summary>
        /// <param name="ZakaznikId"></param>
        /// <param name="ProvozId"></param>
        /// <param name="Rok"></param>
        /// <param name="UmisteniId"></param>
        /// <returns></returns>
        internal protected static DnyRevize MinimalniDatum(int ZakaznikId, int ProvozId, int Rok, int?UmisteniId)
        {
            if (UmisteniId == null)
            {
                UmisteniId = 0;
            }
            DnyRevize     dnyrevize = new DnyRevize();
            string        con       = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
            StringBuilder sql       = new StringBuilder();

            sql.Append(" select x.ZakaznikId , x.Zakaznik ,x.ProvozId ,x.Provoz, min(x.NextRevize) 'R1', Year(min(x.NextRevize)) as 'Rok_R1', case when Month(min(x.NextRevize)) <= 6 then 1 else 2 end as 'R1POL', ");
            sql.Append(" min(x.Next2Revize) 'R2', Year(min(x.Next2Revize)) as 'Rok_R2', case when Month(min(x.Next2Revize)) <= 6 then 1 else 2 end as 'R2POL'");
            sql.Append(" from (");
            sql.Append(" select t1.Id as 'ZakaznikId', t1.NazevZakaznika as 'Zakaznik',");
            sql.Append(" t2.Id as 'ProvozId', t2.NazevProvozu as 'Provoz', t3.Id as 'UmisteniId', t3.NazevUmisteni, t6.Nazev, t5.seriovecislo,");
            sql.Append(" DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaRevize,t6.periodarevize)), coalesce(t4.datumrevize, t4.datumprirazeni)) as 'NextRevize',");
            sql.Append(" DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaRevize,t6.periodarevize)), DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaRevize,t6.periodarevize)), coalesce(t4.datumrevize, t4.datumprirazeni))) as 'Next2Revize',");
            sql.Append(" DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaBaterie,t6.periodabaterie)), coalesce(t4.datumbaterie, t4.datumprirazeni)) as 'NextBaterie',");
            sql.Append(" DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaPyro,t6.periodapyro)), coalesce(t4.datumpyro, t4.datumprirazeni)) as 'NextPyro',");
            sql.Append(" DATEADD(month, convert(int, coalesce(t4.UpravenaPeriodaTlkZk,t6.periodatlakovazk)), coalesce(t4.datumtlkzk, t4.datumprirazeni)) as 'NextTlkZk'");
            sql.Append(" from Region t0");
            sql.Append(" left join Zakaznik t1 on t0.id = t1.regionid");
            sql.Append(" left join Provoz t2 on t2.zakaznikid = t1.id");
            sql.Append(" left join Umisteni t3 on t3.provozid = t2.id");
            sql.Append(" left join Scprovozu t4 on t4.provozid = t2.id and t4.umisteni = t3.id");
            sql.Append(" left join SerioveCislo t5 on t5.Id = t4.SerioveCisloId");
            sql.Append(" left join Artikl t6 on t5.ArtiklId = T6.Id");
            sql.Append(" where");
            sql.Append($" t1.ID = '{ZakaznikId}' and T2.id = '{ProvozId}' and(T3.Id = '{UmisteniId}' or '{UmisteniId}' = '0')");
            sql.Append(" ) x");
            sql.Append(" group by x.ZakaznikId, x.Zakaznik,x.ProvozId, x.Provoz");

            //LOGOVANI
            log.Debug($"MinimalniDatum pro revizi pro ZakaznikID: {ZakaznikId},ProvozId : {ProvozId}, Rok: {Rok}, UmisteniId: {UmisteniId}");
            log.Debug(sql.ToString());

            SqlConnection cnn = new SqlConnection(con);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection  = cnn;
            cmd.CommandText = sql.ToString();
            cnn.Open();
            cmd.ExecuteNonQuery();
            SqlDataReader dr = cmd.ExecuteReader();

            if (dr.HasRows)
            {
                //MAKES IT HERE
                while (dr.Read())
                {
                    ZakaznickySeznam item = new ZakaznickySeznam();
                    try
                    {
                        dnyrevize.DenRevize1 = dr.GetDateTime(dr.GetOrdinal("R1"));
                    }
                    catch (Exception ex)
                    {
                        log.Debug("MinimalniDatum - Načtení R1: " + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException);
                    }
                    try
                    {
                        dnyrevize.DenRevize2 = dr.GetDateTime(dr.GetOrdinal("R2"));
                    }
                    catch (Exception ex)
                    {
                        log.Debug("MinimalniDatum - Načtení R2: " + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException);
                    }
                }
            }
            cnn.Close();



            return(dnyrevize);
        }
Пример #2
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.)
        }