/// <summary> /// Provjerava se da li je unesen broj rezervacije, da li postoji taj broj rezervacije, da li je iskorištena /// rezervacija ili je vrijeme prikazivanja prošlo, te ukoliko je broj rezervacije valjan dohvaća se rezervirani /// film i sprema se u tablicu /// </summary> private void unosRezervacije_Click(object sender, EventArgs e) { int brojRez; if (Prazno(brojRezervacije) || !int.TryParse(brojRezervacije.Text, out brojRez)) { MessageBox.Show("Niste unijeli broj rezervacije!", "Neispravan unos", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { Rezervacija r = new Rezervacija(Convert.ToInt32(brojRezervacije.Text)); if (r.ProvjeriPostojanjeRezervacije() != 1) { MessageBox.Show("Broj rezervacije je neispravan!", "Neispravan unos", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (r.ProvjeriUpotrebljivost() != 1) { MessageBox.Show("Rezervacija je neupotrebljiva", "Neispravan unos", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { rezervacija = Convert.ToInt32(brojRezervacije.Text); ispisStavki.DataSource = StavkaRacuna.DohvatiRezervaciju(rezervacija); ispisStavki.Columns[0].HeaderText = "Šifra"; ispisStavki.Columns[1].HeaderText = "Naziv"; ispisStavki.Columns[2].HeaderText = "Količina"; } } Izracunaj(); } }
public void stampajRacun(List <AutoDeo> listaSesija) { float ukupnaVrednost = getUkupnaVrednost(listaSesija); dodajRacun(ukupnaVrednost); Racun racun = AutoShopDB.Racun.OrderByDescending(p => p.ID).FirstOrDefault(); foreach (AutoDeo ad in listaSesija) { AutoDeo_Magacin adM = searchAutoDeoFromMagacin(ad.ID); StavkaRacuna stavkaRacuna = new StavkaRacuna() { IDRacuna = racun.ID, IDMagacin = adM.IDMagacin, IDAutoDeo = adM.IDAutoDeo, Kolicina = ad.quantity, JedCena = ad.JedCena, Vrednost = ad.quantity * ad.JedCena }; AutoShopDB.StavkaRacuna.Add(stavkaRacuna); adM.Stanje -= ad.quantity; } AutoShopDB.SaveChanges(); }
public void IzmeniKolicinuKadaJeZalihaDovoljna() { var zaliha = new Zaliha() { TrenutnaZaliha = 0 }; fRepository.Setup(x => x.VratiZalihuArtikla(1, fKonfiguracijaKase.ProdavnicaID)).Returns(zaliha); var stavka = new StavkaRacuna() { Artikal = new Artikal() { ID = 1 }, Kolicina = 4 }; fViewModel.StavkaRacuna = stavka; fViewModel.Kolicina = 3; // Act fViewModel.PrihvatiKolicinu(); // Assert Assert.AreEqual(1, zaliha.TrenutnaZaliha); fRepository.Verify(x => x.SacuvajZalihu(zaliha)); Assert.AreEqual(3, stavka.Kolicina); Assert.IsNull(fViewModel.Artikal); Assert.IsNull(fViewModel.StavkaRacuna); }
private StavkaRacuna VratiStavkuRacuna() { bool validacija = true; StavkaRacuna stavka = new StavkaRacuna(); if (!int.TryParse(txtKolicina.Text, out int rez) || rez < 0) { MessageBox.Show("Niste uneli kolicinu dobro!"); validacija = false; } else { stavka.Kolicina = rez; } if (cmbProizvod.SelectedItem is Proizvod p) { stavka.Proizvod = p; stavka.UkupanIznos = stavka.Kolicina + stavka.Proizvod.Cena; } else { validacija = false; } if (validacija) { return(stavka); } else { return(null); } }
public ActionResult Create(StavkaRacuna stavka) { try { if (ModelState.IsValid) { stavka.ListaProizvoda = PripremiListuProizvoda(); if (_db.StavkeRacuna.Where(x => x.ProizvodId == stavka.ProizvodId).FirstOrDefault() == null) { _db.StavkeRacuna.Add(stavka); } else { _db.StavkeRacuna.Where(x => x.ProizvodId == stavka.ProizvodId).FirstOrDefault().Kolicina += stavka.Kolicina; } _db.SaveChanges(); _db.Racuni.Find(stavka.RacunId).Ukupno = VrednostRacuna(stavka.RacunId); _db.SaveChanges(); } return(RedirectToAction("Index", new { racunId = stavka.RacunId })); } catch { return(View()); } }
public ActionResult Create([Bind(Include = "StavkaRacunaID,Kolicina")] StavkaRacuna stavkaRacuna, int ID, Usluga usluga) { if (ModelState.IsValid) { StavkaRacuna stavkaRacuna1 = new StavkaRacuna { Kolicina = stavkaRacuna.Kolicina, RacunID = ID, UslugaID = usluga.UslugaID, }; double ukupnaCijenaUsluge = stavkaRacuna.Kolicina * db.Usluge.First(r => r.UslugaID == stavkaRacuna1.UslugaID).CijenaUsluge; db.Racuni.First(r => r.RacunID == stavkaRacuna1.RacunID).IznosUkupno += ukupnaCijenaUsluge; db.StavkeRacuna.Add(stavkaRacuna1); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.UslugaID = new SelectList(db.Usluge, "UslugaID", "ImeUsluge", stavkaRacuna.UslugaID); ViewBag.RacunID = new SelectList(db.Racuni, "RacunID", "RacunID", stavkaRacuna.RacunID); return(View(stavkaRacuna)); }
public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Racun ra = odo as Racun; List <Racun> listaRacunaZaDatum = new List <Racun>(); List <Racun> listaRacuna = Sesija.Broker.dajSesiju().dajSve(odo).OfType <Racun>().ToList <Racun>(); foreach (Racun r in listaRacuna) { if (r.Datum.ToShortDateString() == ra.Datum.ToShortDateString()) { StavkaRacuna s = new StavkaRacuna(); s.RacunID = r.RacunID; List <StavkaRacuna> listaStavki = Sesija.Broker.dajSesiju().dajSveZaUslovVise(s).OfType <StavkaRacuna>().ToList <StavkaRacuna>(); foreach (StavkaRacuna sr in listaStavki) { sr.Knjiga = Sesija.Broker.dajSesiju().dajZaUslovJedan(sr.Knjiga) as Knjiga; r.ListaStavki.Add(sr); } r.Radnik = Sesija.Broker.dajSesiju().dajZaUslovJedan(r.Radnik) as Radnik; listaRacunaZaDatum.Add(r); } } return(listaRacunaZaDatum); }
public async Task <ActionResult <StavkaRacuna> > PostStavkaRacuna(StavkaRacuna stavkaRacuna) { stavkaRacuna.VrstaMaterijala = _unitOfWork.StavkeRacuna.VrsteMaterijalaPoVrstaMaterijalaId(stavkaRacuna.VrstaMaterijalaId); stavkaRacuna.Cena = stavkaRacuna.VrstaMaterijala.Cena; var vrstaMaterijala = _unitOfWork.StavkeRacuna.VrsteMaterijalaPoVrstaMaterijalaId(stavkaRacuna.VrstaMaterijalaId); var racun = await _unitOfWork.Racuni.RacunPoSifriRacuna(stavkaRacuna.SifraRacuna); racun.ukupanIznos += (stavkaRacuna.Cena * stavkaRacuna.Kolicina); _unitOfWork.StavkeRacuna.Add(stavkaRacuna); _unitOfWork.StavkeRacuna.AzurirajVrstuMaterijala(stavkaRacuna); if (vrstaMaterijala.Kolicina < 0) { return(BadRequest()); } try { await _unitOfWork.SaveChangesAsync(); } catch (Exception ex) { throw ex; } return(CreatedAtAction("GetStavkaRacuna", new { id = stavkaRacuna.StavkaRacunaId }, stavkaRacuna)); }
public void ObrisiStavku(StavkaRacuna stavka) { var zaliha = fRepository.VratiZalihuArtikla(stavka.Artikal.ID, KonfiguracijaKase.ProdavnicaID); zaliha.TrenutnaZaliha += stavka.Kolicina; fRepository.Submit(); Racun.StavkeRacuna.Remove(stavka); }
public ActionResult DeleteConfirmed(int id) { StavkaRacuna stavkaRacuna = db.StavkeRacuna.Find(id); db.StavkeRacuna.Remove(stavkaRacuna); db.SaveChanges(); return(RedirectToAction("Index")); }
public void dodajStavku(ComboBox cmbKnjige, TextBox txtKolicina, TextBox txtUkIznos) { Knjiga k = cmbKnjige.SelectedItem as Knjiga; int kolicina; int kolicinaStanje = k.KolicinaStanje; try { kolicina = Convert.ToInt32(txtKolicina.Text); } catch (Exception) { MessageBox.Show("Niste ispravno uneli količinu"); txtKolicina.Focus(); return; } if (kolicina == 0) { MessageBox.Show("Količina mora biti veća od 0"); return; } if (kolicina > kolicinaStanje) { MessageBox.Show("Ne postoji tolika količina artikla na stanju"); return; } foreach (StavkaRacuna str in racun.ListaStavki) { if (str.Knjiga.KnjigaID == k.KnjigaID) { str.Kolicina += kolicina; return; } } StavkaRacuna sr = new StavkaRacuna(); sr.RacunID = racun.RacunID; sr.Rb = racun.ListaStavki.Count + 1; sr.Knjiga = k; sr.Kolicina = kolicina; sr.Vrednost = sr.Kolicina * sr.Knjiga.Cena; racun.UkIznos += sr.Vrednost; txtUkIznos.Text = racun.UkIznos.ToString(); racun.ListaStavki.Add(sr); txtKolicina.Clear(); cmbKnjige.Text = ""; }
public ActionResult Create() { var racun = _db.Racuni.Find(Session["racunId"]); List <SelectListItem> ListaProizvoda = PripremiListuProizvoda(); StavkaRacuna stavka = new StavkaRacuna(); stavka.ListaProizvoda = ListaProizvoda; stavka.RacunId = racun.ID; return(View(stavka)); }
public static StavkaRacuna mockingAccountItem() { var accountItem = new StavkaRacuna() { StavkaRacunaID = 1, UslugaID = 1 }; return(accountItem); }
public ActionResult Edit([Bind(Include = "StavkaRacunaID,Kolicina,RacunID,UslugaID")] StavkaRacuna stavkaRacuna) { if (ModelState.IsValid) { //db.ChangeState<StavkaRacuna>(stavkaRacuna); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(stavkaRacuna)); }
public void PrihvatiKolicinu() { if (!Kolicina.HasValue || Kolicina == 0) { return; } if (StavkaRacuna != null) { if (Artikal != null && !StavkaRacuna.Artikal.Equals(Artikal)) { StavkaRacuna.Artikal = Artikal; var zaliha = fRepository.VratiZalihuArtikla(StavkaRacuna.Artikal.ID, KonfiguracijaKase.ProdavnicaID); zaliha.TrenutnaZaliha += StavkaRacuna.Kolicina; fRepository.SacuvajZalihu(zaliha); } if (Kolicina < 0 || ProveriKolicinu(StavkaRacuna)) { var zaliha = fRepository.VratiZalihuArtikla(StavkaRacuna.Artikal.ID, KonfiguracijaKase.ProdavnicaID); zaliha.TrenutnaZaliha += StavkaRacuna.Kolicina; zaliha.TrenutnaZaliha -= Kolicina.Value; fRepository.SacuvajZalihu(zaliha); StavkaRacuna.Kolicina = Kolicina.Value; Artikal = null; StavkaRacuna = null; } else { throw new Exception("Nedovoljna zaliha artikla"); } } else { if (Artikal != null) { var stavka = new StavkaRacuna { Artikal = Artikal, Rbr = Racun.StavkeRacuna.Any() ? Racun.StavkeRacuna.Max(x => x.Rbr) + 1 : 1 }; if (Kolicina < 0 || ProveriKolicinu(stavka)) { var zaliha = fRepository.VratiZalihuArtikla(stavka.Artikal.ID, KonfiguracijaKase.ProdavnicaID); zaliha.TrenutnaZaliha -= Kolicina.Value; fRepository.SacuvajZalihu(zaliha); stavka.Kolicina = Kolicina.Value; Racun.StavkeRacuna.Add(stavka); Artikal = null; StavkaRacuna = null; } else { throw new Exception("Nedovoljna zaliha artikla"); } } } }
private bool ProveriKolicinu(StavkaRacuna stavka) { if (KonfiguracijaKase.DozvoljeneNegativneZalihe) { return(true); } var idArtikla = stavka.Artikal.ID; var zaliha = fRepository.VratiZalihuArtikla(idArtikla, KonfiguracijaKase.ProdavnicaID); var ukupnaKolicina = zaliha.TrenutnaZaliha + stavka.Kolicina; return(ukupnaKolicina >= Kolicina); }
private decimal VrednostRacuna(StavkaRacuna stavka) { decimal ukupno = 0; IQueryable <StavkaRacuna> stavke = _db.StavkeRacuna.Where(z => z.RacunId == stavka.RacunId); if (stavke.Count() > 0) { ukupno = stavke.Sum(x => x.Kolicina * _db.Proizvodi.Where(a => a.ID == x.ProizvodId).FirstOrDefault().Cena); } ukupno += stavka.Kolicina * _db.Proizvodi.Find(stavka.ProizvodId).Cena; return(ukupno); }
// GET: StavkaRacuna/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } StavkaRacuna stavkaRacuna = db.StavkeRacuna.Find(id); if (stavkaRacuna == null) { return(HttpNotFound()); } return(View(stavkaRacuna)); }
public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Racun r = odo as Racun; Sesija.Broker.dajSesiju().izmeni(odo); StavkaRacuna s = new StavkaRacuna(); s.RacunID = r.RacunID; Sesija.Broker.dajSesiju().obrisiZaUslovVise(s); foreach (StavkaRacuna sr in r.ListaStavki) { Sesija.Broker.dajSesiju().sacuvaj(sr); } return(1); }
public static void IzdajRacun() { if (PrijavaUI.ulogovanKorisnik is Prodavac) { Console.Clear(); RacunProdaje rp = new RacunProdaje(); Console.WriteLine("Unesite koliko zelite da Vas racun sadrzi stavki: "); int brojStavki = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < brojStavki; i++) { Console.WriteLine("Unesite sifru novog artikla: "); int sifra = Convert.ToInt32(Console.ReadLine()); ArtikalProdaje ap = ArtikalProdajeUI.PronadjiArtikalPoSifri(sifra); if (ap != null) { Console.WriteLine("Unesite broj ovih artikla koji je kupac porucio"); int brojArtikala = Convert.ToInt32(Console.ReadLine()); StavkaRacuna sr = new StavkaRacuna(i, ap, ap.Cena, brojArtikala); rp.Stavke = new List <StavkaRacuna>(); rp.Stavke.Add(sr); rp.UkupnaCena += sr.JedinicaCena * brojArtikala; } else { Console.WriteLine("Nije pronadjen nijedan artikal sa unetom sifrom."); } } sviRacuni.Add(rp); Console.WriteLine("Nov racun je pridodat bazi podaka. On izgleda ovako:\n"); IspisiRacun(rp, brojStavki); } else { Console.WriteLine("Samo prodavci mogu da pristupe ovoj opciji!"); } }
public ActionResult Odlazak(int?id, int?racunID, int?stavkaRacunaID, UslugeViewModel viewModel) { StavkaRacuna stavkaRacuna = db.StavkeRacuna.Find(stavkaRacunaID); Rezervacija rezervacija = db.Rezervacije.Find(id); Racun racun = db.Racuni.Find(racunID); var daniBoravka = (rezervacija.Odjava - rezervacija.Prijava).TotalDays; var popust = rezervacija.Popust; var ukupnaCijenaRezervacije = (double?)rezervacija.Soba.TipSobe.CijenaPoNoci; if (daniBoravka <= 1) { ukupnaCijenaRezervacije += 100; } if (daniBoravka > 1) { ukupnaCijenaRezervacije *= (daniBoravka); } if (popust > 0) { ukupnaCijenaRezervacije -= ukupnaCijenaRezervacije * (double)(popust / 100); } UslugeViewModel uslugeView = new UslugeViewModel { CijenaRezervacije = (decimal)ukupnaCijenaRezervacije, Prijava = rezervacija.Prijava, Odjava = rezervacija.Odjava, Prezime = rezervacija.Gost.Prezime, RezervacijaID = rezervacija.RezervacijaID, Popust = rezervacija.Popust }; var racuni = new Racun { IznosUkupno = (double)uslugeView.CijenaRezervacije, RezervacijaID = uslugeView.RezervacijaID, RacunID = uslugeView.RacunID }; db.Racuni.Add(racuni); db.SaveChanges(); return(View(uslugeView)); }
public ActionResult Edit(StavkaRacuna stavka) { try { if (ModelState.IsValid) { _db.Entry(stavka).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); _db.Racuni.Find(stavka.RacunId).Ukupno = VrednostRacuna(stavka.RacunId); _db.SaveChanges(); } return(RedirectToAction("Index", "StavkaRacuna", new { racunId = stavka.RacunId })); } catch { return(View()); } }
private void BtnDodaj_Click(object sender, EventArgs e) { StavkaRacuna stavka = VratiStavkuRacuna(); if (stavka != null) { StavkaRacuna stavkaIzListe = stavkeBinding.SingleOrDefault(s => s.Proizvod == stavka.Proizvod); if (stavkaIzListe != null) { stavkaIzListe.Kolicina += stavka.Kolicina; stavkaIzListe.UkupanIznos = stavkaIzListe.Kolicina * stavkaIzListe.Proizvod.Cena; dgvStavke.Refresh(); } else { stavka.RBr = stavkeBinding.Count + 1; stavkeBinding.Add(stavka); } } }
public void obrisiStavku(DataGridView dataGridView1, TextBox txtUkIznos) { try { StavkaRacuna sr = dataGridView1.SelectedRows[0].DataBoundItem as StavkaRacuna; racun.ListaStavki.Remove(sr); racun.UkIznos -= sr.Vrednost; txtUkIznos.Text = racun.UkIznos.ToString(); int i = 1; foreach (StavkaRacuna s in racun.ListaStavki) { s.Rb = i; i++; } } catch (Exception) { MessageBox.Show("Niste odabrali stavku za brisanje"); } }
public async Task <ActionResult <StavkaRacuna> > PostStavkaRacuna(StavkaRacuna stavkaRacuna) { stavkaRacuna.VrstaProizvoda = _unitOfWork.StavkeRacuna.getVrstePoBarkodu(stavkaRacuna.Barkod); stavkaRacuna.CenaPoJedinici = stavkaRacuna.VrstaProizvoda.Cena; var vrstaProizvoda = _unitOfWork.StavkeRacuna.getVrstePoBarkodu(stavkaRacuna.Barkod); if (RacunExsits(stavkaRacuna.SifraRacuna)) { _unitOfWork.StavkeRacuna.UpdateCeneRacuna(stavkaRacuna); } else { Racun r = new Racun(); r.SifraRacuna = stavkaRacuna.SifraRacuna; r.UkupanIznos = stavkaRacuna.CenaPoJedinici * stavkaRacuna.Kolicina; r.VremeIzdavanja = DateTime.Now; _unitOfWork.Racuni.Add(r); } _unitOfWork.StavkeRacuna.Add(stavkaRacuna); _unitOfWork.StavkeRacuna.UpdateVrsteProizvoda(stavkaRacuna); if (vrstaProizvoda.Kolicina < 0) { return(BadRequest()); } try { await _unitOfWork.SaveChangesAsync(); } catch (Exception ex) { throw ex; } return(CreatedAtAction("GetStavkaRacuna", new { id = stavkaRacuna.StavkaRacunaId }, stavkaRacuna)); }
public void IzmeniKolicinuKadaZalihaNijeDovoljna() { var zaliha = new Zaliha() { TrenutnaZaliha = 2 }; fRepository.Setup(x => x.VratiZalihuArtikla(1, fKonfiguracijaKase.ProdavnicaID)).Returns(zaliha); var stavka = new StavkaRacuna() { Artikal = new Artikal() { ID = 1 }, Kolicina = 3 }; fViewModel.StavkaRacuna = stavka; fViewModel.Kolicina = 6; // Act fViewModel.PrihvatiKolicinu(); }
public void PromeniArtikalStavke() { var zaliha = new Zaliha() { TrenutnaZaliha = 2 }; var zalihaNovogArtikla = new Zaliha() { TrenutnaZaliha = 4 }; fRepository.Setup(x => x.VratiZalihuArtikla(1, fKonfiguracijaKase.ProdavnicaID)).Returns(zaliha); fRepository.Setup(x => x.VratiZalihuArtikla(2, fKonfiguracijaKase.ProdavnicaID)).Returns(zalihaNovogArtikla); var stavka = new StavkaRacuna() { Artikal = new Artikal() { ID = 1 }, Kolicina = 3 }; fViewModel.StavkaRacuna = stavka; fViewModel.Artikal = new Artikal { ID = 2 }; fViewModel.Kolicina = 3; // Act fViewModel.PrihvatiKolicinu(); // Assert zaliha.TrenutnaZaliha = 5; zalihaNovogArtikla.TrenutnaZaliha = 1; fRepository.Verify(x => x.SacuvajZalihu(zaliha)); fRepository.Verify(x => x.SacuvajZalihu(zalihaNovogArtikla)); Assert.IsNull(fViewModel.Artikal); Assert.IsNull(fViewModel.StavkaRacuna); }
public void SacuvajStavkuRacuna(StavkaRacuna s) { }
public async Task <IActionResult> PutStavkaRacuna(int id, StavkaRacuna stavkaRacuna) { // uzima se stavka pre nego sto dobije nove podatke, kako bi mogla da se izbrise pre nego sto se put-uje nova // kako u bazi za 1 racun ne bi postojala i stara i nova stavka var staraStavka = await _unitOfWork.StavkeRacuna.GetAsync(id); var racunStavke = await _unitOfWork.Racuni.getRacunBySifraRacuna(staraStavka.SifraRacuna); var vrstaProizvoda = _unitOfWork.StavkeRacuna.getVrstePoBarkodu(stavkaRacuna.Barkod); stavkaRacuna.VrstaProizvoda = _unitOfWork.StavkeRacuna.getVrstePoBarkodu(stavkaRacuna.Barkod); stavkaRacuna.StavkaRacunaId = id; stavkaRacuna.CenaPoJedinici = stavkaRacuna.VrstaProizvoda.Cena; if (id != stavkaRacuna.StavkaRacunaId) { return(BadRequest()); } if (staraStavka.Kolicina < stavkaRacuna.Kolicina) { var pom = Math.Round(((stavkaRacuna.Kolicina - staraStavka.Kolicina) * stavkaRacuna.CenaPoJedinici), 2); stavkaRacuna.Racun = racunStavke; stavkaRacuna.Racun.UkupanIznos += pom; _unitOfWork.StavkeRacuna.Remove(staraStavka); _unitOfWork.StavkeRacuna.Update(stavkaRacuna); if ((stavkaRacuna.Kolicina - staraStavka.Kolicina) > vrstaProizvoda.Kolicina) { return(BadRequest()); } else { vrstaProizvoda.Kolicina -= (stavkaRacuna.Kolicina - staraStavka.Kolicina); if (vrstaProizvoda.Kolicina < 0) { return(BadRequest()); } } } else if (staraStavka.Kolicina > stavkaRacuna.Kolicina) { var pom = Math.Round(((staraStavka.Kolicina - stavkaRacuna.Kolicina) * stavkaRacuna.CenaPoJedinici), 2); stavkaRacuna.Racun = racunStavke; stavkaRacuna.Racun.UkupanIznos -= pom; _unitOfWork.StavkeRacuna.Remove(staraStavka); _unitOfWork.StavkeRacuna.Update(stavkaRacuna); vrstaProizvoda.Kolicina += (staraStavka.Kolicina - stavkaRacuna.Kolicina); } try { await _unitOfWork.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StavkaRacunaExists(id)) { return(NotFound()); } else { throw; } } return(CreatedAtAction("GetStavkaRacuna", new { id = stavkaRacuna.StavkaRacunaId }, stavkaRacuna)); }
public async Task <IActionResult> PutStavkaRacuna(int id, StavkaRacuna stavkaRacuna) { var stavka = await _unitOfWork.StavkeRacuna.GetAsync(id); var racunStavke = await _unitOfWork.Racuni.RacunPoSifriRacuna(stavkaRacuna.SifraRacuna); var vrstaMaterijala = _unitOfWork.StavkeRacuna.VrsteMaterijalaPoVrstaMaterijalaId(stavkaRacuna.VrstaMaterijalaId); stavkaRacuna.VrstaMaterijala = _unitOfWork.StavkeRacuna.VrsteMaterijalaPoVrstaMaterijalaId(stavkaRacuna.VrstaMaterijalaId); stavkaRacuna.StavkaRacunaId = id; stavkaRacuna.Cena = stavkaRacuna.VrstaMaterijala.Cena; if (id != stavkaRacuna.StavkaRacunaId) { return(BadRequest()); } if (stavka.Kolicina < stavkaRacuna.Kolicina) { var novaCena = Math.Round(((stavkaRacuna.Kolicina - stavka.Kolicina) * stavkaRacuna.Cena), 2); stavkaRacuna.Racun = racunStavke; stavkaRacuna.Racun.ukupanIznos += novaCena; _unitOfWork.StavkeRacuna.Remove(stavka); _unitOfWork.StavkeRacuna.Update(stavkaRacuna); if ((stavkaRacuna.Kolicina - stavka.Kolicina) > vrstaMaterijala.Kolicina) { return(BadRequest()); } else { vrstaMaterijala.Kolicina -= (stavkaRacuna.Kolicina - stavka.Kolicina); if (vrstaMaterijala.Kolicina < 0) { return(BadRequest()); } } } else if (stavka.Kolicina > stavkaRacuna.Kolicina) { var novaCena = Math.Round(((stavka.Kolicina - stavkaRacuna.Kolicina) * stavkaRacuna.Cena), 2); stavkaRacuna.Racun = racunStavke; stavkaRacuna.Racun.ukupanIznos -= novaCena; _unitOfWork.StavkeRacuna.Remove(stavka); _unitOfWork.StavkeRacuna.Update(stavkaRacuna); vrstaMaterijala.Kolicina += (stavka.Kolicina - stavkaRacuna.Kolicina); } try { await _unitOfWork.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!StavkaRacunaExists(id)) { return(NotFound()); } else { throw; } } return(CreatedAtAction("GetStavkaRacuna", new { id = stavkaRacuna.StavkaRacunaId }, stavkaRacuna)); }