コード例 #1
0
        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);
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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 }));
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        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 }));
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        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 }));
        }
コード例 #8
0
        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 }));
        }
コード例 #9
0
        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();
            }
        }
コード例 #10
0
        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 }));
        }
コード例 #11
0
        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);
        }