public static int DodajPrekrsaj(string grad, _PrijavaPauk zahtjev, int idOpisa, decimal kazna, string registracija, string adresa, string drzava, bool kaznjava, bool nalogPauku, bool lisice, int idRedarstva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { if (db.Zahtjevis.First(i => i.IDPrijave == zahtjev.IDPrijave).IDStatusa == 4) { //storniran od strane pauka return(-2); } if (db.Prekrsajis.Any(i => i.IDLokacije == zahtjev.IDLokacije && i.Test == false)) { return(db.Prekrsajis.First(i => i.IDLokacije == zahtjev.IDLokacije).IDPrekrsaja); } string brojUp = Prekrsaj.GenerirajPozivNaBroj(grad, kaznjava, zahtjev.DatumVrijeme, kazna, idAplikacije); //int idPredloska = obavijest ? Prekrsaj.IDPredloskaObavijesti(grad, idAplikacije) : Prekrsaj.IDPredloskaUpozorenja(grad, idAplikacije); //todo ovisno o redarstvu i kaznjava (obavijest) i pauk int idPredloska = db.PredlosciIspisas.First(i => i.IDRedarstva == idRedarstva && i.Pauk && i.Kaznjava == kaznjava).IDPRedloska; Zahtjevi z = db.Zahtjevis.First(i => i.IDPrijave == zahtjev.IDPrijave); #region PREKRSAJ Prekrsaji prek = new Prekrsaji(); prek.IDLokacije = zahtjev.IDLokacije; prek.IDSkracenogOpisa = idOpisa; prek.IDDjelatnika = zahtjev.IDOdobravatelja; prek.Vrijeme = zahtjev.DatumVrijeme; prek.RegistracijskaPlocica = registracija.Replace(" ", "").Replace("-", "").ToUpper(); prek.BrojUpozorenja = brojUp; prek.Lat = zahtjev.Lat; prek.Long = zahtjev.Lng; prek.IDNacinaPozicioniranja = 3; prek.Adresa = adresa; prek.Kazna = kazna; prek.IDPredloskaIspisa = idPredloska; prek.PozivNaBroj = brojUp; prek.Test = false; prek.Poslano = false; prek.Status = false; prek.Napomena = null; prek.Tekst = null; prek.GMapsUlica = null; prek.NalogPauka = nalogPauku; prek.IDNaloga = 0; prek.Zakljucan = false; prek.IDRacuna = null; //todo obrisi //prek.IDRedarNaplate = null; //prek.IDVrstaPlacanja = null; //prek.Placeno = false; //prek.DatumPlacanja = null; //prek.PlacanjePreneseno = false; prek.KraticaDrzave = drzava; prek.StatusOcitanja = z.TipOcitanja; prek.Ocitanja = z.Ocitanja; prek.TrajanjePostupka = z.Trajanje; prek.Rucno = true; prek.Zahtjev = true; prek.IDRedarstva = idRedarstva; prek.IDOpisaZakona = Zakoni.DohvatiIDNovogZakona(grad, prek.IDSkracenogOpisa, idAplikacije); db.Prekrsajis.InsertOnSubmit(prek); db.SubmitChanges(); #endregion Lokacije lok = db.Lokacijes.First(i => i.IDLokacije == zahtjev.IDLokacije); lok.IDDjelatnika = zahtjev.IDOdobravatelja; db.SubmitChanges(); //todo - trenutno je samo za lokacije, kad zavrsi testno razdoblje to makni if (grad == "Lokacije") { if (prek.IDPredloskaIspisa == 15 || prek.IDPredloskaIspisa == 2) { Vpp._VppPrijenos prekrsaj = new Vpp._VppPrijenos(prek.IDPrekrsaja, 1, prek.Kazna, prek.PozivNaBroj, "Obavijest"); bool ok = Vpp.DodajVPP(grad, prekrsaj, idAplikacije); if (ok) { prek.Poslano = true; db.SubmitChanges(); } } } if (nalogPauku) { bool ok = KreirajNalog(grad, prek.IDPrekrsaja, zahtjev.IDLokacije, zahtjev, lisice, idRedarstva, idAplikacije); if (!ok) { prek.Test = true; db.SubmitChanges(); return(-1); } } else { //todo ako nije nalog pauku razlikovati odobreno jer ce drasku doci odobreno ali bez naloga pauku! Zatvori(grad, zahtjev.IDPrijave, 3, zahtjev.IDOdobravatelja.Value, null, prek.IDPrekrsaja, "ODOBRENO", idRedarstva, idAplikacije); } if (kaznjava) { new Thread(() => RentaCar.PostojiRCVozilo(grad, prek.RegistracijskaPlocica, prek.IDLokacije, 0, idAplikacije)).Start(); } return(prek.IDPrekrsaja); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "DODAJ PREKRŠAJ"); return(-1); } }
public static int NoviPrekrsaj(string grad, _NoviPrekrsaj prekrsaj, int idRedarstva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { int idPredloska = prekrsaj.IDPredloska; if (idPredloska <= 0) { idPredloska = db.PredlosciIspisas.First(i => i.IDRedarstva == idRedarstva && i.Kaznjava == prekrsaj.ZakonskaSankcija).IDPRedloska; } decimal kazna = prekrsaj.Kazna; if (kazna <= 0) { kazna = Zakoni.IznosKazneS(grad, prekrsaj.IDOpisaPrekrsaja, idAplikacije); } Prekrsaji pre = new Prekrsaji(); pre.IDLokacije = prekrsaj.IDLokacije; pre.IDSkracenogOpisa = prekrsaj.IDOpisaPrekrsaja; // s vremenom ukloniti - todo! pre.IDNacinaPozicioniranja = prekrsaj.IDPozicioniranja; pre.IDPredloskaIspisa = idPredloska; pre.IDDjelatnika = prekrsaj.IDDjelatnika; pre.Vrijeme = prekrsaj.Vrijeme; pre.RegistracijskaPlocica = prekrsaj.Registracija.Replace("-", "").Replace(" ", ""); pre.BrojUpozorenja = prekrsaj.BrojUpozorenja; pre.Lat = prekrsaj.Latitude; pre.Long = prekrsaj.Longitude; pre.Adresa = prekrsaj.Adresa; pre.Kazna = kazna; pre.PozivNaBroj = prekrsaj.PozivNaBroj; pre.NalogPauka = prekrsaj.Nalog; pre.IDNaloga = null; pre.KraticaDrzave = prekrsaj.Drzava; pre.Test = false; pre.Poslano = false; pre.Zakljucan = false; pre.IDRacuna = null; pre.StatusOcitanja = (byte?)prekrsaj.StatusOcitanja; pre.Ocitanja = prekrsaj.Ocitanja; pre.TrajanjePostupka = prekrsaj.Trajanje; pre.IDRedarstva = idRedarstva; try { if (prekrsaj.IDZakona == 0) { pre.IDOpisaZakona = db.OpisiPrekrsajas.First(i => i.IDOpisa == prekrsaj.IDOpisaPrekrsaja).IDNovog; } else { pre.IDOpisaZakona = prekrsaj.IDZakona; } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NOVI PREKRSAJ - unificirani zakon"); } string napomena = string.Format("IDLokacije: {0}, IDOpisa: {1}, Registracija: {2}, Broj: {3}, Adresa: {4}", prekrsaj.IDLokacije, prekrsaj.IDOpisaPrekrsaja, prekrsaj.Registracija, prekrsaj.BrojUpozorenja, prekrsaj.Adresa); Sustav.SpremiAkciju(grad, prekrsaj.IDDjelatnika, 92, napomena, 1, idAplikacije); db.Prekrsajis.InsertOnSubmit(pre); db.SubmitChanges(); //todo - trenutno je samo za lokacije, kad zavrsi testno razdoblje to makni if (grad == "Lokacije") { if (pre.IDPredloskaIspisa == 15 || pre.IDPredloskaIspisa == 2) { Vpp._VppPrijenos prijenos = new Vpp._VppPrijenos(pre.IDPrekrsaja, 1, pre.Kazna, pre.PozivNaBroj, "Obavijest"); bool ok = Vpp.DodajVPP(grad, prijenos, idAplikacije); if (ok) { pre.Poslano = true; db.SubmitChanges(); } } } if (db.PredlosciIspisas.First(i => i.IDPRedloska == idPredloska).NazivPredloska == "OBAVIJEST") { new Thread(() => RentaCar.PostojiRCVozilo(grad, pre.RegistracijskaPlocica, pre.IDLokacije, 60000, idAplikacije)).Start(); } return(pre.IDPrekrsaja); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NOVI PREKRSAJ"); return(-1); } }