Esempio n. 1
0
        public ActionResult AddCompanySponzoring(
            string ico,
            string strana, string rok, string castka, string udalost
            )
        {
            var apires = Framework.ApiAuth.IsApiAuth(this);

            if (apires.Authentificated &&
                (apires.ApiCall.User == "*****@*****.**" ||
                 apires.ApiCall.User == "*****@*****.**"
                )
                )
            {
                Firma f = Firma.FromIco(ico, true);
                if (f == null)
                {
                    HlidacStatu.Util.Consts.Logger.Error("API AddCompanySponzoring: ICO " + ico + " not found");
                    return(new HttpStatusCodeResult(500, "ICO not found."));
                }

                f.AddSponsoring(strana, Convert.ToInt32(rok), ParseTools.ToDecimal(castka).Value, "https://udhpsh.cz/5290-2/", this.User.Identity.Name, checkDuplicates: false);
                return(Content(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = true }), "application/json"));
            }
            else
            {
                return(new HttpStatusCodeResult(401));
            }
        }
Esempio n. 2
0
        private decimal ParsePrice(string value, DateTime date)
        {
            var price = ParseTools.ToDecimal(WebUtility.HtmlDecode(value).Replace(" CZK", "").Replace(" ", ""));

            if (price.HasValue)
            {
                return(price.Value);
            }

            TULogger.Error($"KB: chybejici castka pro ucet {Ucet.CisloUctu} dne {date}");
            throw new ApplicationException($"KB: chybejici castka pro ucet {Ucet.CisloUctu} dne {date}");
        }
Esempio n. 3
0
        public ActionResult AddPersonSponzoring(
            string titulpred, string jmeno, string prijmeni, string titulpo, string datumNarozeni,
            string strana, string rok, string castka
            )
        {
            DateTime?dat = HlidacStatu.Util.ParseTools.ToDateTimeFromCode(datumNarozeni);

            if (dat.HasValue == false)
            {
                return(new HttpStatusCodeResult(500, "Use date format yyyy-MM-dd"));
            }
            var apires = Framework.ApiAuth.IsApiAuth(this);

            if (apires.Authentificated &&
                (apires.ApiCall.User == "*****@*****.**" ||
                 apires.ApiCall.User == "*****@*****.**"
                )
                )
            {
                Osoba o = Osoba.GetByName(jmeno, prijmeni, dat.Value);
                if (o == null)
                {
                    o = new Osoba()
                    {
                        TitulPred = titulpred, Jmeno = jmeno, Prijmeni = prijmeni, TitulPo = titulpo, Narozeni = dat.Value
                    };
                    o.Status = (int)Osoba.StatusOsobyEnum.VazbyNaPolitiky;
                    o.Save();
                }

                var oe = o.AddSponsoring(strana, Convert.ToInt32(rok), ParseTools.ToDecimal(castka).Value, "https://udhpsh.cz/5290-2/", this.User.Identity.Name, checkDuplicates: false);
                return(Content(Newtonsoft.Json.JsonConvert.SerializeObject(new { ok = true }), "application/json"));
            }
            else
            {
                return(new HttpStatusCodeResult(401));
            }
        }
Esempio n. 4
0
        protected override IEnumerable <IBankovniPolozka> DoParse(DateTime?fromDate = null, DateTime?toDate = null)
        {
            var polozky    = new List <IBankovniPolozka>();
            var onPage     = new List <IBankovniPolozka>();
            var currentUrl = Ucet.Url;

            do
            {
                onPage = new List <IBankovniPolozka>();

                using (var url = new URLContent(currentUrl))
                {
                    url.Referer          = Ucet.Url;
                    url.IgnoreHttpErrors = true;
                    var s    = url.GetContent(Encoding.UTF8).Text;
                    var doc  = new XPath(s);
                    var rows = doc.GetNodes("//table[@id='transparentAccountTable']/tbody/tr")
                               ?? doc.GetNodes("//tr")
                               ?? new List <HtmlNode>();

                    foreach (var row in rows)
                    {
                        var cols = row.ChildNodes.Where(n => n.Name == "td").Select(n => n.InnerHtml).ToArray();
                        var p    = new SimpleBankovniPolozka();
                        p.CisloUctu = Ucet.CisloUctu;
                        var date = ParseTools.ToDateTime(cols[0], "d.M.yyyy");
                        if (!date.HasValue || (fromDate.HasValue && date.Value < fromDate.Value) || (toDate.HasValue && date.Value > toDate.Value))
                        {
                            continue;                             //skip this, it's not row with data
                        }
                        p.Datum = date.Value;

                        var parts = cols[1].Split(new string[] { "</br>", "<br>" }, StringSplitOptions.None)?.Select(v => WebUtility.HtmlDecode(v)).ToArray() ?? new string[] { "" };
                        p.NazevProtiuctu = TextUtil.NormalizeToBlockText(WebUtility.HtmlDecode(parts[0]));

                        if (parts.Length == 3)
                        {
                            p.ZpravaProPrijemce = TextUtil.NormalizeToBlockText(parts[2]);
                        }

                        p.VS = TextUtil.NormalizeToBlockText(cols[3]);
                        if (p.VS.Contains("---------"))
                        {
                            p.VS = "";
                        }


                        p.Castka = ParseTools.ToDecimal(
                            WebUtility.HtmlDecode(cols[4])
                            .Replace(" CZK", "")
                            .Replace(" ", "")
                            ).Value;
                        p.ZdrojUrl = Ucet.Url;

                        onPage.Add(p);
                    }
                    polozky.AddRange(onPage);

                    var lineWithLastTransactionDate = s.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(l => l.Contains("lastTransactionDate"));
                    if (lineWithLastTransactionDate != null)
                    {
                        var parts = lineWithLastTransactionDate.Trim().Split(':');
                        if (parts.Length >= 2)
                        {
                            var lastTransactionDate = parts[1].Replace("'", "").Trim();
                            currentUrl = $"https://transparentniucty.moneta.cz/homepage?p_p_id=TransparentAccountPortlet_WAR_monetaportletsportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=serveTableData&p_p_cacheability=cacheLevelPage&p_p_col_id=column-8&p_p_col_count=1&_TransparentAccountPortlet_WAR_monetaportletsportlet_accountNumber={Ucet.CisloUctu.Replace("/0600", "")}&_TransparentAccountPortlet_WAR_monetaportletsportlet_reverse=NORMAL&_TransparentAccountPortlet_WAR_monetaportletsportlet_transactionNumber=1&_TransparentAccountPortlet_WAR_monetaportletsportlet_transactionDate={lastTransactionDate}&_={(long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds}";
                        }
                    }
                }
            } while (onPage.Count > 0);

            return(polozky);
        }
Esempio n. 5
0
 private decimal parseAmount(string value)
 {
     return(ParseTools.ToDecimal(value.Replace(" CZK", "").Replace(" ", "")).Value);
 }