Exemple #1
0
        /// <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();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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"));
        }
Exemple #11
0
        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 = "";
        }
Exemple #12
0
        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));
        }
Exemple #13
0
        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));
        }
Exemple #15
0
 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");
             }
         }
     }
 }
Exemple #16
0
        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);
        }
Exemple #17
0
        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));
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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));
        }
Exemple #22
0
        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());
            }
        }
Exemple #23
0
        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);
                }
            }
        }
Exemple #24
0
        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));
        }
Exemple #26
0
        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();
        }
Exemple #27
0
        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);
        }
Exemple #28
0
 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));
        }
Exemple #30
0
        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));
        }