public async Task <IActionResult> Create(PonudaStavke ponudastavke)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ctx.Add(ponudastavke);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"dokument je dodan. Id mjesta = {ponudastavke.PonudaId} Id stavke = {ponudastavke.IdStavke}";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    await PrepareDropDownLists();

                    return(View(ponudastavke));
                }
            }
            else
            {
                await PrepareDropDownLists();

                return(View(ponudastavke));
            }
        }
Пример #2
0
        public async Task <IActionResult> Create(Dokument dokument)
        {
            var query  = ctx;
            int zadnji = query.Dokuments.OrderBy(d => d.DokumentId).Last().DokumentId;

            dokument.DokumentId = zadnji + 1;
            if (ModelState.IsValid)
            {
                var idemo = new PonDokumenti();
                idemo.PonudaId   = dokument.PonudaId;
                idemo.DokumentId = dokument.DokumentId;
                try
                { ctx.Add(idemo);
                  ctx.Add(dokument);
                  await ctx.SaveChangesAsync();

                  TempData[Constants.Message]       = $"dokument {dokument.Naslov} dodano. Id mjesta = {dokument.DokumentId}";
                  TempData[Constants.ErrorOccurred] = false;
                  return(RedirectToAction(nameof(Index))); }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    await PrepareDropDownLists();

                    return(View(dokument));
                }
            }
            else
            {
                await PrepareDropDownLists();

                return(View(dokument));
            }
        }
Пример #3
0
        public async Task <IActionResult> Create(Konzorcij konzorcij)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    konzorcij.IdKonzorcij = GenerateRandomNumber();
                    ctx.Add(konzorcij);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]      = $"Ponuditelj {konzorcij.NazivKonzorcij} uspješno dodan.";
                    TempData[Constants.ErrorOccured] = false;

                    return(RedirectToAction("Index"));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage()); //radimo proširenje za Exception
                    return(View(konzorcij));                                                //ne vracamo praznu stranicu, nego postojece podatke
                }
            }
            else
            {
                return(View(konzorcij));
            }
        }
Пример #4
0
        public async Task <IActionResult> Delete(int id)
        {
            var vrstaStavke = await ctx.VrstaStavkes.FindAsync(id);

            if (vrstaStavke == null)
            {
                return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"Neispravni id = {id}"));
            }
            else
            {
                ctx.Remove(vrstaStavke);
                await ctx.SaveChangesAsync();

                return(NoContent());
            }
        }
        public async Task <IActionResult> Delete(string oib)
        {
            var ponuditelj = await ctx.Ponuditeljs.FindAsync(oib);

            if (ponuditelj == null)
            {
                return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"Neispravni oib = {oib}"));
            }
            else
            {
                ctx.Remove(ponuditelj);
                await ctx.SaveChangesAsync();

                return(NoContent());
            }
        }
        public async Task <IActionResult> Delete(int oib)
        {
            var ovlaštenik = await ctx.Ovlašteniks.FindAsync(oib);

            if (ovlaštenik == null)
            {
                return(Problem(statusCode: StatusCodes.Status404NotFound, detail: $"Neispravni oib = {oib}"));
            }
            else
            {
                ctx.Remove(ovlaštenik);
                await ctx.SaveChangesAsync();

                return(NoContent());
            }
        }
Пример #7
0
        public async Task <IActionResult> Create(ZapisnikViewModel model)
        {
            if (ModelState.IsValid)
            {
                Zapisnik z = new Zapisnik();
                z.ZapisnikId         = model.ZapisnikId;
                z.IdPovjerenstva     = model.IdPovjerenstva;
                z.PonudaId           = model.IdPonude;
                z.NazivZapisnik      = model.NazivZapisnik;
                z.IdPrethZapisnika   = model.IdPrethZapisnika;
                z.IspravnostZapisnik = model.ispravnostZapisnik;

                foreach (var stavka in model.StavkeZapisnika)
                {
                    StavkaZapisnik novaStavka = new StavkaZapisnik();
                    novaStavka.idOdredba        = stavka.idOdredba;
                    novaStavka.cijenaKršenja    = stavka.cijenaKršenjaOdluke;
                    novaStavka.ispravnostStavka = stavka.ispravnostStavka;
                    z.StavkaZapisniks.Add(novaStavka);
                }

                try
                {
                    ctx.Add(z);
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"Zapisnik uspješno dodan. Id={z.ZapisnikId}";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Edit), new { id = z.ZapisnikId }));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }
Пример #8
0
        public async Task <IActionResult> Create(Ponudum ponuda)
        {
            var query  = ctx;
            int zadnji = query.Ponuda.OrderBy(d => d.PonudaId).Last().PonudaId;

            ponuda.PonudaId = zadnji + 1;
            if (ModelState.IsValid)
            {
                var idemo = new PonudaNatječaj();
                idemo.PonudaId         = ponuda.PonudaId;
                idemo.EvidBrojNatječaj = ponuda.EvidBrojNatječaj;
                var idemo2 = new PonudaPonuditelj();
                idemo2.PonudaId      = ponuda.PonudaId;
                idemo2.OibPonuditelj = ponuda.OibPonuditelj;
                try
                { ctx.Add(idemo);
                  ctx.Add(idemo2);
                  ctx.Add(ponuda);
                  await ctx.SaveChangesAsync();

                  TempData[Constants.Message]       = $"dokument {ponuda.Naslov} dodano. Id mjesta = {ponuda.PonudaId}";
                  TempData[Constants.ErrorOccurred] = false;
                  return(RedirectToAction(nameof(Index))); }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    await PrepareDropDownLists();

                    return(View(ponuda));
                }
            }
            else
            {
                await PrepareDropDownLists();

                return(View(ponuda));
            }
        }
        public async Task <IActionResult> Update(int id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                Ovlaštenik ovlaštenik = await ctx.Ovlašteniks.Where(o => o.OibOvlaštenik == id).SingleOrDefaultAsync();

                if (ovlaštenik == null)
                {
                    return(NotFound($"Ovlaštenik s oibom {id} ne postoji"));
                }


                bool potvrda = await TryUpdateModelAsync <Ovlaštenik>(ovlaštenik, "", o => o.ImeOvlaštenik, o => o.PrezimeOvlaštenik, o => o.IdPovjerenstva, o => o.OibNaručitelja);

                if (potvrda)
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await ctx.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Ovlaštenik {ovlaštenik.ImeOvlaštenik} uspješno ažuriran.";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page, sort, ascending }));
                    }
                    catch (Exception exc)
                    {
                        PrepareDropDownList();
                        PrepareDropDownList2();
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        return(View(ovlaštenik));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke nije moguće povezati");
                    PrepareDropDownList();
                    PrepareDropDownList2();
                    return(View(ovlaštenik));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                return(RedirectToAction(nameof(Edit), new { id, page, sort, ascending }));
            }
        }
        public async Task <IActionResult> Update(int Id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                StavkaUTroškovniku stavkaUTroškovniku = await ctx.StavkaUTroškovnikus
                                                        .Where(d => d.IdStavke == Id)
                                                        .FirstOrDefaultAsync();

                if (stavkaUTroškovniku == null)
                {
                    return(NotFound($"Ne postoji stavka s oznakom {Id}"));
                }

                if (await TryUpdateModelAsync <StavkaUTroškovniku>(stavkaUTroškovniku, "",
                                                                   d => d.NazivStavke, d => d.TraženaKoličina, d => d.IdVrste, d => d.DodatneInformacije
                                                                   ))
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await ctx.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Stavka pod nazivom {stavkaUTroškovniku.NazivStavke} uspješno ažurirana";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page = page, sort = sort, ascending = ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        PrepareDropDownLists();
                        return(View(stavkaUTroškovniku));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke o stavci nije moguće povezati s forme");
                    PrepareDropDownLists();
                    return(View(stavkaUTroškovniku));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                PrepareDropDownLists();
                return(RedirectToAction(nameof(Edit), new { Id }));
            }
        }
        public async Task <IActionResult> Update(string id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                var z = context.Zaposleniks
                        .Where(d => d.OibZaposlenik == id)
                        .FirstOrDefault();

                if (z == null)
                {
                    return(NotFound($"Ne postoji zaposlenik s ovim oibom {id}"));
                }

                bool potvrda = await TryUpdateModelAsync <Zaposlenik>(z, "", d => d.OibZaposlenik, d => d.ImeZaposlenik, d => d.PrezimeZaposlenik, d => d.DatumRođenja, d => d.MjestoPrebivališta, d => d.IdKompetencije, d => d.IdStručneSpreme);

                if (potvrda)
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await context.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Zaposlenik {z.OibZaposlenik} uspješno ažurirano.";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page, sort, ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        PrepareDropdownLists();
                        return(View(z));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke nije moguće povezati");
                    PrepareDropdownLists();
                    return(View(z));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                return(RedirectToAction(nameof(Edit), new { id, page, sort, ascending }));
            }
        }
        public async Task <IActionResult> Update(int id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                Povjerenstvo povjerenstvo = await ctx.Povjerenstvos.Where(p => p.IdPovjerenstva == id).SingleOrDefaultAsync();

                if (povjerenstvo == null)
                {
                    return(NotFound($"Povjerenstvo s id-om {id} ne postoji."));
                }


                bool potvrda = await TryUpdateModelAsync <Povjerenstvo>(povjerenstvo, "", p => p.NazivPovjerenstva, p => p.EvidBrojNatječaj);

                if (potvrda)
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await ctx.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Povjerenstvo {povjerenstvo.NazivPovjerenstva} uspješno ažurirano.";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page, sort, ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        PrepareDropDownList2();
                        return(View(povjerenstvo));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke nije moguće povezati");
                    PrepareDropDownList2();
                    return(View(povjerenstvo));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                return(RedirectToAction(nameof(Edit), new { id, page, sort, ascending }));
            }
        }
        public async Task <IActionResult> Update(int Id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                VrstaStavke vrstaStavke = await ctx.VrstaStavkes
                                          .Where(d => d.IdVrste == Id)
                                          .FirstOrDefaultAsync();

                if (vrstaStavke == null)
                {
                    return(NotFound($"Ne postoji vrsta stavke s Id: {Id}"));
                }

                if (await TryUpdateModelAsync <VrstaStavke>(vrstaStavke, "", d => d.NazivVrste
                                                            ))
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await ctx.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Vrsta stavke {Id} uspješno ažurirana";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page = page, sort = sort, ascending = ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        return(View(vrstaStavke));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke o vrsti stavke nije moguće povezati s forme");
                    return(View(vrstaStavke));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                return(RedirectToAction(nameof(Edit), new { Id }));
            }
        }
Пример #14
0
        public async Task <IActionResult> Update(int id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                var kompetencije = await context.VrstaKompetencijes.FindAsync(id);

                if (kompetencije == null)
                {
                    return(NotFound($"Ne postoji kompetencija čiji je id {id}"));
                }


                bool ok = await TryUpdateModelAsync <VrstaKompetencije>(kompetencije, "", d => d.NazivKompetencije);

                if (ok)
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await context.SaveChangesAsync();

                        TempData[Constants.Message]       = $"Kompetencija {kompetencije.NazivKompetencije} uspješno ažurirana.";
                        TempData[Constants.ErrorOccurred] = false;
                        return(RedirectToAction(nameof(Index), new { page = page, sort = sort, ascending = ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        return(View(kompetencije));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke nije moguće povezati");
                    return(View(kompetencije));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]       = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccurred] = true;
                return(RedirectToAction(nameof(Edit), id));
            }
        }
Пример #15
0
        public async Task <IActionResult> Update(string id, int page = 1, int sort = 1, bool ascending = true)
        {
            try
            {
                Ponuditelj ponuditelj = await ctx.Ponuditeljs.FindAsync(id);

                if (ponuditelj == null)
                {
                    return(NotFound($"Ne postoji ponuditelj čiji je OIB {id}"));
                }


                bool ok = await TryUpdateModelAsync <Ponuditelj>(ponuditelj, "", p => p.NazivPonuditelj, p => p.AdresaPonuditelj, p => p.SjedištePonuditelj);

                if (ok)
                {
                    ViewBag.Page      = page;
                    ViewBag.Sort      = sort;
                    ViewBag.Ascending = ascending;
                    try
                    {
                        await ctx.SaveChangesAsync();

                        TempData[Constants.Message]      = $"Ponuditelj {ponuditelj.NazivPonuditelj} uspješno ažuriran.";
                        TempData[Constants.ErrorOccured] = false;
                        return(RedirectToAction(nameof(Index), new { page = page, sort = sort, ascending = ascending }));
                    }
                    catch (Exception exc)
                    {
                        ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                        return(View(ponuditelj));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Podatke nije moguće povezati");
                    return(View(ponuditelj));
                }
            }
            catch (Exception exc)
            {
                TempData[Constants.Message]      = exc.CompleteExceptionMessage();
                TempData[Constants.ErrorOccured] = true;
                return(RedirectToAction(nameof(Edit), id));
            }
        }
Пример #16
0
        public async Task <IActionResult> Edit(TroškovnikViewModel model, int page = 1, int sort = 1, bool ascending = true)
        {
            ViewBag.Page      = page;
            ViewBag.Sort      = sort;
            ViewBag.Ascending = ascending;

            if (ModelState.IsValid)
            {
                var troškovnik = await ctx.Troškovniks
                                 .Include(d => d.TroškovnikStavkas)
                                 .Where(d => d.TroškovnikId == model.TroškovnikId)
                                 .FirstOrDefaultAsync();

                if (troškovnik == null)
                {
                    return(NotFound("Ne postoji troškovnik s id-om: " + model.TroškovnikId));
                }


                await SetPreviousAndNext(model.TroškovnikId);

                Console.WriteLine("troškovnik id :" + model.TroškovnikId + " naziv natzječaja:" + model.IdNatječaja + "stavke");


                troškovnik.EvidBrojNatječaj = model.IdNatječaja;

                List <int> idStavki = model.Stavke
                                      .Where(s => s.IdStavke > 0)
                                      .Select(s => s.IdStavke)
                                      .ToList();
                foreach (var item in idStavki)
                {
                    Console.WriteLine("id stavki :" + idStavki);
                }
                //izbaci sve koje su nisu više u modelu
                throw new Exception("Kod ne radi, bacam grešku da ne pobriše podatke");
                //ctx.RemoveRange(troškovnik.TroškovnikStavkas.Where(s => !idStavki.Contains(s.IdStavke)));

                foreach (var stavka in model.Stavke)
                {
                    //ažuriraj postojeće i dodaj nove
                    StavkaUTroškovniku novaStavka; // potpuno nova ili dohvaćena ona koju treba izmijeniti
                    if (stavka.IdStavke > 0)
                    {
                        novaStavka = troškovnik.TroškovnikStavkas.Where(a => a.IdStavke == stavka.IdStavke).Select(s => new StavkaUTroškovniku
                        {
                            IdStavke           = s.IdStavkeNavigation.IdStavke,
                            NazivStavke        = s.IdStavkeNavigation.NazivStavke,
                            TraženaKoličina    = s.IdStavkeNavigation.TraženaKoličina,
                            IdVrste            = s.IdStavkeNavigation.IdVrste,
                            DodatneInformacije = s.IdStavkeNavigation.DodatneInformacije
                        }).FirstOrDefault();
                    }
                    else
                    {
                        novaStavka = new StavkaUTroškovniku();
                    }
                    //traži slijedeći key
                    if (novaStavka.IdStavke > 0)
                    {
                        int Id = novaStavka.IdStavke;
                    }
                    else
                    {
                        var query  = ctx;
                        int zadnji = query.StavkaUTroškovnikus.AsNoTracking().Count();
                        query = ctx;
                        var query2 = query.StavkaUTroškovnikus.AsQueryable();
                        int Id     = query2.OrderBy(d => d.IdStavke).Skip(zadnji - 1).Select(d => d.IdStavke).First() + 1;
                        novaStavka.IdStavke = Id;
                        //dodaj vezu
                        var vezaTroškovnikStavka = new TroškovnikStavka
                        {
                            IdStavke     = novaStavka.IdStavke,
                            TroškovnikId = troškovnik.TroškovnikId
                        };
                        ctx.Add(vezaTroškovnikStavka);
                    }
                    //trazim id vrste jer sam dobio naziv iz modela
                    var query3 = ctx;
                    int IdVr   = query3.VrstaStavkes.AsNoTracking().Where(a => a.NazivVrste == stavka.NazivVrste).First().IdVrste;

                    //updataj ili napravi novu stavku
                    novaStavka.NazivStavke        = stavka.NazivStavke;
                    novaStavka.TraženaKoličina    = stavka.TraženaKoličina;
                    novaStavka.IdVrste            = IdVr;
                    novaStavka.DodatneInformacije = stavka.DodatneInformacije;

                    ctx.Add(novaStavka);
                }

                //eventualno umanji iznos za dodatni popust za kupca i sl... nešto što bi bilo poslovno pravilo
                try
                {
                    await ctx.SaveChangesAsync();

                    TempData[Constants.Message]       = $"troškovnik {troškovnik.TroškovnikId} uspješno ažuriran.";
                    TempData[Constants.ErrorOccurred] = false;
                    return(RedirectToAction(nameof(Edit), new
                    {
                        id = troškovnik.TroškovnikId,
                        page,
                        sort,
                        ascending
                    }));
                }
                catch (Exception exc)
                {
                    ModelState.AddModelError(string.Empty, exc.CompleteExceptionMessage());
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }