public static bool DodajNalog(string grad, int idPrekrsaja, int idNaloga, _PrijavaPauk zahtjev, bool lisice, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { VozilaPauka vp = db.VozilaPaukas.First(i => i.IDVozila == zahtjev.IDPrijavitelja); Prekrsaji pre = db.Prekrsajis.First(i => i.IDPrekrsaja == idPrekrsaja); pre.IDNaloga = idNaloga; pre.NalogPauka = true; db.SubmitChanges(); NaloziPauku nal = new NaloziPauku(); nal.IDNaloga = idNaloga; //todo - ako obradjuje lisice / obradjuje nalog if (vp != null) { if (vp.ObradjujeNalog) { nal.IDStatusa = 8; nal.IDVozila = zahtjev.IDPrijavitelja; nal.Redoslijed = 1; } else { nal.IDStatusa = 0; nal.IDVozila = null; nal.Redoslijed = 0; } } else { nal.IDStatusa = 0; nal.IDVozila = null; nal.Redoslijed = 0; } nal.NalogZatvoren = false; nal.DatumNaloga = zahtjev.DatumVrijeme; nal.StornoRedara = false; nal.IDRazloga = 0; nal.Lisice = lisice; db.NaloziPaukus.InsertOnSubmit(nal); db.SubmitChanges(); Pauk pau = new Pauk(); pau.IDNaloga = idNaloga; if (vp != null) { pau.Status = vp.ObradjujeNalog ? 8 : 0; } else { pau.Status = 0; } pau.NalogZatvoren = false; pau.DatumNaloga = zahtjev.DatumVrijeme; pau.StornoRedara = false; db.Pauks.InsertOnSubmit(pau); db.SubmitChanges(); if (vp.ObradjujeNalog) { Redoslijed(grad, zahtjev.IDPrijavitelja.Value, idNaloga, idAplikacije); } Nalog.SpremiPovijest(grad, idNaloga, zahtjev.IDPrijavitelja, 0, true, idAplikacije); //novi if (vp.ObradjujeNalog) { Nalog.SpremiPovijest(grad, idNaloga, zahtjev.IDPrijavitelja, 8, true, idAplikacije); //dodijeljen } new Thread(() => MailLista.PosaljiNaredbu(grad, idNaloga, idAplikacije)).Start(); return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "DODAJ NALOG I DODIJELI"); return(false); } }
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 bool KreirajNalog(string grad, int idPrekrsaja, int idLokacije, _PrijavaPauk zahtjev, bool lisice, int idRedarstva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { int idNaloga = 1; if (db.NaloziPaukus.Any()) { idNaloga = db.NaloziPaukus.Max(i => i.IDNaloga) + 1; } bool ok = DodajNalog(grad, idPrekrsaja, idNaloga, zahtjev, lisice, idAplikacije); if (ok) { int idOdobravatelja = 0; if (zahtjev.IDOdobravatelja != null) { idOdobravatelja = zahtjev.IDOdobravatelja.Value; } SpremiAkcijuZahtjeva(grad, zahtjev.IDPrijave, idOdobravatelja, 5, idAplikacije); Zatvori(grad, zahtjev.IDPrijave, 3, idOdobravatelja, idNaloga, idPrekrsaja, "ODOBRENO", idRedarstva, idAplikacije); return(true); } return(false); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "DODAJ NALOG"); return(false); } }
/* -2 odustao od klasifikacije * -1 neaktivan * 0 aktivan * 1 preuzet * 2 odbijen * 3 prihvacen * 4 storniran * 5 izdao nalog pauku */ public static int Neobradjeni(string grad, int idDjelatnika, int zadrska, out _PrijavaPauk prijava, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { prijava = null; if (idDjelatnika == 0) { return(db.Zahtjevis.Count(i => i.IDStatusa == 0 && i.DatumVrijeme.Date == DateTime.Today.Date)); } var pri = from p in db.Zahtjevis where p.IDStatusa == 0 && p.DatumVrijeme.Date == DateTime.Today.Date orderby p.DatumVrijeme descending select new _PrijavaPauk( p.IDPrijave, p.IDLokacije, p.IDPrijavitelja, p.IDOdobravatelja, p.DatumVrijeme, p.Registracija, p.Lat, p.Lng, p.Adresa, p.KraticaDrzave, p.IDStatusa, p.IDOpisa, db.SlikaPrekrsajas.Where(i => i.IDLokacije == p.IDLokacije).Select(i => new _Slika(i.IDSlikePrekrsaja, idAplikacije == 1 ? null : i.Slika.ToArray())).ToList()); //if (!pri.Any()) //{ // //provjerava da li je neki zahtjev ostao visiti ako je vraća ga u obradu // new Thread(() => Preuzeti(grad, idDjelatnika, idAplikacije)).Start(); //} int x = 0; foreach (var q in pri) { if (db.ZahtjeviAkcijes.Any(i => i.IDZahtjeva == q.IDPrijave && i.IDAkcije == -2 && i.IDDjelatnika == idDjelatnika)) { x++; continue; } //ako je zadrska razlicito od nula, sustav ceka određeno virjeme prije nego dodijeli zahtjev redarima na terenu if (zadrska != 0) { if (DateTime.Now.Subtract(q.DatumVrijeme).TotalSeconds < zadrska) { continue; } } prijava = q; break; } return(pri.Count() - x); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NEOBRAĐENI ZAHTJEVI"); prijava = null; return(-1); } }