public IActionResult Inventar() { var model = new IzvjestajInventarVM { Lokacije = db.Lokacija .Where(x => x.IsDeleted == false).Select(x => new SelectListItem { Value = x.LokacijaId.ToString(), Text = x.Naziv }).ToList(), DostupneOpcije = new List <SelectListItem> { new SelectListItem { Value = "NoviBicikli", Text = "Novi bicikli" }, new SelectListItem { Value = "PolovniBicikli", Text = "Polovni bicikli" }, new SelectListItem { Value = "KorišteniBicikli", Text = "Korišteni bicikli" }, new SelectListItem { Value = "Dijelovi", Text = "Dijelovi" }, new SelectListItem { Value = "Oprema", Text = "Oprema" }, }, NaciniPrikaza = new List <SelectListItem> { new SelectListItem { Value = "1", Text = "Šifra proizvoda" }, new SelectListItem { Value = "2", Text = "Serijski broj" } } }; return(View(model)); }
public IActionResult InventarPrikaz(IzvjestajInventarVM request) { var stavke = new List <InventarStavka>(); bool showAll = request.OdabraneOpcije is null; if (showAll || request.OdabraneOpcije.Contains("NoviBicikli")) { if (request.NacinPrikaza == 1) { stavke.AddRange(db.Bicikl.Where(x => x.Stanje == Stanje.Novo).Select(x => new InventarStavka { Šifra = "B-" + x.BiciklId.ToString(), Cijena = x.Cijena.Value, Naziv = x.Model.Proizvodjac.Naziv + " " + x.Model.Naziv, VrstaStavke = "Novo biciklo", KolicinaNaStanju = x.BiciklStanje.Where(y => y.LokacijaId == request.LokacijaId && y.Aktivan).Sum(y => y.Kolicina) }).Where(x => x.KolicinaNaStanju > 0).ToList()); } else { stavke.AddRange(db.BiciklStanje.Where(x => x.Bicikl.Stanje == Stanje.Novo) .Where(x => x.LokacijaId == request.LokacijaId && x.Aktivan) .Select(x => new InventarStavka { Cijena = x.Bicikl.Cijena.Value, Naziv = x.Bicikl.Model.Proizvodjac.Naziv + " " + x.Bicikl.Model.Naziv, VrstaStavke = "Novo biciklo", KolicinaNaStanju = x.Kolicina }).ToList()); } } if (showAll || request.OdabraneOpcije.Contains("PolovniBicikli")) { if (request.NacinPrikaza == 1) { stavke.AddRange(db.Bicikl.Where(x => x.Stanje == Stanje.Polovno).Select(x => new InventarStavka { Šifra = "B-" + x.BiciklId.ToString(), Cijena = x.Cijena.Value, Naziv = x.Model.Proizvodjac.Naziv + " " + x.Model.Naziv, VrstaStavke = "Polovno biciklo", KolicinaNaStanju = x.BiciklStanje.Count(y => y.LokacijaId == request.LokacijaId && y.Aktivan) }).Where(x => x.KolicinaNaStanju > 0).ToList()); } else { stavke.AddRange(db.BiciklStanje.Where(x => x.Bicikl.Stanje == Stanje.Polovno) .Where(x => x.LokacijaId == request.LokacijaId && x.Aktivan) .Select(x => new InventarStavka { Cijena = x.Bicikl.Cijena.Value, Naziv = x.Bicikl.Model.Proizvodjac.Naziv + " " + x.Bicikl.Model.Naziv, VrstaStavke = "Polovno biciklo", KolicinaNaStanju = x.Kolicina }).ToList()); } } if (showAll || request.OdabraneOpcije.Contains("KorišteniBicikli")) { if (request.NacinPrikaza == 1) { stavke.AddRange(db.Bicikl.Where(x => x.Stanje == Stanje.Korišteno).Select(x => new InventarStavka { Šifra = "B-" + x.BiciklId.ToString(), Cijena = x.CijenaPoDanu.Value, Naziv = x.Model.Proizvodjac.Naziv + " " + x.Model.Naziv, VrstaStavke = "Korišteno biciklo", KolicinaNaStanju = x.BiciklStanje.Count(y => y.LokacijaId == request.LokacijaId && y.Aktivan) }).Where(x => x.KolicinaNaStanju > 0).ToList()); } else { stavke.AddRange(db.BiciklStanje.Where(x => x.Bicikl.Stanje == Stanje.Korišteno) .Where(x => x.LokacijaId == request.LokacijaId && x.Aktivan) .Select(x => new InventarStavka { Cijena = x.Bicikl.CijenaPoDanu.Value, Naziv = x.Bicikl.Model.Proizvodjac.Naziv + " " + x.Bicikl.Model.Naziv, VrstaStavke = "Korišteno biciklo", KolicinaNaStanju = x.Kolicina }).ToList()); } } if (showAll || request.OdabraneOpcije.Contains("Dijelovi")) { if (request.NacinPrikaza == 1) { stavke.AddRange(db.Dio.Where(x => x.IsDeleted == false).Select(x => new InventarStavka { Šifra = "D-" + x.DioId.ToString(), Cijena = x.Cijena, Naziv = x.Naziv, VrstaStavke = "Dio", KolicinaNaStanju = x.DioStanje.Count(y => y.LokacijaId == request.LokacijaId && y.KupacId == null && y.Aktivan) }).Where(x => x.KolicinaNaStanju > 0).ToList()); } else { stavke.AddRange(db.DioStanje .Where(x => x.LokacijaId == request.LokacijaId && x.KupacId == null && x.Aktivan) .Select(x => new InventarStavka { Šifra = x.Sifra, Cijena = x.Dio.Cijena, Naziv = x.Dio.Naziv, VrstaStavke = "Dio", KolicinaNaStanju = 1 }).ToList()); } } if (showAll || request.OdabraneOpcije.Contains("Oprema")) { if (request.NacinPrikaza == 1) { stavke.AddRange(db.Oprema.Where(x => x.IsDeleted == false).Select(x => new InventarStavka { Šifra = "O-" + x.OpremaId.ToString(), Cijena = x.Cijena, Naziv = x.Naziv, VrstaStavke = "Oprema", KolicinaNaStanju = x.OpremaStanje.Count(y => y.LokacijaId == request.LokacijaId && y.KupacId == null && y.Aktivan) }).Where(x => x.KolicinaNaStanju > 0).ToList()); } else { stavke.AddRange(db.OpremaStanje .Where(x => x.LokacijaId == request.LokacijaId && x.KupacId == null && x.Aktivan) .Select(x => new InventarStavka { Šifra = x.Sifra, Cijena = x.Oprema.Cijena, Naziv = x.Oprema.Naziv, VrstaStavke = "Oprema", KolicinaNaStanju = 1 }).ToList()); } } var vm = new IzvjestajInventarPrikazVM { Stavke = stavke, NacinPrikaza = request.NacinPrikaza }; return(PartialView(vm)); }