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 string GenerirajPozivNaBroj(string grad, decimal kazna) { return(Prekrsaj.GenerirajPozivNaBroj(grad, true, DateTime.Now, kazna, 1)); }