Пример #1
0
        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);
            }
        }
Пример #2
0
        /**/

        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);
            }
        }
Пример #3
0
        /*:: 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);
            }
        }
Пример #4
0
        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");
            }
        }
Пример #5
0
        /*:: 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);
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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);
            }
        }
Пример #10
0
        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);
            }
        }