public static bool Preuzmi(string grad, int idZahtjeva, int idDjelatnika, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); //ako je vec netko preuzeo if (pri.IDStatusa != 0) { return(false); } pri.IDOdobravatelja = idDjelatnika; pri.IDStatusa = 1; db.SubmitChanges(); SpremiAkcijuZahtjeva(grad, idZahtjeva, idDjelatnika, 1, idAplikacije); return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "PREUZMI ZAHTJEV"); return(false); } }
/**/ public static TimeSpan Trajanje(string grad, int idZahtjeva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { var st = from s in db.PovijestNalogas where s.IDNaloga == idZahtjeva && s.Nalog == false orderby s.DatumVrijemeDogadjaja ascending select s; return(st.Max(i => i.DatumVrijemeDogadjaja).Subtract(st.Min(i => i.DatumVrijemeDogadjaja))); } } catch (Exception) { return(new TimeSpan(0, 0, 0, 0)); } } public static string Status(int id) { switch (id) { case -2: return("Odustao od klasifikacije"); case -1: return("Nije aktiviran"); //"Nema aktivnih odobravatelja"; case 0: return("Novi zahtjev"); case 1: return("Preuzet na obradu"); case 2: return("Odbijen"); case 3: return("Odobren"); case 4: return("Odustao od zahtjeva"); } return(""); } /*:: PONOVI ::*/ //public static void Preuzeti(string grad, int idDjelatnika, int idAplikacije) //{ // try // { // return; //todo // using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) // { // DateTime dat = DateTime.Now.Subtract(new TimeSpan(0, 0, 4, 0)); // foreach (var u in db.Zahtjevis.Where(i => i.IDStatusa == 1 && i.DatumVrijeme.Date == DateTime.Today.Date)) // { // bool aktivan; // using (PostavkeDataContext pb = new PostavkeDataContext()) // { // aktivan = pb.AKTIVNE_APLIKACIJEs.Any(a => // a.IDGrada == Sistem.IDGrada(grad) && // a.IDDjelatnika == u.IDOdobravatelja && // a.IDDjelatnika == idDjelatnika && // (a.IDAplikacije == 1 || a.IDAplikacije == 6) && // a.ZadnjaAktivnost >= dat); // } // if (!aktivan) // { // Sustav.SpremiGresku(grad, new Exception(idDjelatnika.ToString()), idAplikacije, "AUTOMATSKO VRAĆANJE U OBRADU"); // PonoviZahtjev(grad, u.IDPrijave, idAplikacije); // } // } // } // } // catch (Exception ex) // { // Sustav.SpremiGresku(grad, ex, idAplikacije, "AUTOMATSKO VRAĆANJE U OBRADU"); // } //} public static bool PonoviZahtjev(string grad, int idZahtjeva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { db.ZahtjeviAkcijes.DeleteAllOnSubmit(db.ZahtjeviAkcijes.Where(i => i.IDZahtjeva == idZahtjeva)); db.SubmitChanges(); Zahtjevi za = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); za.IDOdobravatelja = null; za.IDStatusa = 0; za.Poruka = ""; za.IDRedarstva = null; //todo mozda ne jer salje istom db.SubmitChanges(); return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "PONOVI ZAHTJEV"); return(false); } }
/*:: MOBILE ::*/ //android public bool NoviZahtjevM(string grad, decimal lat, decimal lng, string adresa, List <byte[]> slike) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Lokacije lp = new Lokacije(); lp.Lat = lat; lp.Long = lng; lp.RegistracijskaPlocica = "???"; lp.DatumVrijeme = DateTime.Now; lp.IDDjelatnika = null; lp.IDNacinaPozicioniranja = 4; lp.IDTerminala = 0; lp.CellTowerID = null; lp.SignalStrength = null; lp.HDOP = 0; lp.Brzina = 0; lp.GPSAcc = 0; lp.Battery = 0; db.Lokacijes.InsertOnSubmit(lp); db.SubmitChanges(); int idlokacije = lp.IDLokacije; foreach (var s in slike) { SpremiFotografiju(grad, idlokacije, s); } Zahtjevi pri = new Zahtjevi(); pri.IDLokacije = idlokacije; pri.IDPrijavitelja = null; pri.DatumVrijeme = DateTime.Now; pri.Registracija = "???"; pri.Lat = lat; pri.Lng = lng; pri.Adresa = adresa; pri.KraticaDrzave = "??"; pri.IDStatusa = 0; db.Zahtjevis.InsertOnSubmit(pri); db.SubmitChanges(); return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "POŠALJI ZAHTJEV MOBILE"); return(false); } }
public static void Odustani(string grad, int idZahtjeva, int idDjelatnika, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); pri.IDOdobravatelja = null; pri.IDStatusa = 0; db.SubmitChanges(); SpremiAkcijuZahtjeva(grad, idZahtjeva, idDjelatnika, -2, idAplikacije); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "ODUSTANI ZAHTJEV"); } }
/*:: ZAHTJEV ZA PODIZANJEM ::*/ public static int NoviZahtjev(string grad, _Zahtjev zahtjev, out bool aktivan, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Zahtjevi pri = new Zahtjevi(); pri.IDLokacije = zahtjev.IDLokacije; pri.IDPrijavitelja = zahtjev.IDVozila; pri.DatumVrijeme = zahtjev.Vrijeme; pri.Registracija = zahtjev.Registracija; pri.Lat = zahtjev.Latitude; pri.Lng = zahtjev.Longitude; pri.Adresa = zahtjev.Adresa; pri.KraticaDrzave = zahtjev.Drzava; pri.IDStatusa = -1; pri.IDOpisa = zahtjev.IDOpisa; pri.TipOcitanja = zahtjev.TipOcitanja; pri.Trajanje = zahtjev.Trajanje; pri.Ocitanja = zahtjev.Ocitanja; pri.IDPrijaviteljaDjelatnik = zahtjev.IDDjelatnika; db.Zahtjevis.InsertOnSubmit(pri); db.SubmitChanges(); aktivan = AktivniKorisnik(grad, idAplikacije); Nalog.SpremiPovijest(grad, pri.IDPrijave, zahtjev.IDVozila, 17, false, idAplikacije); return(pri.IDPrijave); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "NOVI ZAHTJEV PAUKA"); aktivan = false; return(-1); } }
public static bool Zatvori(string grad, int idZahtjeva, int idStatusa, int idDjelatnika, int?idNaloga, int?idPrekrsaja, string razlog, int idRedarstva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); pri.IDStatusa = idStatusa; pri.IDOdobravatelja = idDjelatnika; pri.Poruka = razlog; pri.IDNaloga = idNaloga; pri.IDPrekrsaja = idPrekrsaja; pri.IDAplikacije = idAplikacije; pri.IDRedarstva = idRedarstva; db.SubmitChanges(); SpremiAkcijuZahtjeva(grad, idZahtjeva, idDjelatnika, idStatusa, idAplikacije); if (idStatusa == 3) //todo and nalog razlicit od null else dodan prekrsaja { Nalog.SpremiPovijest(grad, pri.IDPrijave, -1, 18, false, idAplikacije); } if (idStatusa == 2) { Nalog.SpremiPovijest(grad, pri.IDPrijave, -1, 19, false, idAplikacije); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "ZATVORI PRIJAVU"); return(false); } }
public static bool StatusZahtjeva(string grad, int idZahtjeva, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); if (pri.IDStatusa != 0) { return(false); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "STATUS ZAHTJEVA"); 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 _Operater PreuzeoZahtjev(string grad, int idZahtjeva, out string aplikacija, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { aplikacija = ""; if (!db.Zahtjevis.Any(i => i.IDPrijave == idZahtjeva)) { return(null); } Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); if (pri.IDOdobravatelja != null) { var djel = from p in db.Djelatniks where p.IDDjelatnika == pri.IDOdobravatelja.Value select new _Operater( p.IDDjelatnika, p.IDRedarstva, Korisnici.IDPrijaviteljaGo(p), p.ImePrezime, p.UID, p.BrojSI, p.IDPrivilegija, p.Parametri, p.Blokiran, Korisnici.MozeNaplacivati(p), //da bi moga vrsiti naplatu moraju biti upisani ovi detalji p.TraziOdobrenje ?? false, p.ObradjujeZahtjeve, p.GOGrad ); using (PostavkeDataContext pdb = new PostavkeDataContext()) { var ima = from a in pdb.AKTIVNE_APLIKACIJEs join ap in pdb.APLIKACIJEs on a.IDAplikacije equals ap.IDAplikacije into aplikacije from app in aplikacije.DefaultIfEmpty() where a.IDGrada == Sistem.IDGrada(grad) && a.IDDjelatnika == pri.IDOdobravatelja && a.OdobravaZahtjeve orderby a.ZadnjaAktivnost descending select app.IDAplikacije; if (ima.Any()) { int id = ima.First(); aplikacija = id == 1 ? "na terenu" : "u uredu"; } else { return(null); } } if (djel.Any()) { return(djel.First()); } } return(null); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "Preuzeo Zahtjev"); aplikacija = ""; return(null); } }
public static bool StatusZahtjeva(string grad, int idZahtjeva, ref int idStatusa, out string poruka, out int?idNaloga, out decimal kazna, out bool obavijest, int idAplikacije) { try { using (PazigradDataContext db = new PazigradDataContext(Sistem.ConnectionString(grad, idAplikacije))) { if (!db.Zahtjevis.Any(i => i.IDPrijave == idZahtjeva)) { poruka = ""; idNaloga = -1; kazna = 0; obavijest = false; return(false); } Zahtjevi pri = db.Zahtjevis.First(i => i.IDPrijave == idZahtjeva); if (idStatusa >= 0) { pri.IDStatusa = idStatusa; db.SubmitChanges(); } else { idStatusa = pri.IDStatusa; } idNaloga = pri.IDNaloga; poruka = pri.Poruka; kazna = 0; obavijest = false; if (idStatusa == 4) { Nalog.SpremiPovijest(grad, pri.IDPrijave, pri.IDPrijavitelja.Value, 20, false, idAplikacije); } try { if (pri.IDPrekrsaja == null) { if (pri.IDNaloga != null) { if (db.Prekrsajis.Any(i => i.IDPrekrsaja == pri.IDNaloga.Value)) { obavijest = Predlosci.Obavijest(grad, db.Prekrsajis.First(i => i.IDNaloga == pri.IDNaloga).IDPredloskaIspisa.Value, idAplikacije).Value; kazna = db.Prekrsajis.First(i => i.IDNaloga == pri.IDNaloga).Kazna; } } return(true); } if (db.Prekrsajis.Any(i => i.IDPrekrsaja == pri.IDPrekrsaja.Value)) { obavijest = Predlosci.Obavijest(grad, db.Prekrsajis.First(i => i.IDPrekrsaja == pri.IDPrekrsaja).IDPredloskaIspisa.Value, idAplikacije).Value; kazna = db.Prekrsajis.First(i => i.IDPrekrsaja == pri.IDPrekrsaja).Kazna; } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "STATUS - KAZNA"); } return(true); } } catch (Exception ex) { Sustav.SpremiGresku(grad, ex, idAplikacije, "STATUS ZAHTJEVA, grad:" + grad + ", idz: " + idZahtjeva + ", ids: " + idStatusa); poruka = ""; idNaloga = -1; kazna = 0; obavijest = false; return(false); } }