public bool Storno(string grad, int idKorisnkika) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { RACUNI dv = db.RACUNIs.OrderByDescending(i => i.IDRacuna).First(i => i.IDRedarstva == 4); if (dv.Storniran) { return(false); } string brrac; _Racun racun = Naplata.DohvatiRacun(grad, dv.IDRacuna, true, idAplikacije); racun.IDDjelatnika = idKorisnkika; racun.DatumVrijeme = DateTime.Now; racun.OIB = db.Djelatniks.First(i => i.IDDjelatnika == idKorisnkika).OIB; racun.Operater = db.Djelatniks.First(i => i.IDDjelatnika == idKorisnkika).ImeNaRacunu; racun.Orginal = racun.BrojRacuna; racun.Storniran = true; racun.Osnovica = racun.Osnovica * -1; racun.Ukupno = racun.Ukupno * -1; racun.PDV = racun.PDV * -1; //racun.Blagajna = racun.Blagajna; //racun.DatumPreuzimanja = racun.DatumPreuzimanja; racun.Godina = DateTime.Now.Year; //racun.IDRedarstva = 4; //racun.IDReference = racun.IDReference; //racun.IDVrste = racun.IDVrste; //racun.Napomena = racun.Napomena; //racun.NazivVrste = racun.NazivVrste; //racun.Osobe = racun.Osobe; //racun.OznakaPP = racun.OznakaPP; //racun.PDVPosto = racun.PDVPosto; //racun.PozivNaBr = racun.PozivNaBr; int id = Naplata.StornirajRacun(grad, racun, 0, null, null, out brrac, idAplikacije); if (id == -1) { return(false); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NAPLATA PARKINGA S UREĐAJA"); 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 static string IspisKopijeRacunaParking(string grad, int idRacuna, int idAplikacije) //{ // try // { // using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) // { // _Racun racun = Naplata.DohvatiRacun(grad, idRacuna, idAplikacije); // if (racun == null) // { // return ""; // } // return Ispis.RacunParking(grad, racun, false, idAplikacije); // } // } // catch (Exception ex) // { // Sustav.SpremiGresku(grad, ex, idAplikacije, "KOPIJA RACUNA"); // return ""; // } //} public static string IspisKopijeRacunaParking(string grad, int idRacuna, int idAplikacije, int tipPrintera) { try { _Racun racun = Naplata.DohvatiRacun(grad, idRacuna, true, idAplikacije); if (racun == null) { return(""); } bool info; Naplata.VrstaPlacanja(grad, racun.IDVrste, idAplikacije, out info); return(Ispis.RacunParking(grad, racun, info, idAplikacije, tipPrintera)); } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "KOPIJA RACUNA"); return(""); } }
public string Naplati(string grad, _Racun racun, out int idRacuna, out string poziv) { string brrac; return(Naplata.NaplatiPauk(grad, racun, -10, out idRacuna, out brrac, out poziv, idAplikacije)); }
public int StornirajRacun(string grad, _Racun racun, int idStatusa, byte[] prilog, string filename, out string brrac) { return(Naplata.StornirajRacun(grad, racun, idStatusa, prilog, filename, out brrac, idAplikacije)); }
/*:: NAPLATA ::*/ #region NAPLATA public int NoviRacun(string grad, _Racun racun, out string brrac, out string poziv) { return(Naplata.NoviRacun(grad, racun, out brrac, out poziv, idAplikacije)); }
//todo obrisi naplati //public int NoviBrojRacuna(string grad, int idNaloga, out decimal? iznos) //{ // return Financije.NoviBrojRacuna(grad, idNaloga, out iznos, idAplikacije); //} // public int?Pokusaj(string grad, _Racun racun, int idTerminala, ref string brrac) { return(Nalog.Pokusaj(grad, racun, idTerminala, ref brrac, idAplikacije)); }
/*:: MUP ::*/ public List <_Osoba> DohvatMUPa(string grad, _Racun racun, int idKorisnika) { return(Naplata.DohvatMUPa(grad, racun, idKorisnika, idAplikacije)); }
public static bool SpremiOsobe(string grad, List<_Osoba> osobe, int idRacuna, bool mupIzvor, bool odgoda, int idAplikacije) { //todo da li je odgoda odmah dostaviti try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { int x = 0; foreach (var s in osobe) { if (s == null) { continue; } if (string.IsNullOrEmpty(s.Ime) && string.IsNullOrEmpty(s.Prezime) && string.IsNullOrEmpty(s.Napomena) && string.IsNullOrEmpty(s.OIB) && string.IsNullOrEmpty(s.BrojDokumenta) && string.IsNullOrEmpty(s.Ulica)) { continue; } RACUNI_OSOBE oso = new RACUNI_OSOBE(); var idosobe = 1; if (db.RACUNI_OSOBEs.Any()) { idosobe = db.RACUNI_OSOBEs.Max(i => i.IDOsobe) + 1; } oso.IDOsobe = idosobe; oso.Ime = s.Ime ?? ""; oso.Prezime = s.Prezime ?? ""; oso.Ulica = s.Ulica ?? ""; oso.KucniBroj = s.KBr ?? ""; oso.Posta = s.Posta ?? ""; oso.Mjesto = s.Mjesto ?? ""; oso.Drzava = s.Drzava ?? ""; oso.OIB = s.OIB ?? ""; oso.Napomena = s.Napomena ?? ""; oso.BrojDokumenta = s.BrojDokumenta ?? ""; oso.Rodjen = s.Rodjen; oso.MUP = mupIzvor; db.RACUNI_OSOBEs.InsertOnSubmit(oso); db.SubmitChanges(); RACUNI_OSOBE_RELACIJE rel = new RACUNI_OSOBE_RELACIJE(); rel.IDOsobe = idosobe; rel.IDRacuna = idRacuna; rel.Vlasnik = s.Vlasnik ?? false; db.RACUNI_OSOBE_RELACIJEs.InsertOnSubmit(rel); db.SubmitChanges(); x++; } //ima uključen dohvat od mupa i nije proslijeđeno ništa od draška i idvrste je odgoda if (!mupIzvor && odgoda && !osobe.Any(i => i.Vlasnik == true)) { try { using (PostavkeDataContext pdb = new PostavkeDataContext()) { bool mup = pdb.GRADOVIs.First(i => i.IDGrada == Sistem.IDGrada(grad)).DohvatVlasnikaMUP; if (mup) // uključen dohvat od mupa i nije dodana niti jedna osoba { _Racun rac = Naplata.DohvatiRacun(grad, idRacuna, true, idAplikacije); Naplata.DohvatMUPa(grad, rac, rac.IDDjelatnika, idAplikacije); } } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "OSOBE RAČUNA - DOHVAT MUP"); } } return true; } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "OSOBE RAČUNA"); 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(""); } }