/*:: POSTAVKE JLS ::*/ public static bool PostavkeGrada(string grad, _Grad postavke, int idAplikacije) { try { using (PostavkeDataContext db = new PostavkeDataContext()) { GRADOVI p = db.GRADOVIs.First(i => i.IDGrada == Sistem.IDGrada(grad)); bool odv = p.Odvjetnici; //decimal iznos = p.IznosNaloga; p.NazivGrada = postavke.Naziv; p.Latitude = (decimal)postavke.Latitude; p.Longitude = (decimal)postavke.Longitude; p.IznosNaloga = postavke.IznosNaloga; p.Zoom = postavke.Zoom; p.Pauk = postavke.Pauk; p.Aktivan = postavke.Aktivan; p.Vpp = postavke.Vpp; p.Odvjetnici = postavke.Odvjetnici; p.Adresa = postavke.Adresa; p.Grb = postavke.Grb; p.DOF = postavke.DOF; p.Chat = postavke.Chat; p.Mapa = postavke.Mapa; p.GO = postavke.GO; p.IDGrupePromet = postavke.IDGrupePredmet; p.Lisice = postavke.Lisice; db.SubmitChanges(); if (odv != postavke.Odvjetnici) { string poruka = p.NazivGrada + " - isključeno je vanjsko postupanje!"; if (postavke.Odvjetnici) { poruka = p.NazivGrada + " - uključeno je vanjsko postupanje!"; } Posalji.Email(grad, poruka, p.NazivGrada + "Promjena postavki", new List <string> { "*****@*****.**" }, null, false, idAplikacije); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku("", ex, idAplikacije, "POSTAVKE GRADA"); return(false); } }
/*:: POZIVI ::*/ public static bool Placeni(string grad, DateTime datumOd, DateTime datumDo, out string poruka, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { #region PODACI var rac = db.RACUNIs.Where(r => r.Datum >= datumOd && r.Datum <= datumDo && r.IDVrstePlacanja != 4 && r.IDVrstePlacanja != 5); // && r.Prenesen == false if (!rac.Any()) { PovijestPrijenosa(grad, new List <int>(), "Nema ne prenesenih računa za odabrani datum!", "", true, idAplikacije); poruka = "Nema ne prenesenih računa za odabrani datum!"; return(true); } List <_StavkeP> stavke = new List <_StavkeP>(); List <_VrstaPla> vrstea = new List <_VrstaPla>(); //treba grupirati kartice u jedno i odgode ako ih bude trebalo List <_VrstaPla> vrste = new List <_VrstaPla>(); foreach (var r in rac.GroupBy(i => i.IDVrstePlacanja)) { vrstea.Add(new _VrstaPla(Convert.ToChar(Naplata.VrstaPlacanjaKratica(grad, r.Key, idAplikacije)), "", r.Sum(i => i.Ukupno).ToString("n2")));//.Replace(".", ",") } foreach (var r in vrstea.GroupBy(i => i.vp_tip)) { decimal ukupno = 0; foreach (var u in r) { ukupno += Convert.ToDecimal(u.vp_iznos); } vrste.Add(new _VrstaPla(r.Key, "", ukupno.ToString("n2").Replace(".", ""))); } foreach (var r in rac.GroupBy(i => i.PDVPosto)) { stavke.Add(new _StavkeP(r.Key.ToString("n1").Replace(".", ""), "0,0", r.Sum(i => i.Osnovica).ToString().Replace(".", "").Replace(",0000", ",00"), "0,0", "0,0", "0,0", r.Sum(i => i.PDV).ToString().Replace(".", "").Replace(",0000", ",00"), "0,0", "0,0", "0,0", "0,0", "0,0", "0,0")); } string pp = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == 2).Oznaka; _Placeni plac = new _Placeni(new _Zaglavlje("", pp, datumOd.ToString("dd.MM.yyyy"), "", ""), stavke, vrste); #endregion #region POZIV string datum = DateToString(DateTime.Now); string metoda = "/sale/dailysales/create"; string tip = "POST"; string signature = CalculateSignature(tip, "/rest/api/v1" + metoda, datum); string adresa = metoda + "?username="******"&date=" + datum + "&signature=" + signature; string response = MakeRequest(url + adresa, plac, tip, "application/json", typeof(string)); #endregion if (response.Contains("uspješno spremljena")) { try { List <int> preneseni = rac.Select(i => i.IDRacuna).ToList(); //and idvrste placanja != 4,5 foreach (var r in rac) { r.Prenesen = true; db.SubmitChanges(); } PovijestPrijenosa(grad, preneseni, response, JsonConvert.SerializeObject(plac), true, idAplikacije); poruka = "Svi računi za odabrani datum su uspješno preneseni!"; return(true); } catch (Exception ex) { PovijestPrijenosa(grad, rac.Select(i => i.IDRacuna).ToList(), response, JsonConvert.SerializeObject(plac), false, idAplikacije); poruka = "Došlo je do greške prilikom prijenosa računa, računi su preneseni ali nisu označeni kao preneseni!"; Posalji.Email(grad, poruka, "GREŠKA PRIJENOS - " + grad.Replace("PROMETNIK_", "").Replace("_", " "), new List <string> { "*****@*****.**" }, null, false, idAplikacije); Sustav.SpremiGresku(grad, ex, idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO"); return(false); } } Sustav.SpremiGresku(grad, new Exception(response), idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO"); PovijestPrijenosa(grad, rac.Select(i => i.IDRacuna).ToList(), response, JsonConvert.SerializeObject(plac), false, idAplikacije); poruka = "Došlo je do greške prilikom prijenosa računa!"; return(false); } } catch (Exception ex) { PovijestPrijenosa(grad, new List <int>(), "", "", false, idAplikacije); Sustav.SpremiGresku(grad, ex, idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO"); poruka = "Došlo je do greške prilikom prijenosa računa!"; return(false); } }
public static bool Odgode(string grad, DateTime datumOd, DateTime datumDo, out string poruka, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { #region PODACI var racuni = from r in db.RACUNIs where r.Datum >= datumOd && r.Datum <= datumDo && (r.IDVrstePlacanja == 4 || r.IDVrstePlacanja == 5) && r.Prenesen == false select r; if (!racuni.Any()) { PovijestPrijenosa(grad, new List <int>(), "Nema ne prenesenih odgoda za odabrani datum!", "", true, idAplikacije); poruka = "Nema ne prenesenih odgoda za odabrani datum!"; return(true); } #endregion poruka = ""; foreach (var r in racuni) { List <_Osoba> oso = (from ro in db.RACUNI_OSOBE_RELACIJEs join o in db.RACUNI_OSOBEs on ro.IDOsobe equals o.IDOsobe where ro.IDRacuna == r.IDRacuna && !ro.Vlasnik select new _Osoba(o.IDOsobe, o.Ime, o.Prezime, o.Ulica, o.KucniBroj, o.Posta, o.Mjesto, o.Drzava, o.OIB, o.Napomena, o.BrojDokumenta, o.Rodjen, ro.Vlasnik, o.MUP)).ToList(); if (!oso.Any()) { oso.Add(new _Osoba(0, "", "", "", "", "", "", "", "", "", "", null, false, false)); } var os = oso.First(); if (oso.Count > 1) { os = oso.First(i => i.Vlasnik == false); } List <_StavkeOdgoda> stavke = new List <_StavkeOdgoda>(); List <_StopeOdgoda> po_stopama = new List <_StopeOdgoda>(); po_stopama.Add(new _StopeOdgoda(r.PDVPosto.ToString("n1").Replace(".", ","), "0,0", "0,0", r.Osnovica.ToString().Replace(".", ",").Replace(",0000", ",00"), r.PDV.ToString().Replace(".", ",").Replace(",0000", ",00"), "0,0", "0,0")); stavke.Add(new _StavkeOdgoda("0,0", "0,0", "0,0", "0,0", "0,0", "0,0", "0,0", "0,0", r.PDV.ToString().Replace(".", ",").Replace(",0000", ",00"), r.Ukupno.ToString().Replace(".", ",").Replace(",0000", ",00"))); string adresaO = os.Ulica + " " + os.KBr; // string oi = string.IsNullOrEmpty(r.o.OIB) ? r.o.BrojDokumenta : ""; int dospijece = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == 2).Dospijece; _ZaglavljeOdgoda zaglavlje = new _ZaglavljeOdgoda(r.PoslovniProstor, datumOd.ToString("dd.MM.yyyy"),//datum od jer zele da im bude sve sa istim datumom (Pauk - noćna blagajna 05.04.2018 - email ivan matana) r.Datum.AddDays(dospijece).ToString("dd.MM.yyyy"), r.BrojRacuna, "V62", "E0", os.OIB, os.Prezime + " " + os.Ime, adresaO, os.Posta, os.Mjesto, r.PozivNaBroj, "", os.Napomena, r.IDRacuna.ToString()); _Odgoda plac = new _Odgoda(zaglavlje, stavke, po_stopama); #region POZIV string datum = DateToString(DateTime.Now); string metoda = "/fin/knjizenje/racun/create"; string tip = "POST"; string signature = CalculateSignature(tip, "/rest/api/v1" + metoda, datum); string adresa = metoda + "?username="******"&date=" + datum + "&signature=" + signature; string response = MakeRequest(url + adresa, plac, tip, "application/json", typeof(string)); #endregion #region ODGOVOR List <int> preneseni = new List <int> { r.IDRacuna }; if (response.Contains("uspješno izvršeno")) { try { db.RACUNIs.First(i => i.IDRacuna == r.IDRacuna).Prenesen = true; db.SubmitChanges(); PovijestPrijenosa(grad, preneseni, response, JsonConvert.SerializeObject(plac), true, idAplikacije); //poruka += "Račun br. " + r.BrojRacuna + " - " + response; } catch (Exception ex) { PovijestPrijenosa(grad, preneseni, response, JsonConvert.SerializeObject(plac), false, idAplikacije); poruka = "Došlo je do greške prilikom prijenosa računa, računi su preneseni ali nisu označeni kao preneseni!"; Posalji.Email(grad, poruka, "GREŠKA PRIJENOS - " + grad.Replace("PROMETNIK_", "").Replace("_", " "), new List <string> { "*****@*****.**" }, null, false, idAplikacije); Sustav.SpremiGresku(grad, ex, idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO"); } } else { poruka += "Račun br. " + r.BrojRacuna + " - " + response + "\r\n"; PovijestPrijenosa(grad, preneseni, response, JsonConvert.SerializeObject(plac), false, idAplikacije); } #endregion } return(true); } } catch (Exception ex) { PovijestPrijenosa(grad, new List <int>(), "", "", false, idAplikacije); Sustav.SpremiGresku(grad, ex, idAplikacije, "PRIJENOS RACUNA U RAČUNOVODSTVO"); poruka = "Došlo je do greške prilikom prijenosa računa!"; return(false); } }
public static void PosaljiNaredbu(string grad, int idNaloga, int idAplikacije) { try { using (PostavkeDataContext db = new PostavkeDataContext()) { // todo obrisi temp if (db.EMAIL_LISTAs.Any(i => i.IDGrada == Sistem.IDGrada(grad) && i.Naredba)) { _Prekrsaj prekrsaj = Prekrsaj.DetaljiPrekrsajaNalog(grad, idNaloga, idAplikacije); if (prekrsaj == null) { Sustav.SpremiGresku(grad, new Exception("idn: " + idNaloga + ", grad: " + grad), idAplikacije, "POSALJI NAREDBU NA EMAIL"); return; } if (prekrsaj.Nalog == null) { Sustav.SpremiGresku(grad, new Exception("idn: " + idNaloga + ", grad: " + grad), idAplikacije, "POSALJI NAREDBU NA EMAIL"); return; } GRADOVI g = db.GRADOVIs.First(i => i.IDGrada == Sistem.IDGrada(grad)); CreatePDF._tipJls = g.Tip; CreatePDF._naziv = g.NazivGrada; CreatePDF._grb = g.Grb; CreatePDF._odlukaLisice = g.OdlukaLisice; string putanja = CreatePDF.Naredba(grad, new List <_Prekrsaj>() { prekrsaj }); //Prekrsaj(grad, prekrsaj, hub, idAplikacije); if (putanja == "") { Sustav.SpremiGresku(grad, new Exception("putanja"), idAplikacije, "POSALJI NAREDBU NA EMAIL"); } foreach (var email in db.EMAIL_LISTAs.Where(i => i.IDGrada == Sistem.IDGrada(grad) && i.Naredba)) { //bool hub = email.Prilog && prekrsaj.Dokument == "OBAVIJEST"; //todo string poruka = Pripremi.PopulateBodyNaredba(email.ImePrezime, idNaloga, prekrsaj.Nalog.Lisice); string tip = "podizanje"; if (prekrsaj.Nalog.Lisice) { tip = "blokiranje"; } Posalji.Email(grad, poruka, "Naredba za " + tip + " br. " + idNaloga, new List <string> { email.Email }, putanja, true, idAplikacije); } } } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "POSALJI NAREDBU NA EMAIL"); } }