private static Zatrideni.Item[] GetSubjektyDirect(StatniOrganizaceObor obor) { string[] icos = null; string sql = ""; switch (obor) { case StatniOrganizaceObor.Vse: icos = GetAllSubjektyFromRPP(); break; case StatniOrganizaceObor.Zdravotni_ustavy: case StatniOrganizaceObor.Hasicsky_zachranny_sbor: case StatniOrganizaceObor.Krajske_hygienicke_stanice: case StatniOrganizaceObor.Krajska_statni_zastupitelstvi: case StatniOrganizaceObor.Krajske_soudy: case StatniOrganizaceObor.Soudy: case StatniOrganizaceObor.Statutarni_mesta: case StatniOrganizaceObor.Verejne_vysoke_skoly: case StatniOrganizaceObor.Krajska_reditelstvi_policie: case StatniOrganizaceObor.Statni_fondy: case StatniOrganizaceObor.OSSZ: case StatniOrganizaceObor.Kraje_Praha: case StatniOrganizaceObor.Zdravotni_pojistovny: case StatniOrganizaceObor.Katastralni_urady: case StatniOrganizaceObor.Ministerstva: case StatniOrganizaceObor.Organizacni_slozky_statu: case StatniOrganizaceObor.Dalsi_ustredni_organy_statni_spravy: case StatniOrganizaceObor.Celni_urady: case StatniOrganizaceObor.Financni_urady: case StatniOrganizaceObor.Konzervatore: case StatniOrganizaceObor.Mestske_casti_Prahy: case StatniOrganizaceObor.OVM_pro_evidenci_skutecnych_majitelu: case StatniOrganizaceObor.Obce_III_stupne: icos = GetSubjektyFromRPP((int)obor); break; case StatniOrganizaceObor.Vsechny_ustredni_organy_statni_spravy: icos = GetSubjektyFromRPP((int)StatniOrganizaceObor.Dalsi_ustredni_organy_statni_spravy) .Concat(GetSubjektyFromRPP((int)StatniOrganizaceObor.Ministerstva)) .ToArray(); break; case StatniOrganizaceObor.Nemocnice: sql = @"select distinct ico from ( select f.ICO from Firma f where Jmeno like N'%nemocnice%' and f.IsInRS = 1 union select distinct f.ico from Firma_NACE fn join firma f on f.ICO = fn.ICO where (nace like '861%' or NACE like '862%') and f.IsInRS = 1 and f.Kod_PF not in (105, 101, 801, 601) ) as f where f.ICO not in ('70876606','70994226','45274649','05243793','64203450','25916092','60800691','08297517','00212423')"; icos = GetSubjektyFromSQL(sql); break; case StatniOrganizaceObor.Velke_nemocnice: icos = "00064165,00064173,00064203,00098892,00159816,00179906,00669806,00843989,25488627,26365804,27283933,27661989,65269705,27283518,26000202,00023736,00023884,27256391,61383082,27256537,00023001,27520536,26068877,47813750,00064211,00209805,27660915,00635162,27256456,00090638,00092584,00064190" .Split(','); break; case StatniOrganizaceObor.Fakultni_nemocnice: icos = "65269705,00179906,00669806,00098892,00843989,00064165,00064203,00159816,00064173" .Split(','); break; case StatniOrganizaceObor.Krajske_spravy_silnic: icos = "00066001,00090450,70947023,70946078,72053119,00080837,70971641,27502988,00085031,70932581,70960399,00095711,26913453,03447286,25396544,60733098" .Split(','); break; case StatniOrganizaceObor.Dopravni_podniky: icos = "05792291,25095251,25136046,25137280,00005886,25166115,25164538,25220683,29099846,61058238,48364282,62240935,64053466,06231292,62242504,25013891,47311975,00079642,06873031,25267213,63217066,25512897,25508881,00100790,47676639,05724252,64610250,61974757,60730153" .Split(','); break; case StatniOrganizaceObor.Technicke_sluzby: sql = @"select ico from Firma f where Jmeno like N'technické služby%' and f.IsInRS = 1"; icos = GetSubjektyFromSQL(sql); break; case StatniOrganizaceObor.Domov_duchodcu: sql = @"select ico from Firma f where Jmeno like N'%domov důchodců%' and f.IsInRs = 1"; icos = GetSubjektyFromSQL(sql); break; case StatniOrganizaceObor.Vyjimky_RS: // Poslanecká sněmovna, Senát, Kancelář prezidenta republiky, Ústavní soud, Nejvyšší kontrolní úřad, //Kancelář veřejného ochránce práv a Úřad Národní rozpočtové rady //CNB icos = new string[] { "00006572", "63839407", "48136000", "48513687", "49370227", "70836981", "05553539", "48136450" }; break; case StatniOrganizaceObor.Ostatni: icos = new string[] { }; break; default: throw new ArgumentOutOfRangeException(); } bool removeKraj = false; switch (obor) { case StatniOrganizaceObor.Ostatni: case StatniOrganizaceObor.Zdravotni_pojistovny: case StatniOrganizaceObor.Fakultni_nemocnice: case StatniOrganizaceObor.Krajska_statni_zastupitelstvi: case StatniOrganizaceObor.Krajske_soudy: case StatniOrganizaceObor.Kraje_Praha: case StatniOrganizaceObor.Mestske_casti_Prahy: case StatniOrganizaceObor.OSSZ: case StatniOrganizaceObor.Ministerstva: case StatniOrganizaceObor.Organizacni_slozky_statu: case StatniOrganizaceObor.Vsechny_ustredni_organy_statni_spravy: case StatniOrganizaceObor.Dalsi_ustredni_organy_statni_spravy: case StatniOrganizaceObor.Financni_urady: case StatniOrganizaceObor.Vyjimky_RS: case StatniOrganizaceObor.Verejne_vysoke_skoly: case StatniOrganizaceObor.Konzervatore: case StatniOrganizaceObor.Krajske_spravy_silnic: case StatniOrganizaceObor.OVM_pro_evidenci_skutecnych_majitelu: removeKraj = true; break; default: break; } if (icos.Count() == 0) { return new Item[] { } } ; else { var ret = new System.Collections.Generic.List <Item>(); Devmasters.Batch.Manager.DoActionForAll <string>(icos.Select(m => m.Trim()).Distinct(), ic => { var f = Firmy.Get(ic); if (f.PatrimStatu()) { lock (_getSubjektyDirectLock) { if (!ret.Any(ff => ff.Ico == f.ICO)) { ret.Add(new Item() { Ico = f.ICO, Jmeno = f.Jmeno, KrajId = removeKraj ? "" : f.KrajId, Kraj = removeKraj ? "" : CZ_Nuts.Nace2Kraj(f.KrajId, "(neznamý)") }); } } } return(new Devmasters.Batch.ActionOutputData()); }, !System.Diagnostics.Debugger.IsAttached); return(ret.ToArray()); } }
/* * Nemocnice: * select distinct f.ICO, f.Jmeno from firma f inner join Firma_NACE fn on f.ICO = fn.ICO where nace like '86%' and f.IsInRS = 1 * */ public static Zatrideni.Item[] Subjekty(StatniOrganizaceObor obor) { return(instanceByZatrideni.Get(obor)); }