public static bool RegistrirajPP(string grad, _PoslovniProstor pos, int idAplikacije) { try { if (pos.IDFisklaizacije == null) { return(false); } bool demo = grad == "Lokacije"; using (FiskalServiceClient sc = new FiskalServiceClient()) { bool ok = sc.PrijaviPoslovniProstor(pos.IDFisklaizacije.Value, demo); sc.Close(); using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { POSLOVNI_PROSTOR poslpro = db.POSLOVNI_PROSTORs.First(i => i.IDPoslovnogProstora == pos.IDPoslovnogProstora); poslpro.DatumPrimjene = DateTime.Now; db.SubmitChanges(); } return(ok); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "REGISTRIRAJ POSLOVNI PROSTOR"); return(false); } }
public static void Fiskaliziraj(string grad, int idRacuna, int idRedarstva, int idAplikacije) { try { _Racun racun = Naplata.DohvatiRacunLight(grad, idRacuna, idAplikacije); _FiskalOdgovor fo; _PoslovniProstor pp = PoslovniProstor.DohvatiPoslovniProstor(grad, idRedarstva, idAplikacije); if (pp.IDFisklaizacije == null) { return; } bool demo = grad == "Lokacije"; using (FiskalServiceClient sc = new FiskalServiceClient()) { List <_RacunPDV> obrpdv = new List <_RacunPDV>(); obrpdv.Add(new _RacunPDV { Iznos = racun.PDV, Osnovica = racun.Osnovica, Stopa = racun.PDVPosto }); string vpk = Naplata.VrstaPlacanjaKratica(grad, racun.IDVrste, idAplikacije); fo = sc.FiskalizirajRacunSVE(pp.IDVlasnikaFiskal.Value, pp.IDFisklaizacije.Value, racun.Blagajna, racun.Godina, racun.RedniBroj, racun.OIB, racun.DatumVrijeme, racun.Ukupno, obrpdv, new _RacunPDV(), 0, Convert.ToChar(vpk), demo, false); sc.Close(); } if (fo != null) { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { RACUNI r = db.RACUNIs.First(i => i.IDRacuna == idRacuna); r.JIR = fo.Jir; r.ZKI = fo.Zki; r.UUID = fo.Uuid; db.SubmitChanges(); } } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "FISKALIZACIJA RAČUNA"); } }
public string Naplati(string grad, int idNaloga, int idStatusa, int idDjelatnika, int idVrstePlacanja, _Osoba osoba, decimal iznos, string poziv, out int idRacuna) { try { string vrsta = Naplata.VrstaPlacanja(grad, idVrstePlacanja, idAplikacije); _PoslovniProstor pp = PoslovniProstor.DohvatiPoslovniProstor(grad, 2, idAplikacije); _Djelatnik djel = Korisnici.DohvatiDjelatnika(grad, idDjelatnika, idAplikacije); decimal osnovica = Math.Round(iznos / ((decimal)(100 + pp.PDV) / 100), 2); decimal pdv = Math.Round(osnovica * pp.PDV / 100, 2); osnovica = iznos - pdv; decimal ukupno = iznos; List <_Stavka> stavke = new List <_Stavka>(); using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { RACUNI_STAVKE_OPI st = db.RACUNI_STAVKE_OPIs.First(i => i.IDStatusa == 3 && i.IDRedarstva == 2 && i.Obrisan == false); _Stavka nova = new _Stavka(0, 0, st.IDOpisaStavke, st.NazivOpisaStavke, st.Lezarina, 1, iznos, pdv, osnovica, ukupno, pp.PDV, ""); stavke.Add(nova); List <_Osoba> osobe = new List <_Osoba>(); if (!string.IsNullOrEmpty(osoba.Ime) || !string.IsNullOrEmpty(osoba.Prezime) || !string.IsNullOrEmpty(osoba.BrojDokumenta) || !string.IsNullOrEmpty(osoba.OIB) || !string.IsNullOrEmpty(osoba.Napomena) || !string.IsNullOrEmpty(osoba.Mjesto) || !string.IsNullOrEmpty(osoba.Posta) || !string.IsNullOrEmpty(osoba.Ulica)) { osobe.Add(osoba); } string oznakaPP; int blagajna = Naplata.Blagajna(grad, idNaloga, out oznakaPP, idAplikacije); //definirano na vozilu if (string.IsNullOrEmpty(oznakaPP)) { oznakaPP = pp.Oznaka; } _Racun novi = new _Racun(0, idNaloga, null, idVrstePlacanja, null, null, vrsta, "", idDjelatnika, djel.ImeNaRacunu, 2, DateTime.Now, 0, 0, pdv, osnovica, ukupno, pp.PDV, djel.OIB ?? "", blagajna == -1 ? 1 : blagajna, "", false, "", "", true, "", "", "", DateTime.Now, oznakaPP, poziv, "", "", "", false, false, false, false, "", stavke, osobe); string brrac, pozivna; return(Naplata.NaplatiPauk(grad, novi, idStatusa, out idRacuna, out brrac, out pozivna, idAplikacije)); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NAPLATA S UREĐAJA"); idRacuna = -1; return(""); } }
public string Naplati(string grad, int idKorisnika, int kolicina) { try { int idVrstePlacanja = 1; string vrsta = Naplata.VrstaPlacanja(grad, idVrstePlacanja, idAplikacije); _PoslovniProstor pp = PoslovniProstor.DohvatiPoslovniProstor(grad, 4, idAplikacije); if (pp == null) { return("Niste definirali poslovni prostor!"); } _Djelatnik djel = Korisnici.DohvatiDjelatnika(grad, idKorisnika, idAplikacije); using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { List <_Stavka> stavke = new List <_Stavka>(); RACUNI_STAVKE_OPI st = db.RACUNI_STAVKE_OPIs.First(i => i.IDRedarstva == 4 && i.Obrisan == false && i.IDStatusa == null); decimal ukupno = (decimal)(kolicina * st.Iznos); _Stavka nova = new _Stavka(0, 0, st.IDOpisaStavke, st.NazivOpisaStavke, st.Lezarina, kolicina, (decimal)st.Iznos, 0, 0, ukupno, pp.PDV, ""); stavke.Add(nova); List <_Osoba> osobe = new List <_Osoba>(); int blagajna = 1; _Racun novi = new _Racun(0, -1, null, idVrstePlacanja, null, null, vrsta, "", idKorisnika, djel.ImeNaRacunu, 4, DateTime.Now, 0, 0, 0, 0, ukupno, pp.PDV, djel.OIB ?? "", blagajna, "", false, "", "", true, "", "", "", DateTime.Now, pp.Oznaka, "", "", "", "", false, false, false, false, "", stavke, osobe); return(Naplata.NaplatiParking(grad, novi, false, idAplikacije)); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NAPLATA PARKINGA S UREĐAJA"); return(""); } }
public bool RegistrirajPoslovniProstor(string grad, _PoslovniProstor prostor) { return(Fiskalizacija.RegistrirajPP(grad, prostor, idAplikacije)); }
public bool?IzmjeniPoslovniProstor(string grad, _PoslovniProstor prostor) { return(PoslovniProstor.IzmjeniPoslovniProstor(grad, prostor, idAplikacije)); }
public static bool?IzmjeniPoslovniProstor(string grad, _PoslovniProstor prostor, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { POSLOVNI_PROSTOR pp; if (db.POSLOVNI_PROSTORs.Any(i => i.IDRedarstva == prostor.IDRedarstva)) { pp = db.POSLOVNI_PROSTORs.First(i => i.IDRedarstva == prostor.IDRedarstva); } else { pp = new POSLOVNI_PROSTOR(); int id = 1; if (db.POSLOVNI_PROSTORs.Any()) { id = db.POSLOVNI_PROSTORs.Max(i => i.IDRedarstva); } pp.IDPoslovnogProstora = id; pp.IDRedarstva = prostor.IDRedarstva; } pp.Naziv = prostor.Naziv; pp.Podnaslov = prostor.Podnaslov; pp.USustavu = prostor.USustavu; pp.Web = prostor.Web; pp.Email = prostor.Email; pp.Opis = prostor.Opis; pp.Ulica = prostor.Ulica; pp.Broj = prostor.Broj; pp.Dodatak = prostor.Dodatak; pp.Posta = prostor.Posta; pp.Mjesto = prostor.Mjesto; pp.Tel = prostor.Tel; pp.Fax = prostor.Fax; pp.Banka = prostor.Banka; pp.OIB = prostor.OIB; pp.Oznaka = prostor.Oznaka ?? ""; //todo obrisi pp.RadnoVrijeme = prostor.RadnoVrijeme; pp.DatumPrimjene = prostor.DatumPrimjene; pp.PDV = prostor.PDV; pp.Dospijece = prostor.Dosipijece; if (!db.POSLOVNI_PROSTORs.Any(i => i.IDRedarstva == prostor.IDRedarstva)) { prostor.IDPoslovnogProstora = pp.IDPoslovnogProstora; db.POSLOVNI_PROSTORs.InsertOnSubmit(pp); } db.SubmitChanges(); int ok = Gradovi.IzmjeniUplatnicu(grad, prostor.Uplatnica, idAplikacije); if (ok == -1) { return(null); } if (pp.IDFiskaliziranog != null) { Fiskalizacija.IzmjeniPP(grad, prostor, idAplikacije); } else { Fiskalizacija.DodajPP(grad, prostor, idAplikacije); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku("", ex, idAplikacije, "IZMJENI POSLOVNI PROSTOR"); return(false); } }
public static Tuple <string, decimal, string> NaplatiParking(string grad, _Opazanje opazanje, int idStavke, int idVrstePlacanja, int kolicina, string poziv, int tipPrintera, int idAplikacije) { decimal iznos; try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { //todo zone RACUNI_STAVKE_OPI st = db.RACUNI_STAVKE_OPIs.First(i => i.IDOpisaStavke == idStavke && i.IDRedarstva == 4); if (st == null) { return(new Tuple <string, decimal, string>("", 0, "Ne postoji opis stavke računa!")); } iznos = (decimal)st.Iznos * kolicina; bool uplatnica; string vrsta = Naplata.VrstaPlacanja(grad, idVrstePlacanja, idAplikacije, out uplatnica); _PoslovniProstor pp = PoslovniProstor.DohvatiPoslovniProstor(grad, 4, idAplikacije); if (pp == null) { return(new Tuple <string, decimal, string>("", 0, "Niste definirali poslovni prostor!")); } //provjera poziva if (!string.IsNullOrEmpty(poziv)) { Tuple <string, string> kontrola = Sustav.ProvjeraPoziva(grad, poziv, st.Iznos.Value, 4, idAplikacije); if (!string.IsNullOrEmpty(kontrola.Item1)) { return(new Tuple <string, decimal, string>("", 0, kontrola.Item1)); } poziv = kontrola.Item2; } _Djelatnik djel = Korisnici.DohvatiDjelatnika(grad, (int)opazanje.IDDjelatnika, idAplikacije); List <_Stavka> stavke = new List <_Stavka>(); decimal ukupno = (decimal)(kolicina * st.Iznos); decimal osnovica = Math.Round(ukupno / ((decimal)(100 + pp.PDV) / 100), 2); decimal pdv = Math.Round(osnovica * pp.PDV / 100, 2); _Stavka nova = new _Stavka(0, 0, st.IDOpisaStavke, st.NazivOpisaStavke, st.Lezarina, kolicina, (decimal)st.Iznos, pdv, osnovica, ukupno, pp.PDV, ""); stavke.Add(nova); int blagajna = 1; _Racun novi = new _Racun(0, -1, null, idVrstePlacanja, null, null, vrsta, "", (int)opazanje.IDDjelatnika, djel.ImeNaRacunu, 4, DateTime.Now, 0, 0, pdv, osnovica, ukupno, pp.PDV, djel.OIB ?? "", blagajna, "", false, "", string.IsNullOrEmpty(opazanje.Registracija)? "":opazanje.Registracija + " (" + opazanje.Drzava + ")", true, "", "", "", DateTime.Now, pp.Oznaka, poziv, "", "", opazanje.Registracija + " (" + opazanje.Drzava + ")", false, false, false, false, "", stavke, new List <_Osoba>()); if (opazanje.IDOpazanja == 0) { return(new Tuple <string, decimal, string>(Naplata.NaplatiParking(grad, novi, uplatnica, idAplikacije, tipPrintera), iznos, "")); } PARKING_OPAZANJA op = db.PARKING_OPAZANJAs.First(i => i.IDOpazanja == opazanje.IDOpazanja); opazanje.IDLokacije = op.IDLokacije; op.IDStatusa = st.IDStatusa; op.Kaznjen = true; op.Iznos = st.Iznos; opazanje.IDStatusa = st.IDStatusa; //ako je naplata (0) po satu preskoči ovo if (st.IDStatusa != 0) { // TODO izbacio jer je suvišno nakon promjene? /* * int idPrekrsaja = DodajPostupanje(grad, opazanje, iznos, idAplikacije);//todo iznos kazne * * if (idPrekrsaja == -1) * { * iznos = 0; * return ""; * } */ novi.IDReference = op.IDOpazanja; } db.SubmitChanges(); return(new Tuple <string, decimal, string>(Naplata.NaplatiParking(grad, novi, uplatnica, idAplikacije, tipPrintera), iznos, "")); //;Naplata.NaplatiParking(grad, novi, uplatnica, idAplikacije, tipPrintera); //todo dodati record u akcije } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NAPLATA PARKINGA"); iznos = 0; return(new Tuple <string, decimal, string>("", 0, ex.Message)); } }
public string DeblokirajVozilo(string grad, int idNaloga, int idDjelatnika, int idVrstePlacanja, _Osoba osoba, string poziv, out int idRacuna) { try { string vrsta = Naplata.VrstaPlacanja(grad, idVrstePlacanja, idAplikacije); _PoslovniProstor pp = PoslovniProstor.DohvatiPoslovniProstor(grad, 2, idAplikacije); _Djelatnik djel = Korisnici.DohvatiDjelatnika(grad, idDjelatnika, idAplikacije); List <_Stavka> stavke = new List <_Stavka>(); using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { RACUNI_STAVKE_OPI st = db.RACUNI_STAVKE_OPIs.First(i => i.IDStatusa == 22 && i.IDRedarstva == 2 && i.Obrisan == false); RACUNI_STAVKE_OPI stl = db.RACUNI_STAVKE_OPIs.First(i => i.IDStatusa == 22 && i.IDRedarstva == 2 && i.Obrisan == false && i.Lezarina); Pauk np = db.Pauks.First(i => i.IDNaloga == idNaloga); int kolicina = DateTime.Today.Date.Subtract(np.DatumDeponija.Value.Date).Days; decimal osnovicaD = Math.Round((decimal)(st.Iznos / ((decimal)(100 + pp.PDV) / 100)), 2); decimal pdvD = Math.Round(osnovicaD * pp.PDV / 100, 2); osnovicaD = (decimal)(st.Iznos - pdvD); decimal ukupnoD = (decimal)st.Iznos; decimal osnovicaL = Math.Round((decimal)(stl.Iznos / ((decimal)(100 + pp.PDV) / 100)), 2) * kolicina; decimal pdvL = Math.Round(osnovicaL * pp.PDV / 100, 2); osnovicaL = (decimal)(stl.Iznos * kolicina - pdvL); decimal ukupnoL = (decimal)stl.Iznos * kolicina; _Stavka nova = new _Stavka(0, 0, st.IDOpisaStavke, st.NazivOpisaStavke, st.Lezarina, 1, (decimal)st.Iznos, pdvD, osnovicaD, ukupnoD, pp.PDV, ""); _Stavka novaL = new _Stavka(0, 0, stl.IDOpisaStavke, stl.NazivOpisaStavke, stl.Lezarina, kolicina, (decimal)stl.Iznos, pdvL, osnovicaL, ukupnoL, pp.PDV, ""); stavke.Add(nova); if (kolicina > 0) { stavke.Add(novaL); } List <_Osoba> osobe = new List <_Osoba>(); osobe.Add(osoba); string oznakaPP; int blagajna = Naplata.Blagajna(grad, idNaloga, out oznakaPP, idAplikacije); //definirano na vozilu if (string.IsNullOrEmpty(oznakaPP)) { oznakaPP = pp.Oznaka; } _Racun novi = new _Racun(0, idNaloga, null, idVrstePlacanja, null, null, vrsta, "", idDjelatnika, djel.ImeNaRacunu, 2, DateTime.Now, 0, 0, pdvD + pdvL, osnovicaD + osnovicaL, ukupnoD + ukupnoL, pp.PDV, djel.OIB ?? "", blagajna == -1 ? 1 : blagajna, "", false, "", "", true, "", "", "", DateTime.Now, oznakaPP, poziv, "", "", "", false, false, false, false, "", stavke, osobe); string brrac, pozivna; return(Naplata.NaplatiPauk(grad, novi, 22, out idRacuna, out brrac, out pozivna, idAplikacije)); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NAPLATA S UREĐAJA"); idRacuna = -1; return(""); } }
public static bool IzmjeniPP(string grad, _PoslovniProstor pos, int idAplikacije) { try { int idPoste; using (PostavkeDataContext db = new PostavkeDataContext()) { idPoste = db.POSTEs.First(i => i.Posta == pos.Posta).IDPoste; } using (FiskalServiceClient sc = new FiskalServiceClient()) { _Vlasnik vl = new _Vlasnik { Id = pos.IDVlasnikaFiskal.Value, Naziv = pos.Naziv, OIB = pos.OIB, SjedisteDodKBR = pos.Dodatak, SjedisteKBR = pos.Broj, SjedistePosta = idPoste, SjedisteUlica = pos.Ulica, TipOsobe = 'P', USustavuPDVa = true //todo }; bool Vlasnik = sc.IzmjeniVlasnika(vl); if (Vlasnik) { FiskalizacijaSR._PoslovniProstor pp = new FiskalizacijaSR._PoslovniProstor() { Id = pos.IDFisklaizacije.Value, JLSNaziv = pos.Mjesto, KBR = pos.Broj, Naziv = pos.Naziv, NazivRed1 = pos.Podnaslov, NazivRed2 = "", DodKBR = pos.Dodatak, OznakaNaRacunu = pos.Oznaka, Posta = idPoste, Ulica = pos.Ulica, Vlasnik = pos.IDVlasnikaFiskal.Value, SljednostRacuna = "P", Zatvoren = "" }; sc.IzmjeniPoslovniProstor(pp); _RadnoVrijeme rv = new _RadnoVrijeme { PoslovniProstor = pos.IDFisklaizacije.Value, Opis = pos.RadnoVrijeme, PocetakPrimjene = DateTime.Now, Zatvaranje = "", Pon = "", Uto = "", Sri = "", Cet = "", Pet = "", Sub = "", Ned = "", Praznik = "", Prijavljen = false }; bool idrv = sc.IzmjeniRadnoVrijeme(rv); } else { sc.Close(); return(false); } sc.Close(); return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "REGISTRIRAJ POSLOVNI PROSTOR - IZMJENA"); return(false); } }
/*:: POSLOVNI PROSTOR ::*/ public static bool DodajPP(string grad, _PoslovniProstor pos, int idAplikacije) { try { int idPoste; using (PostavkeDataContext db = new PostavkeDataContext()) { idPoste = db.POSTEs.First(i => i.Posta == pos.Posta).IDPoste; } using (FiskalServiceClient sc = new FiskalServiceClient()) { _Vlasnik vl = new _Vlasnik() { Id = pos.IDVlasnikaFiskal ?? 0, Naziv = pos.Naziv, OIB = pos.OIB, SjedisteDodKBR = pos.Dodatak, SjedisteKBR = pos.Broj, SjedistePosta = idPoste, SjedisteUlica = pos.Ulica, TipOsobe = 'P', USustavuPDVa = true //todo }; int idVlasnika = pos.IDVlasnikaFiskal == null?sc.DodajVlasnika(vl) : pos.IDVlasnikaFiskal.Value; if (idVlasnika == -1) { return(false); } FiskalizacijaSR._PoslovniProstor pp = new FiskalizacijaSR._PoslovniProstor { Id = -1, JLSNaziv = pos.Mjesto, KBR = pos.Broj, Naziv = pos.Naziv, NazivRed1 = pos.Podnaslov, NazivRed2 = "", DodKBR = pos.Dodatak, OznakaNaRacunu = pos.Oznaka, Posta = idPoste, Ulica = pos.Ulica, Vlasnik = idVlasnika, SljednostRacuna = "P", Zatvoren = "" }; int idpp = sc.DodajPoslovniProstor(pp); if (idpp != -1) { _RadnoVrijeme rv = new _RadnoVrijeme() { PoslovniProstor = idpp, Opis = pos.RadnoVrijeme, PocetakPrimjene = DateTime.Now }; int idrv = sc.DodajRadnoVrijeme(rv); } sc.Close(); using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { POSLOVNI_PROSTOR poslpro = db.POSLOVNI_PROSTORs.First(i => i.IDPoslovnogProstora == pos.IDPoslovnogProstora); poslpro.IDVlasnikaFiskal = idVlasnika; poslpro.IDFiskaliziranog = idpp == -1 ? (int?)null : idpp; db.SubmitChanges(); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "REGISTRIRAJ POSLOVNI PROSTOR"); return(false); } }