Ejemplo n.º 1
0
        public IActionResult KreirajRezervaciju(int AutomobilID)
        {
            KreirajRezervacijuVM model = new KreirajRezervacijuVM();
            Automobil            a     = getAuto(AutomobilID);

            model.AutomobilID      = AutomobilID;
            model.PoslovnicaID     = getLokacijaID(AutomobilID);
            model.nazivPoslovnice  = getImePoslvnice(model.PoslovnicaID);
            model.DatumPreuzimanja = DateTime.Today;
            model.DatumVracanja    = DateTime.Today.AddDays(1);
            model.Iznos            = getCijenaRentanje(model.AutomobilID);
            model.Model            = a.Model;
            model.Proizvodjac      = a.Proizvodjac.Naziv;
            model.SlikaURL         = a.SlikaURL;
            model.Boja             = a.Boja;

            int    x         = 0;
            string klijentID = User.FindFirstValue(ClaimTypes.NameIdentifier);

            Int32.TryParse(klijentID.ToString(), out x);
            model.KlijentID = x;
            //get id od logged usera
            model.UposlenikID = getUposlenika(model.PoslovnicaID);

            return(View(model));
        }
Ejemplo n.º 2
0
        public IActionResult Snimi(KreirajRezervacijuVM model)
        {
            double        cijenaOpreme      = 0;
            List <int>    OpremaIDs         = new List <int>();
            List <string> opremaListaCijene = new List <string>();
            List <string> opremaListaNaziv  = new List <string>();


            if (model.DjecijaSjedalica || model.KrovniKofer || model.KrovniNosaci || model.NosaciSkije || model.NosaciBicikla)
            {
                if (model.DjecijaSjedalica)
                {
                    cijenaOpreme += getCijenaOpreme("DjecijaSjedalica"); OpremaIDs.Add(getIDOprema("DjecijaSjedalica")); opremaListaCijene.Add(getCijenaOpreme("DjecijaSjedalica").ToString() + " KM"); opremaListaNaziv.Add("Djecija sjedalica ");
                }
                if (model.KrovniKofer)
                {
                    cijenaOpreme += getCijenaOpreme("KrovniKofer"); OpremaIDs.Add(getIDOprema("KrovniKofer")); opremaListaCijene.Add(getCijenaOpreme("KrovniKofer").ToString() + " KM"); opremaListaNaziv.Add("Krovni kofer ");
                }
                if (model.KrovniNosaci)
                {
                    cijenaOpreme += getCijenaOpreme("KrovniNosaci"); OpremaIDs.Add(getIDOprema("KrovniNosaci")); opremaListaCijene.Add(getCijenaOpreme("KrovniNosaci").ToString() + " KM"); opremaListaNaziv.Add("Krovni nosaci ");
                }
                if (model.NosaciSkije)
                {
                    cijenaOpreme += getCijenaOpreme("NosaciSkije"); OpremaIDs.Add(getIDOprema("NosaciSkije")); opremaListaCijene.Add(getCijenaOpreme("NosaciSkije").ToString() + " KM"); opremaListaNaziv.Add("Nosaci za skije ");
                }
                if (model.NosaciBicikla)
                {
                    cijenaOpreme += getCijenaOpreme("NosaciBicikla"); OpremaIDs.Add(getIDOprema("NosaciBicikla")); opremaListaCijene.Add(getCijenaOpreme("NosaciBicikla").ToString() + " KM"); opremaListaNaziv.Add("Nosaci za bicikla ");
                }
            }

            double  brojDana          = Math.Ceiling((model.DatumVracanja - model.DatumPreuzimanja).TotalDays);
            decimal cijenaRentanjeDan = getCijenaRentanje(model.AutomobilID);

            if (brojDana <= 0)
            {
                brojDana = 1;
            }

            model.Iznos           = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana) + System.Convert.ToDecimal(cijenaOpreme);
            model.IznosbezPopusta = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana) + System.Convert.ToDecimal(cijenaOpreme);
            model.IznosbezOpreme  = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana);
            int    brrezervacija = db.RezervacijaRentanja.Where(w => w.KlijentID == model.KlijentID).Count();
            double popust        = 0;

            if (brrezervacija >= 1 && brrezervacija <= 5)
            {
                model.Iznos = model.Iznos - (model.Iznos / 100) * 10; popust = 10;
            }
            if (brrezervacija > 5)
            {
                model.Iznos = model.Iznos - (model.Iznos / 100) * 15; popust = 15;
            }


            Racun racun = new Racun {
                DatumIzdavanja = DateTime.Now, Iznos = model.Iznos
            };

            db.Add(racun);
            db.SaveChanges();
            int racunID = db.Racun.Last().RacunID;

            RezervacijaRentanje rr = new RezervacijaRentanje {
                AutomobilID   = model.AutomobilID,
                UposlenikID   = model.UposlenikID, KlijentID = model.KlijentID, PoslovnicaID = model.PoslovnicaID, DatumKreiranja = DateTime.Now,
                RezervacijaOd = model.DatumPreuzimanja, RezervacijaDo = model.DatumVracanja, Iznos = model.Iznos, Popust = popust, Opis = "/", RacunID = racunID
            };

            db.Add(rr);
            db.SaveChanges();

            RacunVM racunVM = new RacunVM();

            if (cijenaOpreme != 0)
            {
                foreach (int x in OpremaIDs)
                {
                    RezervacijaRentanjaDodatnaOprema rrdo = new RezervacijaRentanjaDodatnaOprema {
                        DodatnaOpremaID = x, RezervacijaRentanjaID = rr.RezervacijaRentanjaID
                    };
                    db.Add(rrdo);
                    db.SaveChanges();
                    racunVM.Oprema = true;
                }
            }

            Automobil a = db.Automobil.Find(model.AutomobilID);

            a.Dostupan = false;

            model.Popust         = popust;
            model.CijenaOpreme   = cijenaOpreme;
            model.DatumKreiranja = DateTime.Now;



            Poslovnica p = db.Poslovnica.Include(i => i.Grad.Drzava).Where(w => w.PoslovnicaID == model.PoslovnicaID).First();

            racunVM.adresaPoslovnice     = p.Adresa.ToString();
            racunVM.DrzavaGradPoslovnica = p.Grad.Drzava.Naziv + " " + p.Grad.Naziv + " " + p.Naziv;
            racunVM.Uposlenik            = db.Users.Where(w => w.Id == model.UposlenikID).First().Prezime + db.Users.Where(w => w.Id == model.UposlenikID).First().Ime;
            racunVM.KlijentEmail         = db.Users.Where(w => w.Id == model.KlijentID).First().Email;
            racunVM.RacunID           = rr.RezervacijaRentanjaID;
            racunVM.Popust            = popust;
            racunVM.nazivPoslovnice   = p.Naziv;
            racunVM.KlijentImePrezime = db.Users.Where(w => w.Id == model.KlijentID).First().Prezime + " " + db.Users.Where(w => w.Id == model.KlijentID).First().Ime;
            if (db.Users.Include(i => i.Grad).Where(w => w.Id == model.KlijentID).FirstOrDefault().Grad != null)
            {
                racunVM.KlijentGrad = db.Users.Include(i => i.Grad).Where(w => w.Id == model.KlijentID).FirstOrDefault().Grad.Naziv.ToString();
            }
            else
            {
                racunVM.KlijentGrad = "/";
            }
            racunVM.CijenaOpreme     = cijenaOpreme;
            racunVM.DatumKreiranja   = model.DatumKreiranja;
            racunVM.DatumPreuzimanja = model.DatumPreuzimanja;
            racunVM.DatumVracanja    = model.DatumVracanja;
            racunVM.Iznos            = model.Iznos;
            racunVM.IznosbezOpreme   = model.IznosbezOpreme;
            racunVM.IznosbezPopusta  = model.IznosbezPopusta;
            racunVM.Automobil        = db.Automobil.Include(i => i.Proizvodjac).Where(w => w.AutomobilID == model.AutomobilID).First().Proizvodjac.Naziv + " " + db.Automobil.Include(i => i.Proizvodjac).Where(w => w.AutomobilID == model.AutomobilID).First().Model;
            racunVM.brojDana         = brojDana;
            racunVM.cijenaPoDanu     = db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.CijenaRentanja;
            racunVM.AutomobilDetalji = db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.KonjskeSnage + " ks " + db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.Gorivo + " " + db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.Pogon;

            if (opremaListaCijene.Count != 0)
            {
                racunVM.ListaOpremaCijene = opremaListaCijene;
                racunVM.ListaOpremaNaziv  = opremaListaNaziv;
            }

            Notifikacija notifikacija = new Notifikacija();

            notifikacija.DatumKreiranja = racunVM.DatumKreiranja;
            notifikacija.PosiljaocID    = model.KlijentID;
            notifikacija.PrimalacID     = model.UposlenikID;
            if (opremaListaNaziv.Count() > 0)
            {
                for (int i = 0; i < opremaListaNaziv.Count(); i++)
                {
                    notifikacija.Sadrzaj = racunVM.KlijentImePrezime + " kreira rezervaciju na dan " + racunVM.DatumKreiranja + " u trajanju od - " + racunVM.DatumPreuzimanja + " do - " + racunVM.DatumVracanja + " ." + " Automobil: " + racunVM.Automobil + ", dodatna oprema: " + racunVM.ListaOpremaNaziv[i];
                }
            }
            else
            {
                notifikacija.Sadrzaj = racunVM.KlijentImePrezime + " kreira rezervaciju na dan " + racunVM.DatumKreiranja + " u trajanju od - " + racunVM.DatumPreuzimanja + " do - " + racunVM.DatumVracanja + " ." + " Automobil: " + racunVM.Automobil + ", dodatna oprema: /";
            }
            db.Add(notifikacija);
            db.SaveChanges();

            TempData["porukaSuccess"] = "Uspjesno je kreirana rezervacija";
            return(View(racunVM));
        }