// GET: ProsireniPrijevozs
        public IActionResult Index()
        {
            var             userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            ApplicationUser user   = _context.Users.Where(u => u.Id == userId).FirstOrDefault();


            var prijevozi = _context.Prijevoz.Include(p => p.IdPonudaPrijevozaNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation.IdKorisnikNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdStatusZahtjevaNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation)
                            .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation)
                            .Where(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznik == user.IdKorisnik ||
                                   p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNarucitelj == user.IdKorisnik)
                            .ToList();


            var prosireniPrijevozi = new List <ProsireniPrijevozViewModel>();

            if (prijevozi.Count != 0)
            {
                foreach (var prijevoz in prijevozi)
                {
                    var zahtjev = _context.Zahtjev.Where(m => m.Id == prijevoz.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.Id)
                                  .Include(m => m.IdStatusZahtjevaNavigation)
                                  .Include(m => m.IdNaruciteljNavigation).FirstOrDefault();

                    var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == zahtjev.Id)
                                           .Include(z => z.IdLokacijaNavigation)
                                           .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                           .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

                    Lokacija pocetnaLokacija   = null;
                    Lokacija odredisnaLokacija = null;

                    foreach (var lokacija in lokacijeZahtjeva)
                    {
                        if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "početna")
                        {
                            pocetnaLokacija = lokacija.IdLokacijaNavigation;
                        }
                        else
                        {
                            odredisnaLokacija = lokacija.IdLokacijaNavigation;
                        }
                    }

                    Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
                    Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


                    ProsireniZahtjevViewModel prosireniZahtjev = new ProsireniZahtjevViewModel();

                    prosireniZahtjev.Id                         = zahtjev.Id;
                    prosireniZahtjev.VrijemePocetka             = zahtjev.VrijemePocetka;
                    prosireniZahtjev.VrijemeZavrsetka           = zahtjev.VrijemeZavrsetka;
                    prosireniZahtjev.CijenaNeizvrsenja          = zahtjev.CijenaNeizvrsenja;
                    prosireniZahtjev.Sirina                     = zahtjev.Sirina;
                    prosireniZahtjev.Visina                     = zahtjev.Visina;
                    prosireniZahtjev.Duiljina                   = zahtjev.Duiljina;
                    prosireniZahtjev.Masa                       = zahtjev.Masa;
                    prosireniZahtjev.Opis                       = zahtjev.Opis;
                    prosireniZahtjev.IdNarucitelj               = zahtjev.IdNarucitelj;
                    prosireniZahtjev.IdNaruciteljNavigation     = zahtjev.IdNaruciteljNavigation;
                    prosireniZahtjev.IdStatusZahtjeva           = zahtjev.IdStatusZahtjeva;
                    prosireniZahtjev.IdStatusZahtjevaNavigation = zahtjev.IdStatusZahtjevaNavigation;
                    prosireniZahtjev.PocetnaLokacijaUlica       = pocetnaLokacija.Ulica;
                    prosireniZahtjev.PocetnaLokacijaKucniBroj   = pocetnaLokacija.KucniBroj;
                    prosireniZahtjev.PocetnoMjesto              = pocetnoMjesto.Naziv;
                    prosireniZahtjev.PocetnoMjestoPbr           = pocetnoMjesto.PostanskiBroj;
                    prosireniZahtjev.OdredisnaLokacijaUlica     = odredisnaLokacija.Ulica;
                    prosireniZahtjev.OdredisnaLokacijaKucniBroj = odredisnaLokacija.KucniBroj;
                    prosireniZahtjev.OdredisnoMjesto            = odredisnoMjesto.Naziv;
                    prosireniZahtjev.OdredisnoMjestoPbr         = odredisnoMjesto.PostanskiBroj;

                    ProsireniPrijevozViewModel prosireniPrijevoz = new ProsireniPrijevozViewModel
                    {
                        Id               = prijevoz.Id,
                        Prijevoz         = prijevoz,
                        ProsireniZahtjev = prosireniZahtjev
                    };

                    prosireniPrijevozi.Add(prosireniPrijevoz);
                }
            }

            return(View(prosireniPrijevozi));
        }
        public ProsireniPrijevozViewModel vratiPrijevoz(int?id)
        {
            var prijevoz = _context.Prijevoz.Where(p => p.Id == id)
                           .Include(p => p.IdPonudaPrijevozaNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdStatusPonudeNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdPrijevoznikNavigation.IdKorisnikNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdStatusZahtjevaNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation)
                           .Include(p => p.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.IdNaruciteljNavigation.IdKorisnikNavigation)
                           .FirstOrDefault();

            var zahtjev = _context.Zahtjev.Where(m => m.Id == prijevoz.IdPonudaPrijevozaNavigation.IdZahtjevNavigation.Id)
                          .Include(m => m.IdStatusZahtjevaNavigation)
                          .Include(m => m.IdNaruciteljNavigation).FirstOrDefault();

            var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == zahtjev.Id)
                                   .Include(z => z.IdLokacijaNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

            Lokacija pocetnaLokacija   = null;
            Lokacija odredisnaLokacija = null;

            foreach (var lokacija in lokacijeZahtjeva)
            {
                if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "početna")
                {
                    pocetnaLokacija = lokacija.IdLokacijaNavigation;
                }
                else
                {
                    odredisnaLokacija = lokacija.IdLokacijaNavigation;
                }
            }

            Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
            Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


            ProsireniZahtjevViewModel prosireniZahtjev = new ProsireniZahtjevViewModel();

            prosireniZahtjev.Id                         = zahtjev.Id;
            prosireniZahtjev.VrijemePocetka             = zahtjev.VrijemePocetka;
            prosireniZahtjev.VrijemeZavrsetka           = zahtjev.VrijemeZavrsetka;
            prosireniZahtjev.CijenaNeizvrsenja          = zahtjev.CijenaNeizvrsenja;
            prosireniZahtjev.Sirina                     = zahtjev.Sirina;
            prosireniZahtjev.Visina                     = zahtjev.Visina;
            prosireniZahtjev.Duiljina                   = zahtjev.Duiljina;
            prosireniZahtjev.Masa                       = zahtjev.Masa;
            prosireniZahtjev.Opis                       = zahtjev.Opis;
            prosireniZahtjev.IdNarucitelj               = zahtjev.IdNarucitelj;
            prosireniZahtjev.IdNaruciteljNavigation     = zahtjev.IdNaruciteljNavigation;
            prosireniZahtjev.IdStatusZahtjeva           = zahtjev.IdStatusZahtjeva;
            prosireniZahtjev.IdStatusZahtjevaNavigation = zahtjev.IdStatusZahtjevaNavigation;
            prosireniZahtjev.PocetnaLokacijaUlica       = pocetnaLokacija.Ulica;
            prosireniZahtjev.PocetnaLokacijaKucniBroj   = pocetnaLokacija.KucniBroj;
            prosireniZahtjev.PocetnoMjesto              = pocetnoMjesto.Naziv;
            prosireniZahtjev.PocetnoMjestoPbr           = pocetnoMjesto.PostanskiBroj;
            prosireniZahtjev.OdredisnaLokacijaUlica     = odredisnaLokacija.Ulica;
            prosireniZahtjev.OdredisnaLokacijaKucniBroj = odredisnaLokacija.KucniBroj;
            prosireniZahtjev.OdredisnoMjesto            = odredisnoMjesto.Naziv;
            prosireniZahtjev.OdredisnoMjestoPbr         = odredisnoMjesto.PostanskiBroj;


            var naplate = _context.Naplata.Where(n => n.IdPrijevoz == prijevoz.Id)
                          .Include(n => n.IdVrstaNaplateNavigation)
                          .Include(n => n.IdRazlogNavigation).ToList();
            Naplata naplataNarucitelju  = null;
            Naplata naplataPrijevozniku = null;

            if (naplate.Count != 0)
            {
                foreach (var naplata in naplate)
                {
                    if (naplata.IdVrstaNaplateNavigation.Vrsta == "naručitelju")
                    {
                        naplataNarucitelju = _context.Naplata.Where(n => n.IdPrijevoz == prijevoz.Id).FirstOrDefault();
                    }
                    else if (naplata.IdVrstaNaplateNavigation.Vrsta == "prijevozniku")
                    {
                        naplataPrijevozniku = _context.Naplata.Where(n => n.IdPrijevoz == prijevoz.Id).FirstOrDefault();
                    }
                }
            }

            ProsireniPrijevozViewModel prosireniPrijevoz = new ProsireniPrijevozViewModel
            {
                Id                  = prijevoz.Id,
                Prijevoz            = prijevoz,
                ProsireniZahtjev    = prosireniZahtjev,
                NaplataNaručitelju  = naplataNarucitelju,
                NaplataPrijevozniku = naplataPrijevozniku
            };

            return(prosireniPrijevoz);
        }
Example #3
0
        // POST: Zahtjevi/Create
        public async Task <IActionResult> Create([Bind("Id,VrijemePocetka,VrijemeZavrsetka,CijenaNeizvrsenja,Sirina,Visina,Duiljina," +
                                                       "Masa,Opis, PocetnaLokacijaUlica, PocetnaLokacijaKucniBroj, PocetnoMjesto, PocetnoMjestoPbr," +
                                                       "OdredisnaLokacijaUlica, OdredisnaLokacijaKucniBroj, OdredisnoMjesto, OdredisnoMjestoPbr")] ProsireniZahtjevViewModel prosireniZahtjev)
        {
            if (ModelState.IsValid)
            {
                var             userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
                ApplicationUser user   = _context.Users.Where(u => u.Id == userId).FirstOrDefault();


                StatusZahtjeva status  = _context.StatusZahtjeva.Where(s => s.Status == "Otvoreno").FirstOrDefault();
                var            zahtjev = new Zahtjev
                {
                    Id                = prosireniZahtjev.Id,
                    VrijemePocetka    = prosireniZahtjev.VrijemePocetka,
                    VrijemeZavrsetka  = prosireniZahtjev.VrijemeZavrsetka,
                    CijenaNeizvrsenja = prosireniZahtjev.CijenaNeizvrsenja,
                    Sirina            = prosireniZahtjev.Sirina,
                    Visina            = prosireniZahtjev.Visina,
                    Duiljina          = prosireniZahtjev.Duiljina,
                    Masa              = prosireniZahtjev.Masa,
                    Opis              = prosireniZahtjev.Opis,
                    IdStatusZahtjeva  = status.Id,
                    IdNarucitelj      = user.IdKorisnik,
                };
                _context.Zahtjev.Add(zahtjev);


                //po?etno mjesto
                Mjesto pocetnoMjesto = null;
                if (_context.Mjesto.Any(m => m.PostanskiBroj == prosireniZahtjev.PocetnoMjestoPbr))
                {
                    pocetnoMjesto = _context.Mjesto.Where(m => m.PostanskiBroj == prosireniZahtjev.PocetnoMjestoPbr).FirstOrDefault();
                    TempData[Constants.Message]       = "Po?etno mjesto ve? postoji  u bazi ";
                    TempData[Constants.ErrorOccurred] = true;
                }
                else
                {
                    pocetnoMjesto = new Mjesto
                    {
                        Naziv         = prosireniZahtjev.PocetnoMjesto,
                        PostanskiBroj = prosireniZahtjev.PocetnoMjestoPbr
                    };
                    _context.Mjesto.Add(pocetnoMjesto);
                }


                //odredišno mjesto
                Mjesto odredisnoMjesto = null;
                if (_context.Mjesto.Any(m => m.PostanskiBroj == prosireniZahtjev.OdredisnoMjestoPbr))
                {
                    odredisnoMjesto                   = _context.Mjesto.Where(m => m.PostanskiBroj == prosireniZahtjev.OdredisnoMjestoPbr).FirstOrDefault();
                    TempData[Constants.Message]       = "Odredišno mjesto ve? postoji  u bazi ";
                    TempData[Constants.ErrorOccurred] = true;
                }
                else
                {
                    odredisnoMjesto = new Mjesto
                    {
                        Naziv         = prosireniZahtjev.OdredisnoMjesto,
                        PostanskiBroj = prosireniZahtjev.OdredisnoMjestoPbr
                    };
                    _context.Mjesto.Add(odredisnoMjesto);
                }


                //vrste lokacije
                var vrstaPocetna = await _context.VrstaLokacije.SingleOrDefaultAsync(m => m.Vrsta == "po?etna");

                var vrstaOdredišna = await _context.VrstaLokacije.SingleOrDefaultAsync(m => m.Vrsta == "odredišna");


                //po?etna lokacija
                Lokacija pocetnaLokacija = null;
                if (_context.Lokacija.Any(m => m.IdMjesto == pocetnoMjesto.Id &&
                                          m.Ulica == prosireniZahtjev.PocetnaLokacijaUlica &&
                                          m.KucniBroj == prosireniZahtjev.PocetnaLokacijaKucniBroj &&
                                          m.IdVrstaLokacije == 1))
                {
                    pocetnaLokacija = _context.Lokacija.Where(m =>
                                                              m.Ulica == prosireniZahtjev.PocetnaLokacijaUlica &&
                                                              m.KucniBroj == prosireniZahtjev.PocetnaLokacijaKucniBroj &&
                                                              m.IdMjesto == pocetnoMjesto.Id &&
                                                              m.IdVrstaLokacije == vrstaPocetna.Id).FirstOrDefault();
                    TempData[Constants.Message]       = "Po?etna lokacija ve? postoji  u bazi ";
                    TempData[Constants.ErrorOccurred] = true;
                }
                else
                {
                    pocetnaLokacija = new Lokacija
                    {
                        Ulica                     = prosireniZahtjev.PocetnaLokacijaUlica,
                        KucniBroj                 = prosireniZahtjev.PocetnaLokacijaKucniBroj,
                        IdMjestoNavigation        = pocetnoMjesto,
                        IdMjesto                  = pocetnoMjesto.Id,
                        IdVrstaLokacijeNavigation = vrstaPocetna,
                        IdVrstaLokacije           = 1
                    };
                    _context.Lokacija.Add(pocetnaLokacija);
                }


                //odredišna lokacija
                Lokacija odredisnaLokacija = null;
                if (_context.Mjesto.Any(m => m.PostanskiBroj == prosireniZahtjev.OdredisnoMjestoPbr) &&
                    _context.Lokacija.Any(m => m.Ulica == prosireniZahtjev.OdredisnaLokacijaUlica) &&
                    _context.Lokacija.Any(m => m.KucniBroj == prosireniZahtjev.OdredisnaLokacijaKucniBroj) &&
                    _context.Lokacija.Any(m => m.IdVrstaLokacije == 2))
                {
                    odredisnaLokacija = _context.Lokacija.Where(m =>
                                                                m.Ulica == prosireniZahtjev.OdredisnaLokacijaUlica &&
                                                                m.KucniBroj == prosireniZahtjev.OdredisnaLokacijaKucniBroj &&
                                                                m.IdMjesto == odredisnoMjesto.Id &&
                                                                m.IdVrstaLokacije == vrstaOdredišna.Id).FirstOrDefault();
                    TempData[Constants.Message]       = "Odredišna lokacija ve? postoji  u bazi ";
                    TempData[Constants.ErrorOccurred] = true;
                }
                else
                {
                    odredisnaLokacija = new Lokacija
                    {
                        Ulica                     = prosireniZahtjev.OdredisnaLokacijaUlica,
                        KucniBroj                 = prosireniZahtjev.OdredisnaLokacijaKucniBroj,
                        IdMjesto                  = odredisnoMjesto.Id,
                        IdMjestoNavigation        = odredisnoMjesto,
                        IdVrstaLokacijeNavigation = vrstaOdredišna,
                        IdVrstaLokacije           = 2,
                    };
                    _context.Lokacija.Add(odredisnaLokacija);
                }


                // zahtjev - po?etna lokacija
                var zahtjevPocetnaLokacija = new ZahtjevLokacija
                {
                    IdZahtjev           = zahtjev.Id,
                    IdLokacija          = pocetnaLokacija.Id,
                    IdZahtjevNavigation = zahtjev,
                };
                _context.ZahtjevLokacija.Add(zahtjevPocetnaLokacija);



                // zahtjev - odredišna lokacija
                var zahtjevOdredisnaLokacija = new ZahtjevLokacija
                {
                    IdZahtjev           = zahtjev.Id,
                    IdLokacija          = odredisnaLokacija.Id,
                    IdZahtjevNavigation = zahtjev,
                };
                _context.ZahtjevLokacija.Add(zahtjevOdredisnaLokacija);


                await _context.SaveChangesAsync();

                TempData[Constants.Message]       = $"Prosireni zahtjev uspješno dodan";
                TempData[Constants.ErrorOccurred] = false;
            }

            return(RedirectToAction(nameof(MojiZahtjevi)));
        }
Example #4
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,VrijemePocetka,VrijemeZavrsetka,CijenaNeizvrsenja,Sirina,Visina,Duiljina,Masa,Opis,IdStatusZahtjeva,IdNarucitelj,PocetnaLokacijaUlica,PocetnaLokacijaKucniBroj,PocetnoMjesto,PocetnoMjestoPbr,OdredisnaLokacijaUlica,OdredisnaLokacijaKucniBroj,OdredisnoMjesto,OdredisnoMjestoPbr")] ProsireniZahtjevViewModel prosireniZahtjev)
        {
            var zahtjev = await _context.Zahtjev.SingleOrDefaultAsync(m => m.Id == id);

            if (id != zahtjev.Id)
            {
                return(NotFound());
            }

            var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == id)
                                   .Include(z => z.IdLokacijaNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

            Lokacija pocetnaLokacija   = null;
            Lokacija odredisnaLokacija = null;


            foreach (var lokacija in lokacijeZahtjeva)
            {
                if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "po?etna")
                {
                    pocetnaLokacija = lokacija.IdLokacijaNavigation;
                }
                else
                {
                    odredisnaLokacija = lokacija.IdLokacijaNavigation;
                }
            }

            Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
            Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


            if (ModelState.IsValid)
            {
                try
                {
                    zahtjev.VrijemePocetka    = prosireniZahtjev.VrijemePocetka;
                    zahtjev.VrijemeZavrsetka  = prosireniZahtjev.VrijemeZavrsetka;
                    zahtjev.CijenaNeizvrsenja = prosireniZahtjev.CijenaNeizvrsenja;
                    zahtjev.Sirina            = prosireniZahtjev.Sirina;
                    zahtjev.Visina            = prosireniZahtjev.Visina;
                    zahtjev.Duiljina          = prosireniZahtjev.Duiljina;
                    zahtjev.Opis             = prosireniZahtjev.Opis;
                    zahtjev.IdNarucitelj     = prosireniZahtjev.IdNarucitelj;
                    zahtjev.IdStatusZahtjeva = prosireniZahtjev.IdStatusZahtjeva;
                    _context.Zahtjev.Update(zahtjev);


                    //ako po?etno mjesto postoji u bazi, u lokaciju stavi njegov id, ako ne, dodaj ga u bazu
                    if (_context.Mjesto.Any(m => m.PostanskiBroj == prosireniZahtjev.PocetnoMjestoPbr &&
                                            m.Naziv == prosireniZahtjev.PocetnoMjesto))
                    {
                        pocetnoMjesto = _context.Mjesto.Where(m => m.PostanskiBroj == prosireniZahtjev.PocetnoMjestoPbr &&
                                                              m.Naziv == prosireniZahtjev.PocetnoMjesto).FirstOrDefault();

                        pocetnaLokacija.Id = pocetnoMjesto.Id;
                        pocetnaLokacija.IdMjestoNavigation = pocetnoMjesto;
                    }
                    else
                    {
                        Mjesto novoMjesto = new Mjesto
                        {
                            Naziv         = prosireniZahtjev.PocetnoMjesto,
                            PostanskiBroj = prosireniZahtjev.PocetnoMjestoPbr
                        };
                        _context.Mjesto.Add(novoMjesto);

                        pocetnaLokacija.IdMjesto           = novoMjesto.Id;
                        pocetnaLokacija.IdMjestoNavigation = novoMjesto;
                    }

                    //ako odredišno mjesto postoji u bazi, u lokaciju stavi njegov id, ako ne, dodaj ga u bazu
                    if (_context.Mjesto.Any(m => m.PostanskiBroj == prosireniZahtjev.OdredisnoMjestoPbr &&
                                            m.Naziv == prosireniZahtjev.OdredisnoMjesto))
                    {
                        odredisnoMjesto = _context.Mjesto.Where(m => m.PostanskiBroj == prosireniZahtjev.OdredisnoMjestoPbr &&
                                                                m.Naziv == prosireniZahtjev.OdredisnoMjesto).FirstOrDefault();

                        odredisnaLokacija.IdMjesto           = odredisnoMjesto.Id;
                        odredisnaLokacija.IdMjestoNavigation = odredisnoMjesto;
                    }
                    else
                    {
                        Mjesto novoMjesto = new Mjesto
                        {
                            Naziv         = prosireniZahtjev.OdredisnoMjesto,
                            PostanskiBroj = prosireniZahtjev.OdredisnoMjestoPbr
                        };
                        _context.Mjesto.Add(novoMjesto);

                        odredisnaLokacija.IdMjesto           = novoMjesto.Id;
                        odredisnaLokacija.IdMjestoNavigation = novoMjesto;
                    }

                    pocetnaLokacija.Ulica     = prosireniZahtjev.PocetnaLokacijaUlica;
                    pocetnaLokacija.KucniBroj = prosireniZahtjev.PocetnaLokacijaKucniBroj;


                    //ako po?etna lokacija postoji u bazi, u zahtjev-lokacije stavi njezin id, ako ne, ažuriraj ovu u bazi
                    if (_context.Lokacija.Any(l => l.KucniBroj == pocetnaLokacija.KucniBroj && l.Ulica == pocetnaLokacija.Ulica &&
                                              l.IdMjesto == pocetnaLokacija.IdMjesto && l.IdVrstaLokacijeNavigation.Vrsta == "po?etna"))
                    {
                        ZahtjevLokacija pocetnaLokacijaZahtjev = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == zahtjev.Id &&
                                                                                                m.IdLokacija == pocetnaLokacija.Id).FirstOrDefault();

                        pocetnaLokacija = _context.Lokacija.Where(l => l.KucniBroj == pocetnaLokacija.KucniBroj && l.Ulica == pocetnaLokacija.Ulica &&
                                                                  l.IdMjesto == pocetnaLokacija.IdMjesto && l.IdVrstaLokacijeNavigation.Vrsta == "po?etna").FirstOrDefault();

                        pocetnaLokacijaZahtjev.Id = pocetnaLokacija.Id;
                        pocetnaLokacijaZahtjev.IdLokacijaNavigation = pocetnaLokacija;

                        _context.ZahtjevLokacija.Update(pocetnaLokacijaZahtjev);
                    }
                    else
                    {
                        _context.Lokacija.Update(pocetnaLokacija);
                    }


                    odredisnaLokacija.Ulica     = prosireniZahtjev.OdredisnaLokacijaUlica;
                    odredisnaLokacija.KucniBroj = prosireniZahtjev.OdredisnaLokacijaKucniBroj;

                    //ako odredišna lokacija postoji u bazi, u zahtjev-lokacije stavi njezin id, ako ne, ažuriraj ovu u bazi
                    if (_context.Lokacija.Any(l => l.KucniBroj == odredisnaLokacija.KucniBroj && l.Ulica == odredisnaLokacija.Ulica &&
                                              l.IdMjesto == odredisnaLokacija.IdMjesto && l.IdVrstaLokacijeNavigation.Vrsta == "odredišna"))
                    {
                        ZahtjevLokacija odredisnaLokacijaZahtjev = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == zahtjev.Id &&
                                                                                                  m.IdLokacija == odredisnaLokacija.Id).FirstOrDefault();

                        odredisnaLokacija = _context.Lokacija.Where(l => l.KucniBroj == odredisnaLokacija.KucniBroj && l.Ulica == odredisnaLokacija.Ulica &&
                                                                    l.IdMjesto == odredisnaLokacija.IdMjesto && l.IdVrstaLokacijeNavigation.Vrsta == "odredišna").FirstOrDefault();

                        odredisnaLokacijaZahtjev.Id = odredisnaLokacija.Id;
                        odredisnaLokacijaZahtjev.IdLokacijaNavigation = odredisnaLokacija;

                        _context.ZahtjevLokacija.Update(odredisnaLokacijaZahtjev);
                    }
                    else
                    {
                        _context.Lokacija.Update(odredisnaLokacija);
                    }



                    await _context.SaveChangesAsync();

                    TempData[Constants.Message]       = "Ažuriranje uspješno obavljeno";
                    TempData[Constants.ErrorOccurred] = false;
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ZahtjevExists(zahtjev.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            string urlString = "MojZahtjev/" + zahtjev.Id.ToString();

            ViewData["IdNarucitelj"]     = new SelectList(_context.Narucitelj, "IdKorisnik", "IdKorisnik", zahtjev.IdNarucitelj);
            ViewData["IdStatusZahtjeva"] = new SelectList(_context.StatusZahtjeva, "Id", "Status", zahtjev.IdStatusZahtjeva);
            return(RedirectToAction(urlString));;
        }
Example #5
0
        // GET: ProsireniZahtjevs/Edit/5
        public async Task <IActionResult> Edit(int id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var zahtjev = await _context.Zahtjev.SingleOrDefaultAsync(m => m.Id == id);

            if (id != zahtjev.Id)
            {
                return(NotFound());
            }

            var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == id)
                                   .Include(z => z.IdLokacijaNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

            Lokacija pocetnaLokacija   = null;
            Lokacija odredisnaLokacija = null;

            foreach (var lokacija in lokacijeZahtjeva)
            {
                if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "po?etna")
                {
                    pocetnaLokacija = lokacija.IdLokacijaNavigation;
                }
                else
                {
                    odredisnaLokacija = lokacija.IdLokacijaNavigation;
                }
            }

            Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
            Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


            ProsireniZahtjevViewModel prosireniZahtjev = new ProsireniZahtjevViewModel();

            prosireniZahtjev.Id                         = zahtjev.Id;
            prosireniZahtjev.VrijemePocetka             = zahtjev.VrijemePocetka;
            prosireniZahtjev.VrijemeZavrsetka           = zahtjev.VrijemeZavrsetka;
            prosireniZahtjev.CijenaNeizvrsenja          = zahtjev.CijenaNeizvrsenja;
            prosireniZahtjev.Sirina                     = zahtjev.Sirina;
            prosireniZahtjev.Visina                     = zahtjev.Visina;
            prosireniZahtjev.Duiljina                   = zahtjev.Duiljina;
            prosireniZahtjev.Masa                       = zahtjev.Masa;
            prosireniZahtjev.Opis                       = zahtjev.Opis;
            prosireniZahtjev.IdNarucitelj               = zahtjev.IdNarucitelj;
            prosireniZahtjev.IdStatusZahtjeva           = zahtjev.IdStatusZahtjeva;
            prosireniZahtjev.IdStatusZahtjevaNavigation = zahtjev.IdStatusZahtjevaNavigation;
            prosireniZahtjev.PocetnaLokacijaUlica       = pocetnaLokacija.Ulica;
            prosireniZahtjev.PocetnaLokacijaKucniBroj   = pocetnaLokacija.KucniBroj;
            prosireniZahtjev.PocetnoMjesto              = pocetnoMjesto.Naziv;
            prosireniZahtjev.PocetnoMjestoPbr           = pocetnoMjesto.PostanskiBroj;
            prosireniZahtjev.OdredisnaLokacijaUlica     = odredisnaLokacija.Ulica;
            prosireniZahtjev.OdredisnaLokacijaKucniBroj = odredisnaLokacija.KucniBroj;
            prosireniZahtjev.OdredisnoMjesto            = odredisnoMjesto.Naziv;
            prosireniZahtjev.OdredisnoMjestoPbr         = odredisnoMjesto.PostanskiBroj;


            ViewData["IdNarucitelj"]     = new SelectList(_context.Narucitelj, "IdKorisnik", "IdKorisnik", zahtjev.IdNarucitelj);
            ViewData["IdStatusZahtjeva"] = new SelectList(_context.StatusZahtjeva, "Id", "Status", zahtjev.IdStatusZahtjeva);
            return(View(prosireniZahtjev));
        }
Example #6
0
        public async Task <IActionResult> MojZahtjev(int id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var zahtjev = _context.Zahtjev.Where(m => m.Id == id).Include(m => m.IdStatusZahtjevaNavigation)
                          .Include(m => m.IdNaruciteljNavigation)
                          .Include(m => m.IdNaruciteljNavigation.IdKorisnikNavigation).FirstOrDefault();

            if (id != zahtjev.Id)
            {
                return(NotFound());
            }

            var lokacijeZahtjeva = _context.ZahtjevLokacija.Where(m => m.IdZahtjev == id)
                                   .Include(z => z.IdLokacijaNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdVrstaLokacijeNavigation)
                                   .Include(z => z.IdLokacijaNavigation.IdMjestoNavigation);

            Lokacija pocetnaLokacija   = null;
            Lokacija odredisnaLokacija = null;

            foreach (var lokacija in lokacijeZahtjeva)
            {
                if (lokacija.IdLokacijaNavigation.IdVrstaLokacijeNavigation.Vrsta == "po?etna")
                {
                    pocetnaLokacija = lokacija.IdLokacijaNavigation;
                }
                else
                {
                    odredisnaLokacija = lokacija.IdLokacijaNavigation;
                }
            }

            Mjesto pocetnoMjesto   = pocetnaLokacija.IdMjestoNavigation;
            Mjesto odredisnoMjesto = odredisnaLokacija.IdMjestoNavigation;


            ProsireniZahtjevViewModel prosireniZahtjev = new ProsireniZahtjevViewModel();

            prosireniZahtjev.Id                         = zahtjev.Id;
            prosireniZahtjev.VrijemePocetka             = zahtjev.VrijemePocetka;
            prosireniZahtjev.VrijemeZavrsetka           = zahtjev.VrijemeZavrsetka;
            prosireniZahtjev.CijenaNeizvrsenja          = zahtjev.CijenaNeizvrsenja;
            prosireniZahtjev.Sirina                     = zahtjev.Sirina;
            prosireniZahtjev.Visina                     = zahtjev.Visina;
            prosireniZahtjev.Duiljina                   = zahtjev.Duiljina;
            prosireniZahtjev.Masa                       = zahtjev.Masa;
            prosireniZahtjev.Opis                       = zahtjev.Opis;
            prosireniZahtjev.IdNarucitelj               = zahtjev.IdNarucitelj;
            prosireniZahtjev.IdNaruciteljNavigation     = zahtjev.IdNaruciteljNavigation;
            prosireniZahtjev.IdStatusZahtjeva           = zahtjev.IdStatusZahtjeva;
            prosireniZahtjev.IdStatusZahtjevaNavigation = zahtjev.IdStatusZahtjevaNavigation;
            prosireniZahtjev.PocetnaLokacijaUlica       = pocetnaLokacija.Ulica;
            prosireniZahtjev.PocetnaLokacijaKucniBroj   = pocetnaLokacija.KucniBroj;
            prosireniZahtjev.PocetnoMjesto              = pocetnoMjesto.Naziv;
            prosireniZahtjev.PocetnoMjestoPbr           = pocetnoMjesto.PostanskiBroj;
            prosireniZahtjev.OdredisnaLokacijaUlica     = odredisnaLokacija.Ulica;
            prosireniZahtjev.OdredisnaLokacijaKucniBroj = odredisnaLokacija.KucniBroj;
            prosireniZahtjev.OdredisnoMjesto            = odredisnoMjesto.Naziv;
            prosireniZahtjev.OdredisnoMjestoPbr         = odredisnoMjesto.PostanskiBroj;

            var ponudePrijevoza = _context.PonudaPrijevoza.Where(p => p.IdZahtjev == zahtjev.Id)
                                  .Include(p => p.IdPrijevoznikNavigation)
                                  .Include(p => p.IdPrijevoznikNavigation.IdKorisnikNavigation)
                                  .Include(p => p.IdStatusPonudeNavigation).ToList();

            var vozila = _context.Vozilo.Include(z => z.IdPrijevoznikNavigation).ToList();

            ZahtjevPonudeViewModel zahtjevPonude = new ZahtjevPonudeViewModel();

            zahtjevPonude.ProsireniZahtjev = prosireniZahtjev;
            zahtjevPonude.PonudePrijevoza  = ponudePrijevoza;
            zahtjevPonude.Vozila           = vozila;

            //vrati ID prijevoza ako postoji
            if (_context.Prijevoz.Any(p => p.IdPonudaPrijevozaNavigation.IdZahtjev == zahtjev.Id))
            {
                Prijevoz prijevoz = _context.Prijevoz.Where(p => p.IdPonudaPrijevozaNavigation.IdZahtjev == zahtjev.Id).FirstOrDefault();
                ViewData["IdPrijevoz"] = prijevoz.Id;
            }
            else
            {
                ViewData["IdPrijevoz"] = null;
            }

            return(View(zahtjevPonude));
        }