public async Task <IActionResult> Edit(int id, [Bind("Id,TipSobeID,TipNamjestaja,Kolicina")] TipSobeNamjestaj tipSobeNamjestaj)
        {
            if (id != tipSobeNamjestaj.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    db.Update(tipSobeNamjestaj);
                    await db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TipSobeNamjestajExists(tipSobeNamjestaj.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index), new { TipSobeId = tipSobeNamjestaj.TipSobeID }));
            }
            ViewData["TipSobeID"] = new SelectList(db.TipSobe, "Id", "Naziv", tipSobeNamjestaj.TipSobeID);
            return(View(tipSobeNamjestaj));
        }
        public async Task <IActionResult> Create([Bind("Id,TipSobeID,TipNamjestaja,Kolicina")] TipSobeNamjestaj tipSobeNamjestaj)
        {
            if (ModelState.IsValid)
            {
                TipSobeNamjestaj postoji = db.TipSobeNamjestaj.SingleOrDefault(x => x.TipSobeID == tipSobeNamjestaj.TipSobeID && (int)x.TipNamjestaja == (int)tipSobeNamjestaj.TipNamjestaja);
                if (postoji != null)
                {
                    postoji.Kolicina = tipSobeNamjestaj.Kolicina;

                    db.TipSobeNamjestaj.Update(postoji);
                    await db.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }


                db.Add(tipSobeNamjestaj);
                await db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TipSobeID"] = new SelectList(db.TipSobe, "Id", "Naziv", tipSobeNamjestaj.TipSobeID);
            return(View(tipSobeNamjestaj));
        }
Beispiel #3
0
        public JsonResult DodajNamjestajSobi(int SobaId, int NamjestajID, int ZaduzenaId)
        {
            //provjeri moze li stati
            Sobe sobe = db.Sobe
                        .Include(x => x.TipSobe)
                        .ThenInclude(x => x.MoguciNamjestaj)
                        .SingleOrDefault(x => x.Id == SobaId);

            Namjestaj namjestaj = db.Namjestaj.FirstOrDefault(x => x.Id == NamjestajID);

            TipSobeNamjestaj tip = db.TipSobeNamjestaj
                                   .FirstOrDefault(x => x.TipSobeID == sobe.TipSobeID &&
                                                   x.TipNamjestaja == namjestaj.tipNamjestaja);

            List <NamjestajSoba> zaduzeni = db.NamjestajSoba.Where(x => x.SobeID == SobaId &&
                                                                   x.ZaduzenaSobaID == ZaduzenaId &&
                                                                   x.Namjestaj.tipNamjestaja == namjestaj.tipNamjestaja).Include(x => x.Namjestaj).Include(x => x.Sobe).ToList();

            int Max       = tip.Kolicina;
            int kapacitet = 0;

            foreach (var item in zaduzeni)
            {
                kapacitet += item.Kolicina;
            }

            if (kapacitet > Max)
            {
                return(Json(new  { uspjeh = false, poruka = "Kapacitet dostignut" }));
            }



            //provjeri jeli moguce
            NamjestajSoba postojeci = db.NamjestajSoba
                                      .Where(x => x.SobeID == SobaId &&
                                             x.NamjestajID == NamjestajID &&
                                             x.ZaduzenaSobaID == ZaduzenaId
                                             ).FirstOrDefault();

            if (postojeci != null)
            {
                ++postojeci.Kolicina;
                db.NamjestajSoba.Update(postojeci);
                db.SaveChanges();
                return(Json(new { uspjeh = true, poruka = "Uspješno dodan" }));
            }


            NamjestajSoba nova = new NamjestajSoba()
            {
                SobeID         = SobaId,
                NamjestajID    = NamjestajID,
                ZaduzenaSobaID = ZaduzenaId,
                Kolicina       = 1
            };

            db.NamjestajSoba.Add(nova);
            db.SaveChanges();

            Namjestaj nam = db.Namjestaj.SingleOrDefault(x => x.Id == NamjestajID);

            return(Json(new  { uspjeh = true, poruka = "Uspješno dodan" }));
        }