/// <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); }
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.) }