public IActionResult PrikazRezervacija(string sortOrder, int page = 1)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);


            ViewBag.ProstorijaSortParm = String.IsNullOrEmpty(sortOrder)? "Prostorija_desc" : "";
            ViewBag.DatumSortParm      = sortOrder == "Datum" ? "Datum_desc" : "Datum";

            RezervacijePrikazRezervacijaVM model = new RezervacijePrikazRezervacijaVM();


            model.rows = db.Rezervacije
                         .Include(x => x.Uplata)
                         .Include(x => x.Klijent)
                         .Include(x => x.Termin)
                         .ThenInclude(x => x.Prostorija)
                         .Where(x => x.KlijentID == klijent.id)
                         .Select(x => new RezervacijePrikazRezervacijaVM.Row()
            {
                RezervacijaID = x.id,
                Klijent       = x.Klijent.Ime + " " + x.Klijent.Prezime,
                DatumVrijeme  = x.Termin.DatumIVrijeme.ToString("yyyy-MM-dd hh:mm"),
                Prostorija    = x.Termin.Prostorija.Naziv,
                Uplata        = x.Uplata.Iznos.ToString() ?? "0",
                Odobrena      = x.Odobrena
            }).OrderBy(x => x.RezervacijaID).Skip((page - 1) * PageSize).Take(PageSize).ToList();

            model.PagingInfo = new Web.ViewModels.PagingInfo()
            {
                CurrentPage  = page,
                ItemsPerPage = PageSize,
                TotalItems   = db.Rezervacije.Count()
            };

            switch (sortOrder)
            {
            case "Prostorija_desc":
                model.rows = model.rows.OrderByDescending(x => x.Prostorija);
                break;

            case "Datum":
                model.rows = model.rows.OrderBy(x => x.DatumVrijeme);
                break;

            case "Datum_desc":
                model.rows = model.rows.OrderByDescending(x => x.DatumVrijeme);
                break;

            default:
                model.rows = model.rows.OrderBy(x => x.Prostorija);
                break;
            }
            return(View(model));
        }
        public IActionResult Index()
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);
            return(PartialView());
        }
示例#3
0
        public IActionResult ObrisiKlijenta(int id)
        {
            Data.Models.Klijent k = _db.Klijenti.Where(x => x.id == id).Include(q => q.Nalog).First();

            _db.Nalozi.Remove(k.Nalog);

            _db.Klijenti.Remove(k);

            _db.SaveChanges();

            return(Redirect("Klijenti"));
        }
示例#4
0
        public FileStreamResult ViewImage(int FajlID)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);


            Fajl         image = db.Fajlovi.FirstOrDefault(m => m.Id == FajlID);
            MemoryStream ms    = new MemoryStream(image.Podaci);

            return(new FileStreamResult(ms, image.Tip));
        }
示例#5
0
        public IActionResult Obrisi(int NarudzbaStavkeID)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);

            NarudzbaStavke narudzbaStavke = db.NarudzbaStavke.Where(s => s.id == NarudzbaStavkeID).SingleOrDefault();

            db.NarudzbaStavke.Remove(narudzbaStavke);
            db.SaveChanges();

            return(RedirectToAction("UvidKorpe"));
        }
示例#6
0
        public IActionResult PovecajSmanjiStanje(int NarudzbaStavkeID, int OdabranaKolicina)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);

            NarudzbaStavke postojecaNarudzba = db.NarudzbaStavke.Where(s => s.id == NarudzbaStavkeID).SingleOrDefault();

            postojecaNarudzba.Kolicina = OdabranaKolicina;
            db.SaveChanges();

            return(RedirectToAction("UvidKorpe"));
        }
示例#7
0
        public IActionResult SnimiKlijenta(int id, string username, string lozinka, string ime, string prezime, string spol, string jmbg, string grad)
        {
            Data.Models.Klijent k = _db.Klijenti.Where(x => x.id == id).Include(q => q.Grad).Include(w => w.Nalog).FirstOrDefault();

            k.Nalog.KorisnickoIme = username;
            k.Nalog.Lozinka       = lozinka;
            k.Ime     = ime;
            k.Prezime = prezime;
            k.Spol    = spol;
            k.JBMG    = jmbg;
            k.GradID  = int.Parse(grad);

            _db.SaveChanges();

            return(Redirect("Klijenti"));
        }
        public IActionResult PrikazTermina()
        {
            List <Termin>      listaTermina     = db.Termini.Include(w => w.Prostorija).ToList();
            List <Rezervacija> listaRezervacija = db.Rezervacije.Include(s => s.Termin).ToList();

            List <Termin> slobodniTermini = new List <Termin>();
            List <Termin> zauzetiTermini  = new List <Termin>();


            foreach (var x in listaTermina)
            {
                bool nadjen = false;

                foreach (var y in listaRezervacija)
                {
                    if (x.id == y.TerminID)
                    {
                        nadjen = true;
                    }
                }
                if (nadjen != true)
                {
                    slobodniTermini.Add(x);
                }
            }

            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);


            RezervacijePrikazTerminaVM model = new RezervacijePrikazTerminaVM {
                KlijentID = klijent.id,
                rows      = slobodniTermini.Select(x => new RezervacijePrikazTerminaVM.Row {
                    TerminID     = x.id,
                    Prostorija   = x.Prostorija.Naziv,
                    DatumVrijeme = x.DatumIVrijeme,
                    Cijena       = x.Cijena
                }).ToList(),
            };

            return(View(model));
        }
        public IActionResult PrikazNaloga()
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);
            NalogPrikazNalogaVM model = new NalogPrikazNalogaVM()
            {
                KlijentID     = klijent.id,
                Ime           = klijent.Ime,
                KorisnickoIme = trenutniNalog.KorisnickoIme,
                Prezime       = klijent.Prezime,
                Grad          = db.Gradovi.Where(s => s.id == klijent.GradID).Select(s => s.Naziv).SingleOrDefault()
            };

            return(View(model));
        }
        public IActionResult RezervisiTermin(int TerminID)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);

            Rezervacija novaRezervacija = new Rezervacija {
                Odobrena  = false,
                TerminID  = TerminID,
                KlijentID = klijent.id,
            };

            db.Rezervacije.Add(novaRezervacija);
            db.SaveChanges();
            return(RedirectToAction("PrikazTermina"));
        }
        public IActionResult PraviRacun(int NarudzbaID, bool ZeliDostavu, decimal UkupanIznos)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);

            Narudzba odabranaNarudzba = db.Narudzbe.Include(s => s.Dostava)
                                        .Where(s => s.id == NarudzbaID).SingleOrDefault();

            odabranaNarudzba.ZeliDostavu = ZeliDostavu;

            Racun noviRacun = new Racun();

            noviRacun.NarudzbaID     = NarudzbaID;
            noviRacun.DatumIzdavanja = DateTime.Now;
            noviRacun.KlijentId      = klijent.id;
            noviRacun.UkupanIznos    = UkupanIznos;

            if (ZeliDostavu)
            {
                Dostava novaDostava = new Dostava {
                    Adresa = db.Gradovi.Where(s => s.id == klijent.GradID)
                             .Select(s => s.Naziv).SingleOrDefault(),
                    Cijena = 10
                };
                db.Dostava.Add(novaDostava);
                noviRacun.DostavaId        = novaDostava.id;
                odabranaNarudzba.DostavaID = novaDostava.id;

                if (UkupanIznos < 100)
                {
                    noviRacun.UkupanIznos += 10;
                }
            }

            db.Racun.Add(noviRacun);

            List <NarudzbaStavke> sviArtikli = db.NarudzbaStavke
                                               .Include(s => s.Artikal)
                                               .Where(s => s.NarudzbaID == NarudzbaID)
                                               .ToList();

            foreach (var x in sviArtikli)
            {
                RacunStavke RS = new RacunStavke {
                    Kolicina  = x.Kolicina,
                    ArtikalId = x.ArtikalID,
                    RacunId   = noviRacun.id
                };
                Artikal artikal = db.Artikli.Where(s => s.id == x.ArtikalID).SingleOrDefault();
                artikal.Kolicina -= x.Kolicina;
                db.RacunStavke.Add(RS);
            }
            odabranaNarudzba.KlijentID = null;
            db.SaveChanges();

            RacunPraviRacunVM model = new RacunPraviRacunVM {
                Dostava = ZeliDostavu
            };

            return(PartialView(model));
        }
示例#12
0
        public IActionResult PrikazArtikala(string sortOrder, int page = 1, string pretragaString = null)
        {
            ViewBag.NazivSortParm  = String.IsNullOrEmpty(sortOrder) ? "Naziv_desc" : "";
            ViewBag.CijenaSortParm = sortOrder == "Cijena" ? "Cijena_desc" : "Cijena";


            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);



            ShopPrikazArtikalaVM model = new ShopPrikazArtikalaVM();

            if (string.IsNullOrEmpty(pretragaString))
            {
                model.rows = db.Artikli.Include(x => x.PodKategorija)
                             .Where(s => s.Kolicina > 0)
                             .Select(x => new ShopPrikazArtikalaVM.Row()
                {
                    ArtikalID        = x.id,
                    Naziv            = x.Naziv,
                    Cijena           = x.Cijena,
                    Kolicina         = x.Kolicina,
                    Fajl             = db.Fajlovi.FirstOrDefault(w => w.Id == db.ArtikliFajlovi.FirstOrDefault(k => k.ArtikalID == x.id).FajlID),
                    OdabranaKolicina = 1,
                    Podkategorija    = x.PodKategorija.Naziv
                }).OrderBy(x => x.ArtikalID).Skip((page - 1) * PageSize).Take(PageSize).ToList();

                model.PagingInfo = new Web.ViewModels.PagingInfo()
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    TotalItems   = db.Artikli.Count()
                };
            }
            else
            {
                model.rows = db.Artikli
                             .Include(x => x.PodKategorija)
                             .Where(s => s.Kolicina > 0)
                             .Select(x => new ShopPrikazArtikalaVM.Row()
                {
                    ArtikalID        = x.id,
                    Naziv            = x.Naziv,
                    Cijena           = x.Cijena,
                    Kolicina         = x.Kolicina,
                    Fajl             = db.Fajlovi.FirstOrDefault(w => w.Id == db.ArtikliFajlovi.FirstOrDefault(k => k.ArtikalID == x.id).FajlID),
                    OdabranaKolicina = 1,
                    Podkategorija    = x.PodKategorija.Naziv
                }).Where(x => x.Podkategorija.ToLower().Contains(pretragaString.ToLower()) || x.Naziv.ToLower().Contains(pretragaString.ToLower())).ToList();

                model.PagingInfo = new Web.ViewModels.PagingInfo()
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    TotalItems   = db.Artikli.Where(x => x.PodKategorija.Naziv.ToLower().Contains(pretragaString.ToLower()) || x.Naziv.ToLower().Contains(pretragaString.ToLower())).Count()
                };
            }

            switch (sortOrder)
            {
            case "Naziv_desc":
                model.rows = model.rows.OrderByDescending(x => x.Naziv);
                break;

            case "Cijena":
                model.rows = model.rows.OrderBy(x => x.Cijena);
                break;

            case "Cijena_desc":
                model.rows = model.rows.OrderByDescending(x => x.Cijena);
                break;

            default:
                model.rows = model.rows.OrderBy(x => x.Naziv);
                break;
            }
            return(View(model));
        }
示例#13
0
        public IActionResult UvidKorpe()
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);


            Narudzba postojecaNarudzba = db.Narudzbe
                                         .Where(s => s.KlijentID == klijent.id)
                                         .FirstOrDefault();


            if (postojecaNarudzba != null)
            {
                List <NarudzbaStavke> sviArtikli = db.NarudzbaStavke
                                                   .Include(s => s.Artikal)
                                                   .Where(s => s.NarudzbaID == postojecaNarudzba.id)
                                                   .ToList();

                decimal UkupanIznos = 0;


                foreach (var x in sviArtikli)
                {
                    UkupanIznos += x.Kolicina * x.Artikal.Cijena;
                }
                ShopUvidKorpeVM model = new ShopUvidKorpeVM();

                model.NarudzbaID  = postojecaNarudzba.id;
                model.UkupanIznos = UkupanIznos;
                model.ZeliDostavu = postojecaNarudzba.ZeliDostavu;
                model.rows        = db.NarudzbaStavke
                                    .Include(x => x.Artikal)
                                    .Include(x => x.Narudzba)
                                    .Include(x => x.Artikal.PodKategorija)
                                    .Where(s => s.NarudzbaID == postojecaNarudzba.id)
                                    .Select(x => new ShopUvidKorpeVM.Row()
                {
                    NarudzbaStavkeID = x.id,
                    ArtikalID        = x.ArtikalID,
                    Naziv            = x.Artikal.Naziv,
                    Cijena           = x.Artikal.Cijena,
                    Kolicina         = x.Artikal.Kolicina,
                    Fajl             = db.Fajlovi.FirstOrDefault(w => w.Id == db.ArtikliFajlovi.FirstOrDefault(k => k.ArtikalID == x.id).FajlID),
                    OdabranaKolicina = x.Kolicina,
                    Podkategorija    = x.Artikal.PodKategorija.Naziv,
                }).OrderBy(x => x.ArtikalID).ToList();



                return(View(model));
            }
            else
            {
                ShopUvidKorpeVM model = new ShopUvidKorpeVM();
                model.NarudzbaID = 0;
                return(View(model));
            }
        }
示例#14
0
        public IActionResult StaviUKorpu(int ArtikalID, int Kolicina)
        {
            Nalog trenutniNalog = Autentifikacija.GetLogiraniNalog(HttpContext);

            Data.Models.Klijent klijent = db.Klijenti.FirstOrDefault(x => x.NalogID == trenutniNalog.id);

            ViewData["brojArtikala"] = db.NarudzbaStavke.Where(x => x.Narudzba.KlijentID == klijent.id).Sum(q => q.Kolicina);



            Narudzba postojecaNarudzba = db.Narudzbe
                                         .Where(s => s.KlijentID == klijent.id)
                                         .FirstOrDefault();

            if (postojecaNarudzba == null)
            {
                Narudzba novaNarudzba = new Narudzba
                {
                    KlijentID   = klijent.id,
                    ZeliDostavu = false,
                };

                db.Narudzbe.Add(novaNarudzba);

                NarudzbaStavke novaNarudzbaStavke = new NarudzbaStavke
                {
                    ArtikalID  = ArtikalID,
                    Kolicina   = Kolicina,
                    NarudzbaID = novaNarudzba.id
                };
                db.NarudzbaStavke.Add(novaNarudzbaStavke);
            }
            else
            {
                NarudzbaStavke DaLiVecPostoji = this.db.NarudzbaStavke
                                                .FirstOrDefault(x => x.ArtikalID == ArtikalID && x.NarudzbaID == postojecaNarudzba.id);



                if (DaLiVecPostoji != null)
                {
                    DaLiVecPostoji.Kolicina += Kolicina;

                    db.SaveChanges();
                    return(RedirectToAction("PrikazArtikala"));
                }
                else
                {
                    NarudzbaStavke novaNarudzbaStavke = new NarudzbaStavke
                    {
                        ArtikalID  = ArtikalID,
                        Kolicina   = Kolicina,
                        NarudzbaID = postojecaNarudzba.id
                    };
                    db.NarudzbaStavke.Add(novaNarudzbaStavke);
                }
            }

            db.SaveChanges();


            return(RedirectToAction("PrikazArtikala"));
        }