Esempio n. 1
0
        public IActionResult VozilaPartialView(string grad, int?poslovnicaId)
        {
            List <TrenutnaPoslovnica> temp = null;
            VozilaVM vozila = new VozilaVM();

            vozila.rows = new List <VozilaVM.Row>();
            if (grad == null && poslovnicaId == null)
            {
                temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false).ToList();
            }
            if (grad != null)
            {
                temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false &&
                                                         (x.Poslovnica.Grad.Naziv.Contains(grad))).ToList();
                vozila.GradSearch = grad;
            }
            if (poslovnicaId != null)
            {
                temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false &&
                                                         (x.PoslovnicaID == poslovnicaId)).ToList();
            }


            for (int i = 0; i < temp.Count; i++)
            {
                VozilaVM.Row item = _context.Vozilo.Where(v => v.VoziloID == temp[i].VoziloID).Select(y => new VozilaVM.Row
                {
                    Naziv              = y.Naziv,
                    VoziloID           = y.VoziloID,
                    Gorivo             = y.Gorivo,
                    Brend              = y.Brend.Naziv,
                    PoslovnicaID       = temp[i].PoslovnicaID,
                    PoslovnicaLokacija = _context.Poslovnica.FirstOrDefault(p => p.PoslovnicaID == temp[i].PoslovnicaID).Grad.Naziv,
                    PoslovnicaNaziv    = _context.Poslovnica.FirstOrDefault(p => p.PoslovnicaID == temp[i].PoslovnicaID).Naziv,
                    Slika              = _context.Slika.Where(sl => sl.VoziloID == y.VoziloID && sl.Pozicija == 1).Select(c => new Slika
                    {
                        Name     = c.Name,
                        SlikaID  = c.SlikaID,
                        URL      = c.URL,
                        Pozicija = c.Pozicija
                    }).FirstOrDefault(),
                    TipVozila   = y.TipVozila,
                    Transmisija = y.Transmisija
                }).FirstOrDefault();

                vozila.rows.Add(item);
            }


            return(PartialView("_partialViewVozila", vozila));
        }
Esempio n. 2
0
        public IActionResult Rezervacija(string vozilo)
        {
            RezervacijaDodajVM model = new RezervacijaDodajVM();

            string[] StringVozilo = new string[2];
            try
            {
                StringVozilo = vozilo.Split('-');

                model.Vozilo = vozilo;
            }
            catch (Exception)
            {
            }
            string SifraRezervacije = null;

            try
            {
                SifraRezervacije = Request.Cookies["Sesion"];
            }
            catch (Exception)
            {
                throw;
            }
            if (SifraRezervacije == null)
            {
                //redirect na pocetnu str ili ispisati nesto
            }
            //Preuzeti vozilo iz rezervacije

            Vozilo _Vozilo = null;

            if (SifraRezervacije != null)
            {
                Rezervacija r   = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault();
                int         idV = r.VoziloID;
                _Vozilo = db.Vozilo.Where(x => x.VoziloID == idV).FirstOrDefault();

                StringVozilo[0] = db.Vozilo.Where(x => x.VoziloID == idV).Select(y => y.Brend.Naziv).FirstOrDefault();
                StringVozilo[1] = _Vozilo.Naziv;
                model.Vozilo    = StringVozilo[0] + "-" + StringVozilo[1];

                VozilaVM.Row VR = new VozilaVM.Row
                {
                    Brend              = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv,
                    Naziv              = _Vozilo.Naziv,
                    Cijena             = _Vozilo.Cijena,
                    PoslovnicaNaziv    = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == r.PoslovnicaID).Naziv,
                    PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == r.PoslovnicaID).Select(y => y.Grad.Naziv).FirstOrDefault(),
                    Slika              = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1)
                };
                model.VoziloVM         = VR;
                model.DatumPreuzimanja = r.DatumPreuzimanja;
                model.DatumPovrata     = r.DatumPovrata;
                return(View(nameof(Rezervacija), model));
            }
            else
            {
                _Vozilo = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).FirstOrDefault();
            }
            //0-Brend 1-VoziloNaziv

            //Provjeriti jel vozilo rezervisano
            //RijesitiException
            var idP = db.TrenutnaPoslovnica.FirstOrDefault(t => t.VoziloID == _Vozilo.VoziloID).PoslovnicaID;

            VozilaVM.Row vr = new VozilaVM.Row
            {
                Brend              = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv,
                Naziv              = _Vozilo.Naziv,
                Cijena             = _Vozilo.Cijena,
                PoslovnicaNaziv    = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == idP).Naziv,
                PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == idP).Select(y => y.Grad.Naziv).FirstOrDefault(),
                Slika              = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1)
            };
            model.VoziloVM         = vr;
            model.DatumPreuzimanja = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            model.DatumPovrata     = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1);
            return(View(nameof(Rezervacija), model));
        }
Esempio n. 3
0
        public IActionResult NapraviRezervaciju(RezervacijaDodajVM model)
        {
            string SifraRezervacije = null;

            try
            {
                SifraRezervacije = Request.Cookies["Sesion"];
            }
            catch (Exception)
            {
                throw;
            }

            if (!ModelState.IsValid)
            {
                Vozilo _Vozilo = null;
                if (SifraRezervacije != null)
                {
                    string[]    stringVozilo = new string[2];
                    Rezervacija r            = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault();
                    int         idV          = r.VoziloID;
                    _Vozilo = db.Vozilo.Where(x => x.VoziloID == idV).FirstOrDefault();

                    stringVozilo[0] = db.Vozilo.Where(x => x.VoziloID == idV).Select(y => y.Brend.Naziv).FirstOrDefault();
                    stringVozilo[1] = _Vozilo.Naziv;
                    model.Vozilo    = stringVozilo[0] + "-" + stringVozilo[1];

                    VozilaVM.Row VR = new VozilaVM.Row
                    {
                        Brend              = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv,
                        Naziv              = _Vozilo.Naziv,
                        Cijena             = _Vozilo.Cijena,
                        PoslovnicaNaziv    = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == r.PoslovnicaID).Naziv,
                        PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == r.PoslovnicaID).Select(y => y.Grad.Naziv).FirstOrDefault(),
                        Slika              = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1)
                    };
                    model.VoziloVM         = VR;
                    model.DatumPreuzimanja = r.DatumPreuzimanja;
                    model.DatumPovrata     = r.DatumPovrata;
                    return(View(nameof(Rezervacija), model));
                }

                if (model.Vozilo == null || model.Vozilo == "")
                {
                    return(Redirect("~/Vozilo"));
                }
                string[] StringVozilo = model.Vozilo.Split('-');

                _Vozilo = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).FirstOrDefault();

                var          idP = db.TrenutnaPoslovnica.FirstOrDefault(t => t.VoziloID == _Vozilo.VoziloID).PoslovnicaID;
                VozilaVM.Row vr  = new VozilaVM.Row
                {
                    Brend              = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv,
                    Naziv              = _Vozilo.Naziv,
                    Cijena             = _Vozilo.Cijena,
                    PoslovnicaNaziv    = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == idP).Naziv,
                    PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == idP).Select(y => y.Grad.Naziv).FirstOrDefault(),
                    Slika              = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1)
                };
                model.VoziloVM = vr;
                return(View(nameof(Rezervacija), model));
            }



            if (SifraRezervacije == null)
            {
                string[] StringVozilo = model.Vozilo.Split('-');

                int    voziloID  = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).Select(y => y.VoziloID).FirstOrDefault();
                int    god       = DateTime.Now.Year;
                int    KlijentID = int.Parse(_signInManager.GetUserId(User));
                int    pID       = db.TrenutnaPoslovnica.Where(x => x.VoziloID == voziloID).FirstOrDefault().PoslovnicaID;
                double c         = db.Vozilo.Where(vo => vo.VoziloID == voziloID).FirstOrDefault().Cijena;


                int         brDanaIznajmljivanja = dateDiff(model.DatumPreuzimanja, model.DatumPovrata);
                Rezervacija r = new Rezervacija
                {
                    VoziloID               = voziloID,
                    PoslovnicaID           = pID,
                    DatumRezervacije       = DateTime.Now,
                    DatumPovrata           = model.DatumPovrata,
                    DatumPreuzimanja       = model.DatumPreuzimanja,
                    Zakljucen              = (int)InfoRezervacija.U_Obradi,
                    Cijena                 = c * brDanaIznajmljivanja,
                    KlijentID              = KlijentID,
                    BrojDanaIznajmljivanja = brDanaIznajmljivanja,
                    NacinPlacanja          = (int)NacinPlacanja.NijeDefinisano,
                    UspjesnoSpremljena     = false
                };

                //kreiranje kukija za rezervaciju
                CookieOptions option          = new CookieOptions();
                var           ticks           = DateTime.Now.Ticks;
                var           guid            = Guid.NewGuid().ToString();
                var           uniqueSessionId = ticks.ToString() + '-' + guid;
                option.Expires = DateTime.Now.AddHours(24);
                Response.Cookies.Append("Sesion", uniqueSessionId, option);

                r.SifraRezervacije = uniqueSessionId;

                db.Add(r);
                db.SaveChanges();
                return(Redirect(nameof(DodatneUsluge)));
            }

            Rezervacija rez = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault();
            double      cijenVozilaPoDanu = db.Vozilo.Where(vo => vo.VoziloID == rez.VoziloID).FirstOrDefault().Cijena;

            rez.DatumPreuzimanja = model.DatumPreuzimanja;
            rez.DatumPovrata     = model.DatumPovrata;
            int brDana = (model.DatumPovrata - model.DatumPreuzimanja).Days == 0 ? 1 : (model.DatumPovrata - model.DatumPreuzimanja).Days;

            rez.BrojDanaIznajmljivanja = brDana;
            rez.Cijena = cijenVozilaPoDanu * brDana;
            db.SaveChanges();

            return(Redirect(nameof(DodatneUsluge)));
            //return View(nameof(DodatneUslugePV));
        }