Example #1
0
 public DetailInfo(string ico, KIndexData.Annual data, KIndexParts part)
 {
     this.AnnualData = data;
     this.Part       = part;
     this.Ico        = ico;
     Init();
 }
Example #2
0
 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]);
 }
Example #5
0
            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();
                }
            }
Example #6
0
            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("");
                }
            }
Example #7
0
            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);
                }
            }
Example #8
0
            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);
                }
            }