static _NoviPrekrsaj KreirajNoviPrekrsaj(__Prekrsaj p) { _NoviPrekrsaj ret = null; try { int statusOcitanja = 0; switch (p.StatusOcitanja) { case "I": statusOcitanja = 3; break; case "O": statusOcitanja = 1; break; case "R": statusOcitanja = 2; break; } ret = new _NoviPrekrsaj(0, p.IDLokacije, (int)p.IDOpisaPrekrsaja, p.IDOpisaZakona == null ? 0 : (int)p.IDOpisaZakona, p.Lokacija != null? p.Lokacija.IDPozicioniranja:0, 0, p.IDDjelatnika, p.DatumVrijeme, p.Registracija, "", p.Latitude, p.Longitude, p.Adresa, 0, p.BrojDokumenta, p.Nalog != null, p.Nalog != null ? (int)p.Nalog.IDNaloga : 0, p.Drzava, statusOcitanja, "", p.Trajanje != null ? (int)p.Trajanje : 0); ret.ZakonskaSankcija = p.ZakonskaSankcija; } catch (Exception ex) { SpremiGresku("", ex, "KREIRAJ NOVI PREKRSAJ"); } return(ret); }
public static string SpremiPrekrsaj(string grad, __Prekrsaj prekrsaj, List <byte[]> slike, out int idLokacije) { idLokacije = -1; try { if (prekrsaj.Lokacija != null) { idLokacije = prekrsaj.IDLokacije = SpremiLokaciju(grad, prekrsaj.Lokacija); } int idp = -1; _NoviPrekrsaj np = KreirajNoviPrekrsaj(prekrsaj); if (prekrsaj.IDLokacije > 0 && np != null) { idp = Mobile.NoviPrekrsaj(grad, np, idRedarstva, idAplikacije); } if (idp > 0) { Prekrsaj.DodajSliku(grad, np.IDLokacije, slike, idRedarstva, idAplikacije); return(Ispis.Predlozak(grad, np.IDLokacije, 1, 0, idAplikacije)); } }catch (Exception ex) { SpremiGresku(grad, ex, "SPREMI PREKRSAJ"); } return(""); }
/*:: PREKRŠAJ ::*/ public static bool SpremiPrekrsajNovo(string grad, _Lokacija lokacija, ref _NoviPrekrsaj prekrsaj, int idRedarstva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { string bu = prekrsaj.BrojUpozorenja; if (db.Prekrsajis.Any(i => i.BrojUpozorenja == bu)) { prekrsaj.IDPrekrsaja = db.Prekrsajis.First(i => i.BrojUpozorenja == bu).IDPrekrsaja; prekrsaj.IDLokacije = db.Prekrsajis.First(i => i.BrojUpozorenja == bu).IDLokacije; return(true); } Lokacije lok = new Lokacije(); lok.Lat = lokacija.Latitude; lok.Long = lokacija.Longitude; lok.RegistracijskaPlocica = lokacija.Registracija; lok.DatumVrijeme = lokacija.DatumVrijeme.ToLocalTime(); lok.IDDjelatnika = lokacija.IDDjelatnika; lok.IDNacinaPozicioniranja = lokacija.IDPozicioniranja; lok.IDTerminala = lokacija.IDTerminala; lok.CellTowerID = lokacija.CellTowerID; lok.SignalStrength = lokacija.SignalStrength; lok.HDOP = lokacija.HDOP; lok.Brzina = lokacija.Brzina; lok.GPSAcc = lokacija.Preciznost; lok.Battery = lokacija.Baterija; lok.Punjac = lokacija.Punjac; db.Lokacijes.InsertOnSubmit(lok); db.SubmitChanges(); prekrsaj.IDLokacije = lok.IDLokacije; int id = NoviPrekrsaj(grad, prekrsaj, idRedarstva, idAplikacije); prekrsaj.IDPrekrsaja = id; if (id != -1) { return(true); } return(false); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "SPREMI LOKACIJU i PREKRSAJ"); return(false); } }
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); } }