public DetailInfo(string ico, KIndexData.Annual data, KIndexParts part) { this.AnnualData = data; this.Part = part; this.Ico = ico; Init(); }
public Radek(KIndexParts velicina, decimal hodnota, decimal koef) { this.Velicina = (int)velicina; this.VelicinaName = velicina.ToString(); this.Hodnota = hodnota; this.Koeficient = koef; }
public static string KIndexCommentForPart(KIndexParts part, KIndexData.Annual data, bool html = false) { var txt = data.Info(part).ShortComment; if (html) { return(txt); } else { return(Devmasters.TextUtil.RemoveHTML(txt)); } }
public DetailInfo Info(KIndexParts part) { if (_info.ContainsKey(part) == false) { lock (_infoLock) { if (_info.ContainsKey(part) == false) { _info.Add(part, new DetailInfo(this.Ico, this, part)); } } } return(_info[part]); }
public static decimal DefaultKIndexPartKoeficient(KIndexParts part) { switch (part) { case KIndexParts.PercentBezCeny: return(10m); case KIndexParts.PercSeZasadnimNedostatkem: return(10m); case KIndexParts.CelkovaKoncentraceDodavatelu: return(10m); case KIndexParts.KoncentraceDodavateluBezUvedeneCeny: return(10m); case KIndexParts.PercSmluvUlimitu: return(10m); case KIndexParts.KoncentraceDodavateluCenyULimitu: return(10m); case KIndexParts.PercNovaFirmaDodavatel: return(10m); case KIndexParts.PercUzavrenoOVikendu: return(10m); case KIndexParts.PercSmlouvySPolitickyAngazovanouFirmou: return(10m); case KIndexParts.KoncentraceDodavateluObory: return(10m); case KIndexParts.PercSmlouvyPod50kBonus: return(1m); default: throw new ArgumentOutOfRangeException(); } }
private string _kIndexCommentForPart(KIndexParts part, KIndexLabelValues lbl) { switch (part) { case KIndexParts.PercentBezCeny: switch (lbl) { case KIndexLabelValues.A: return("U smluv neskrývá ceny."); case KIndexLabelValues.B: return("U většiny smluv netají ceny."); case KIndexLabelValues.C: case KIndexLabelValues.D: case KIndexLabelValues.E: return($"Skrývá ceny u {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvBezCeny, "{0} smlouvy;{0} smluv;{0} smluv")}."); case KIndexLabelValues.F: return($"Skrývá ceny u varujícího počtu {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvBezCeny, "{0} smlouvy;{0} smluv;{0} smluv")} z {this.AnnualData.Statistika.PocetSmluv} smluv."); default: return(""); } case KIndexParts.PercSeZasadnimNedostatkem: switch (lbl) { case KIndexLabelValues.A: return("Smlouvy bez zásadních nedostatků."); case KIndexLabelValues.B: case KIndexLabelValues.C: return($"Zásadní nedostatky u {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvSeZasadnimNedostatkem, "{0} smlouvy;{0} smluv;{0} smluv")}."); case KIndexLabelValues.D: case KIndexLabelValues.E: case KIndexLabelValues.F: return($"Zásadní nedostatky u <b>{Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvSeZasadnimNedostatkem, "{0} smlouvy;{0} smluv;{0} smluv")}</b> z {this.AnnualData.Statistika.PocetSmluv} smluv."); default: return(""); } case KIndexParts.CelkovaKoncentraceDodavatelu: switch (lbl) { case KIndexLabelValues.A: return("Zakázky se nekoncentrují u žádných dodavatelů."); case KIndexLabelValues.B: case KIndexLabelValues.C: return("Žádný dodavatel nedominuje nad ostatními."); case KIndexLabelValues.D: case KIndexLabelValues.E: return("Velké zakázky se koncentrují u malého počtu dodavatelů."); case KIndexLabelValues.F: return($"Většinu peněz {Devmasters.Lang.Plural.Get(this.AnnualData.CelkovaKoncentraceDodavatelu.TopDodavatele().Count(), "dostal {0} dodavatel;dostali {0} dodavatelé;dostalo {0} dodavatelů")} z {this.AnnualData.CelkovaKoncentraceDodavatelu.Dodavatele.Count()}."); default: return(""); } case KIndexParts.KoncentraceDodavateluBezUvedeneCeny: switch (lbl) { case KIndexLabelValues.A: return("Zakázky se skrytou cenou se nekoncentrují u žádných dodavatelů."); case KIndexLabelValues.B: case KIndexLabelValues.C: return("Zakázky se skrytou cenou uzavřelo více dodavatelů, žádný nedominuje."); case KIndexLabelValues.D: case KIndexLabelValues.E: return($"Zakázky se skrytou cenou se koncentrují u {Devmasters.Lang.Plural.Get(this.AnnualData.KoncentraceDodavateluBezUvedeneCeny.TopDodavatele().Count(), "{0} dodavatele;{0} dodavatelů;{0} dodavatelů")}."); case KIndexLabelValues.F: return($"Většinu zakázek se skrytou cenou {Devmasters.Lang.Plural.Get(this.AnnualData.KoncentraceDodavateluBezUvedeneCeny.TopDodavatele().Count(), "dostal {0} dodavatel;dostali {0} dodavatelé;dostalo {0} dodavatelů")}."); default: return(""); } case KIndexParts.KoncentraceDodavateluCenyULimitu: switch (lbl) { case KIndexLabelValues.A: return("Zakázky s podezřelou cenou se nekoncentrují u žádných dodavatelů."); case KIndexLabelValues.B: case KIndexLabelValues.C: return("Zakázky s podezřelou cenou uzavřelo více dodavatelů, žádný nedominuje."); case KIndexLabelValues.D: case KIndexLabelValues.E: return("Zakázky s podezřelou cenou se se koncentrují u malého počtu dodavatelů."); case KIndexLabelValues.F: return($"Většinu zakázek s cenou u limitu VZ {Devmasters.Lang.Plural.Get(this.AnnualData.KoncentraceDodavateluCenyULimitu.TopDodavatele().Count(), "dostal {0} dodavatel;dostali {0} dodavatelé;dostalo {0} dodavatelů")}."); default: return(""); } case KIndexParts.KoncentraceDodavateluObory: switch (lbl) { case KIndexLabelValues.A: return("Zakázky z jednotlivých oborů se u dodavatelů nekoncentrují."); case KIndexLabelValues.B: case KIndexLabelValues.C: return("Zakázky z jednotlivých oborů uzavřelo více dodavatelů, žádný výrazně nedominuje."); case KIndexLabelValues.D: case KIndexLabelValues.E: var oboryE = this.AnnualData.KIndexVypocet.OboroveKoncentrace? .Radky .Where(m => KIndexLabelForPart(KIndexParts.KoncentraceDodavateluObory, m.Hodnota) >= KIndexLabelValues.D); return($"Dominance zakázek u dodavatelů se objevuje v {Devmasters.Lang.Plural.Get(oboryE.Count(), "{0} oboru;{0} oborech;{0} oborech")}."); case KIndexLabelValues.F: var oboryF = this.AnnualData.KIndexVypocet.OboroveKoncentrace? .Radky .Where(m => KIndexLabelForPart(KIndexParts.KoncentraceDodavateluObory, m.Hodnota) >= KIndexLabelValues.D); return($"Dominance zakázek u dodavatelů je výrazná v {Devmasters.Lang.Plural.Get(oboryF.Count(), "{0} oboru;{0} oborech;{0} oborech")}."); default: return(""); } case KIndexParts.PercSmluvUlimitu: switch (lbl) { case KIndexLabelValues.A: return("Neobchází limity zákona o veřejných zakázkách."); case KIndexLabelValues.B: return("Velmi málo smluv má hodnotu blízkou limitům pro veřejné zakázky."); case KIndexLabelValues.C: case KIndexLabelValues.D: case KIndexLabelValues.E: case KIndexLabelValues.F: return($"{Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvULimitu, "{0} smlouva má;{0} smlouvy mají;{0} smluv má")} hodnotu blízkou limitům veřejných zakázek, což může naznačovat snahu se vyhnout řádné veřejné soutěži."); //return $"Zásadní nedostatky evidujeme u {Devmasters.Lang.Plural.Get(data.StatistikaRegistruSmluv.PocetSmluvSeZasadnimNedostatkem, "{0} smlouva;{0} smlouvy;{0} smluv")} z {data.StatistikaRegistruSmluv.PocetSmluv}"; default: return(""); } case KIndexParts.PercNovaFirmaDodavatel: switch (lbl) { case KIndexLabelValues.A: return("Nemá smlouvy s nově založenými firmami."); case KIndexLabelValues.B: case KIndexLabelValues.C: case KIndexLabelValues.D: case KIndexLabelValues.E: case KIndexLabelValues.F: return($"Uzavřeli {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvNovaFirma, "{0} smlouvu;{0} smlouvy;{0} smluv")} s nově založenými firmami."); default: return(""); } case KIndexParts.PercUzavrenoOVikendu: switch (lbl) { case KIndexLabelValues.A: return("Neuzavřeli žádné smlouvy o víkendu či svátku."); case KIndexLabelValues.B: case KIndexLabelValues.C: case KIndexLabelValues.D: case KIndexLabelValues.E: case KIndexLabelValues.F: return($"Uzavřeli {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvOVikendu, "{0} smlouvu;{0} smlouvy;{0} smluv")} o víkendu nebo svátku."); default: return(""); } case KIndexParts.PercSmlouvySPolitickyAngazovanouFirmou: switch (lbl) { case KIndexLabelValues.A: return("Nemá uzavřené smlouvy s firmami, jejichž majitelé či ony samy sponzorovali politické strany."); case KIndexLabelValues.B: case KIndexLabelValues.C: case KIndexLabelValues.D: case KIndexLabelValues.E: case KIndexLabelValues.F: return($"Uzavřeli {Devmasters.Lang.Plural.Get(this.AnnualData.Statistika.PocetSmluvPolitiky, "{0} smlouvu;{0} smlouvy;{0} smluv")} s firmami, jejichž majitelé či ony samy sponzorovali politické strany."); default: return(""); } case KIndexParts.PercSmlouvyPod50kBonus: var bonusR = this.AnnualData.KIndexVypocet.Radky.FirstOrDefault(m => m.VelicinaPart == part); if (bonusR != null) { if (bonusR.Hodnota == -1 * Consts.BonusPod50K_3) { return("Dobrovolně zveřejňuje velké množství smluv pod 50 000 Kč."); } if (bonusR.Hodnota == -1 * Consts.BonusPod50K_2) { return("Dobrovolně zveřejňuje smlouvy pod 50 000 Kč."); } if (bonusR.Hodnota == -1 * Consts.BonusPod50K_1) { return("Dobrovolně zveřejňuje smlouvy pod 50 000 Kč."); } } return("Nesplňuje podmínku pro udělení bonusu za transparentnost."); default: return(""); } }
public static KIndexLabelValues KIndexLabelForPart(KIndexParts part, decimal?value) { if (value.HasValue == false) { return(KIndexLabelValues.None); } switch (part) { case KIndexParts.PercSmlouvySPolitickyAngazovanouFirmou: case KIndexParts.PercentBezCeny: if (value == 0m) { return(KIndexLabelValues.A); } else if (value < 0.05m) { return(KIndexLabelValues.B); } else if (value < 0.1m) { return(KIndexLabelValues.C); } else if (value < 0.15m) { return(KIndexLabelValues.D); } else if (value < 0.2m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSeZasadnimNedostatkem: if (value == 0m) { return(KIndexLabelValues.A); } else if (value < 0.01m) { return(KIndexLabelValues.C); } else if (value < 0.015m) { return(KIndexLabelValues.D); } else { return(KIndexLabelValues.F); } case KIndexParts.CelkovaKoncentraceDodavatelu: case KIndexParts.KoncentraceDodavateluCenyULimitu: case KIndexParts.KoncentraceDodavateluBezUvedeneCeny: case KIndexParts.KoncentraceDodavateluObory: if (value < 0.05m) { return(KIndexLabelValues.A); } else if (value < 0.1m) { return(KIndexLabelValues.B); } else if (value < 0.15m) { return(KIndexLabelValues.C); } else if (value < 0.2m) { return(KIndexLabelValues.D); } else if (value < 0.25m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSmluvUlimitu: if (value == 0) { return(KIndexLabelValues.A); } else if (value < 0.04m) { return(KIndexLabelValues.B); } else if (value < 0.06m) { return(KIndexLabelValues.C); } else if (value < 0.08m) { return(KIndexLabelValues.D); } else if (value < 0.1m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercNovaFirmaDodavatel: case KIndexParts.PercUzavrenoOVikendu: if (value == 0) { return(KIndexLabelValues.A); } else if (value < 0.02m) { return(KIndexLabelValues.B); } else if (value < 0.03m) { return(KIndexLabelValues.C); } else if (value < 0.04m) { return(KIndexLabelValues.D); } else if (value < 0.5m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSmlouvyPod50kBonus: if (value > 0) { return(KIndexLabelValues.A); } else { return(KIndexLabelValues.None); } default: return(KIndexLabelValues.None); } }
public static KIndexLabelValues KIndexLabelForPart(KIndexParts part, decimal?value, object addValue = null) { if (value.HasValue == false) { return(KIndexLabelValues.None); } switch (part) { case KIndexParts.PercSmlouvySPolitickyAngazovanouFirmou: case KIndexParts.PercentBezCeny: int pocetSmluv = Devmasters.ParseText.ToInt(addValue?.ToString()) ?? 1000; //default hodne smluv if (value == 0m) { return(KIndexLabelValues.A); } else if (value < 0.05m) { return(KIndexLabelValues.B); } else if (value < 0.1m) { return(KIndexLabelValues.C); } else if (value < 0.15m || pocetSmluv <= 5) //pokud je malo smluv, nedavej vetsi riziko { return(KIndexLabelValues.D); } else if (value < 0.2m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSeZasadnimNedostatkem: int pocetSmluv1 = Devmasters.ParseText.ToInt(addValue?.ToString()) ?? 1000; //default hodne smluv if (value == 0m) { return(KIndexLabelValues.A); } else if (value < 0.01m) { return(KIndexLabelValues.C); } else if (value < 0.015m || pocetSmluv1 <= 5) //pokud je malo smluv, nedavej vetsi riziko) { return(KIndexLabelValues.D); } else { return(KIndexLabelValues.F); } case KIndexParts.CelkovaKoncentraceDodavatelu: case KIndexParts.KoncentraceDodavateluCenyULimitu: case KIndexParts.KoncentraceDodavateluBezUvedeneCeny: case KIndexParts.KoncentraceDodavateluObory: if (value < 0.05m) { return(KIndexLabelValues.A); } else if (value < 0.1m) { return(KIndexLabelValues.B); } else if (value < 0.15m) { return(KIndexLabelValues.C); } else if (value < 0.2m) { return(KIndexLabelValues.D); } else if (value < 0.25m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSmluvUlimitu: int pocetSmluv2 = Devmasters.ParseText.ToInt(addValue?.ToString()) ?? 1000; //default hodne smluv if (value == 0) { return(KIndexLabelValues.A); } else if (value < 0.04m) { return(KIndexLabelValues.B); } else if (value < 0.06m) { return(KIndexLabelValues.C); } else if (value < 0.08m || pocetSmluv2 <= 5) //pokud je malo smluv, nedavej vetsi riziko { return(KIndexLabelValues.D); } else if (value < 0.1m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercNovaFirmaDodavatel: case KIndexParts.PercUzavrenoOVikendu: int pocetSmluv3 = Devmasters.ParseText.ToInt(addValue?.ToString()) ?? 1000; //default hodne smluv if (value == 0) { return(KIndexLabelValues.A); } else if (value < 0.02m) { return(KIndexLabelValues.B); } else if (value < 0.03m) { return(KIndexLabelValues.C); } else if (value < 0.04m || pocetSmluv3 <= 5) //pokud je malo smluv, nedavej vetsi riziko { return(KIndexLabelValues.D); } else if (value < 0.5m) { return(KIndexLabelValues.E); } else { return(KIndexLabelValues.F); } case KIndexParts.PercSmlouvyPod50kBonus: if (value > 0) { return(KIndexLabelValues.A); } else { return(KIndexLabelValues.None); } default: return(KIndexLabelValues.None); } }