protected override ValidationResult IsValid( object value, ValidationContext validationContext) { Zaduzivanja zad = (Zaduzivanja)validationContext.ObjectInstance; if (zad.PocetakZaduzivanja < DateTime.Now) { return(new ValidationResult("Datum početka ne smije biti manji od trenutnog datuma")); } if (zad.PocetakZaduzivanja > zad.Rezervacije.DatumZavrsetkaRezerviranja) { return(new ValidationResult("Datum početka ne smije biti veći od datuma završetka rezerviranja")); } if (zad.PocetakZaduzivanja > zad.KrajZaduzivanja) { return(new ValidationResult("Datum početka ne smije biti veći od datuma završetka usluge")); } if ((zad.PocetakZaduzivanja - zad.KrajZaduzivanja).Hours < 1) { return(new ValidationResult("Usluga mora trajati najmanje 1 sat")); } int TipCijene = (int)zad.Usluga.TipCijene; switch (TipCijene) { default: break; case 3: if ((zad.PocetakZaduzivanja - zad.KrajZaduzivanja).Hours < 5) { return(new ValidationResult("Usluga mora trajati najmanje 1 sat")); } break; case 4: if ((zad.PocetakZaduzivanja - zad.KrajZaduzivanja).Days < 7) { return(new ValidationResult("Usluga T")); } break; } return(ValidationResult.Success); }
public IActionResult UrediZaduzenje(Zaduzivanja zaduzivanja) { if (ModelState.IsValid) { db.Zaduzivanja.Update(zaduzivanja); db.SaveChanges(); return(RedirectToAction("Index", "Pocetna")); } return(View("DodajUsluguRezervacij", db.Zaduzivanja.Include(x => x.Rezervacije).Include(x => x.Usluga).FirstOrDefault(x => x.Id == zaduzivanja.Id))); }
public IActionResult PonistiUslugu(int ZaduzenjeID) { Zaduzivanja zaduzivanje = db.Zaduzivanja.SingleOrDefault(x => x.Id == ZaduzenjeID); List <UslugaDodaciZaduzenje> dodaci = db.UslugaDodaciZaduzenje.Where(x => x.ZaduzivanjaID == ZaduzenjeID).ToList(); db.UslugaDodaciZaduzenje.RemoveRange(dodaci); db.Zaduzivanja.Remove(zaduzivanje); db.SaveChanges(); return(RedirectToAction("Index", new { rezId = zaduzivanje.RezervacijaId })); }
public void DodajSveGoste(int ZaduzenjeId) { Zaduzivanja zaduzenje = db.Zaduzivanja.Include(x => x.Usluga).SingleOrDefault(x => x.Id == ZaduzenjeId); List <Gosti> gostiRezervacije = db.GostaSoba.Include(x => x.ZaduzeneSobe).Include(x => x.Gosti).Where(x => x.ZaduzeneSobe.RezervacijaId == zaduzenje.RezervacijaId).Select(x => x.Gosti).ToList(); int brojGostiju = gostiRezervacije.Count(); foreach (var item in gostiRezervacije) { GostiUsluga novi = new GostiUsluga() { GostiID = item.Id, ZaduzivanjaID = zaduzenje.Id }; db.GostiUsluga.Add(novi); db.SaveChanges(); } }
public IActionResult DodajDodatakZaduzenju(int DodatakId, int ZaduzenjeID) { Zaduzivanja zaduzivanje = db.Zaduzivanja.SingleOrDefault(x => x.Id == ZaduzenjeID); UslugaDodaciZaduzenje nova = new UslugaDodaciZaduzenje() { DodaciID = DodatakId, ZaduzivanjaID = zaduzivanje.Id, UslugaID = zaduzivanje.UslugaID, Kolicina = 1 }; db.UslugaDodaciZaduzenje.Add(nova); db.SaveChanges(); UpdateRacun(ZaduzenjeID); return(RedirectToAction("UrediDodatkeZaduzenja", new { zaduzenjeId = ZaduzenjeID })); }
public IActionResult NovaRezervacija(Rezervacije rez) { if (ModelState.IsValid) { Rezervacije Nova = new Rezervacije { DatumEvidentiranjaRezerviranja = DateTime.Now, DatumPocetkaRezerviranja = rez.DatumPocetkaRezerviranja, DatumZavrsetkaRezerviranja = rez.DatumZavrsetkaRezerviranja, RezervacijaAktivna = false, RezervacijaZavrsena = false, Zaposlenik = rez.Zaposlenik, GlavniGostId = rez.GlavniGostId ?? null }; db.Rezervacije.Add(Nova); db.SaveChanges(); //dodaj besplatne usluge List <Usluge> Besplatne = db.Usluge.Where(x => x.Cijena == 0).ToList(); foreach (var usluga in Besplatne) { Zaduzivanja nova = new Zaduzivanja() { RezervacijaId = Nova.RezervacijaId, UslugaID = usluga.Id, PocetakZaduzivanja = Nova.DatumPocetkaRezerviranja, KrajZaduzivanja = Nova.DatumZavrsetkaRezerviranja, UkupnaCijena = 0, JeZavršeno = false }; db.Zaduzivanja.Add(nova); db.SaveChanges(); } return(RedirectToAction("DodajSobe", "Rezervacije", new { id = Nova.RezervacijaId })); } return(View()); }
public IActionResult NovaUslugaDefault(int rezId, int uslugaId, DateTime DatumPocetka, DateTime DatumZavrsetka) { Usluge usluga = db.Usluge.SingleOrDefault(x => x.Id == uslugaId); Zaduzivanja zaduzivanje = new Zaduzivanja() { PocetakZaduzivanja = DatumPocetka, KrajZaduzivanja = DatumZavrsetka, RezervacijaId = rezId, UslugaID = uslugaId, JeZavršeno = false, UkupnaCijena = usluga.Cijena }; db.Zaduzivanja.Add(zaduzivanje); db.SaveChanges(); if (usluga.Cijena == 0) { List <Gosti> gostiRezervacije = db.GostaSoba.Include(x => x.ZaduzeneSobe).Include(x => x.Gosti).Where(x => x.ZaduzeneSobe.RezervacijaId == rezId).Select(x => x.Gosti).ToList(); int brojGostiju = gostiRezervacije.Count(); foreach (var item in gostiRezervacije) { GostiUsluga nova = new GostiUsluga { GostiID = item.Id, ZaduzivanjaID = zaduzivanje.Id }; db.GostiUsluga.Add(nova); db.SaveChanges(); } DodajSveGoste(zaduzivanje.Id); DodajBesplatneDodatke(zaduzivanje.Id); } return(RedirectToAction("ZaduzivanjeInfo", new { ZaduzenjeID = zaduzivanje.Id })); }
public IActionResult NovaUslugaSedmicno(int rezId, int uslugaId, DateTime DatumPocetka, DateTime DatumZavrsetka) { Usluge usluga = db.Usluge.SingleOrDefault(x => x.Id == uslugaId); Zaduzivanja zaduzivanje = new Zaduzivanja() { PocetakZaduzivanja = DatumPocetka, KrajZaduzivanja = DatumZavrsetka, RezervacijaId = rezId, UslugaID = uslugaId, JeZavršeno = false, UkupnaCijena = ((DatumZavrsetka - DatumZavrsetka).Days) * usluga.Cijena }; db.Zaduzivanja.Add(zaduzivanje); db.SaveChanges(); return(RedirectToAction("ZaduzivanjeInfo", new { ZaduzenjeID = zaduzivanje.Id })); }
public void DodajBesplatneDodatke(int ZaduzenjeId) { Zaduzivanja zaduzenje = db.Zaduzivanja.Include(x => x.Usluga).SingleOrDefault(x => x.Id == ZaduzenjeId); List <Gosti> gostiRezervacije = db.GostaSoba.Include(x => x.ZaduzeneSobe).Include(x => x.Gosti).Where(x => x.ZaduzeneSobe.RezervacijaId == zaduzenje.RezervacijaId).Select(x => x.Gosti).ToList(); int brojGostiju = gostiRezervacije.Count(); List <Dodaci> dodaciBesplatni = db.Dodaci.Where(x => x.JeUkljucen && x.UslugeID == zaduzenje.UslugaID).ToList(); foreach (var item in dodaciBesplatni) { UslugaDodaciZaduzenje novi = new UslugaDodaciZaduzenje() { UslugaID = zaduzenje.UslugaID, ZaduzivanjaID = zaduzenje.Id, DodaciID = item.Id, Kolicina = brojGostiju }; db.UslugaDodaciZaduzenje.Add(novi); db.SaveChanges(); } }
public IActionResult NovaUslugaPoSatu(int rezId, int uslugaId, DateTime DatumPocetka, DateTime VrijemePocetka, int sati) { DateTime datumPocetkaZaduge = new DateTime(DatumPocetka.Year, DatumPocetka.Month, DatumPocetka.Day, VrijemePocetka.Hour, VrijemePocetka.Minute, VrijemePocetka.Second, VrijemePocetka.Millisecond); DateTime datumZavrsetkaZaduge = datumPocetkaZaduge.AddHours(sati); Usluge usluga = db.Usluge.SingleOrDefault(x => x.Id == uslugaId); Zaduzivanja zaduzivanje = new Zaduzivanja() { PocetakZaduzivanja = datumPocetkaZaduge, KrajZaduzivanja = datumZavrsetkaZaduge, RezervacijaId = rezId, UslugaID = uslugaId, JeZavršeno = false, UkupnaCijena = usluga.Cijena * sati }; db.Zaduzivanja.Add(zaduzivanje); db.SaveChanges(); DodajSveGoste(zaduzivanje.Id); DodajBesplatneDodatke(zaduzivanje.Id); return(RedirectToAction("ZaduzivanjeInfo", new { ZaduzenjeID = zaduzivanje.Id })); }
public bool UpdateRacun(int ZaduzenjeId) { Zaduzivanja zaduzenje = db.Zaduzivanja.Include(x => x.Usluga).SingleOrDefault(x => x.Id == ZaduzenjeId); List <Gosti> gostiZaduzivanaj = db.GostiUsluga.Include(x => x.Gosti).Where(x => x.ZaduzivanjaID == ZaduzenjeId).Select(x => x.Gosti).ToList(); List <UslugaDodaciZaduzenje> dodaci = db.UslugaDodaciZaduzenje.Include(x => x.Dodaci).Where(x => x.ZaduzivanjaID == ZaduzenjeId).ToList(); int TipUsluge = (int)zaduzenje.Usluga.TipCijene; switch (TipUsluge) { case 0: float cijena0 = 0; foreach (var item in dodaci.Where(x => x.Dodaci.JeUkljucen == false)) { cijena0 += item.Kolicina * item.Dodaci.Cijena; } zaduzenje.UkupnaCijena = cijena0; db.Zaduzivanja.Update(zaduzenje); db.SaveChanges(); break; case 1: float cijena1 = 0; int brojSati = (zaduzenje.KrajZaduzivanja - zaduzenje.PocetakZaduzivanja).Hours; cijena1 = zaduzenje.Usluga.Cijena * brojSati; foreach (var item in dodaci.Where(x => x.Dodaci.JeUkljucen == false)) { cijena1 += item.Kolicina * item.Dodaci.Cijena; } zaduzenje.UkupnaCijena = cijena1; db.Zaduzivanja.Update(zaduzenje); db.SaveChanges(); break; case 2: float cijena2 = 2; cijena2 = zaduzenje.Usluga.Cijena * gostiZaduzivanaj.Count(); foreach (var item in dodaci.Where(x => x.Dodaci.JeUkljucen == false)) { cijena2 += item.Kolicina * item.Dodaci.Cijena; } zaduzenje.UkupnaCijena = cijena2; db.Zaduzivanja.Update(zaduzenje); db.SaveChanges(); break; case 3: float cijena3 = 0; int brojdana = (zaduzenje.KrajZaduzivanja - zaduzenje.PocetakZaduzivanja).Days; cijena3 = (zaduzenje.Usluga.Cijena * brojdana) * gostiZaduzivanaj.Count(); foreach (var item in dodaci.Where(x => x.Dodaci.JeUkljucen == false)) { cijena3 += item.Kolicina * item.Dodaci.Cijena; } zaduzenje.UkupnaCijena = cijena3; db.Zaduzivanja.Update(zaduzenje); db.SaveChanges(); break; case 4: float cijena4 = 0; cijena4 = zaduzenje.Usluga.Cijena * gostiZaduzivanaj.Count(); foreach (var item in dodaci.Where(x => x.Dodaci.JeUkljucen == false)) { cijena4 += item.Kolicina * item.Dodaci.Cijena; } zaduzenje.UkupnaCijena = cijena4; db.Zaduzivanja.Update(zaduzenje); db.SaveChanges(); break; default: break; } return(true); }