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)); }
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)); }