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