コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("RacunId,LijekId,Kolicina,Iznos")] Kupovina kupovina)
        {
            if (id != kupovina.RacunId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(kupovina);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!KupovinaExists(kupovina.RacunId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["LijekId"] = new SelectList(_context.Lijek, "LijekId", "Naziv", kupovina.LijekId);
            ViewData["RacunId"] = new SelectList(_context.Racun, "RacunId", "RacunId", kupovina.RacunId);
            return(View(kupovina));
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("DatumTransakcije,Iznos")] Kupovina kupovina)
        {
            if (id != kupovina.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(kupovina);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!KupovinaExists(kupovina.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(kupovina));
        }
コード例 #3
0
        public ActionResult BuyCar(Vozilo vozilo, string submit)
        {
            List <Vozilo> vozila = (List <Vozilo>)HttpContext.Application["vozila"];
            Korisnik      kor    = (Korisnik)Session["korisnik"];

            if (kor == null || kor.Uloga.Equals(Role.ADMINISTRATOR))
            {
                ViewBag.Vozila  = vozila;
                ViewBag.Message = "Nemate prava pristupa ovoj stranici!";
                ucitajOpcije();
                return(View("Cars"));
            }
            Kupovina kupovina = new Kupovina();

            if (submit.Equals("Otkazi"))
            {
                ViewBag.Vozila = vozila;
                ucitajOpcije();
                return(View("Cars"));
            }
            else
            {
                try
                {
                    int index = vozila.FindIndex(x => x.Id == vozilo.Id);
                    vozilo.NaStanju = false;
                    vozila[index]   = vozilo;

                    if (!CitanjePodataka.izmeniVozilo(vozila))
                    {
                        throw new Exception();
                    }
                    HttpContext.Application["vozila"] = vozila;

                    List <Kupovina> k = CitanjePodataka.citajKupovinu();

                    kupovina.Id            = k.Count == 0 ? 1 : k.Select(x => x.Id).Max() + 1;
                    kupovina.Kupac         = (Korisnik)Session["korisnik"];
                    kupovina.DatumKupovine = DateTime.Now.Date;
                    kupovina._Vozilo       = vozila[index];
                    kupovina.NaplacenaCena = vozila[index].Cena;

                    if (!CitanjePodataka.pisiKupovinu(kupovina))
                    {
                        throw new Exception();
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex);
                    ViewBag.Message = "Desila se greska pri kupovini vozila vozila!";
                }
            }
            ViewBag.Vozila = vozila;
            ucitajOpcije();
            return(RedirectToAction("Cars"));
        }
コード例 #4
0
        public void TestDohvaćanjaProizvoda()
        {
            Kupac kupac = new Kupac
            {
                IdKupca = 1,
                Ime     = "Ivo",
                Prezime = "Ivić",
                Adresa  = "Ivana Meštrovica 26"
            };

            Kupovina kupovina = new Kupovina
            {
                IdKupca = 1,
                IdKupljenihProizvoda = new List <int>()
                {
                    1, 2, 3
                },
                IdKupovine = 2
            };

            Proizvod proizvod1 = new Proizvod
            {
                IdProizvoda     = 1,
                ImeProizvoda    = "cipele",
                CijenaProizvoda = 100
            };

            Proizvod proizvod2 = new Proizvod
            {
                IdProizvoda     = 2,
                ImeProizvoda    = "badekostim",
                CijenaProizvoda = 100
            };

            Proizvod proizvod3 = new Proizvod
            {
                IdProizvoda     = 3,
                ImeProizvoda    = "ručnik",
                CijenaProizvoda = 100
            };

            List <Proizvod> proizvodi = new List <Proizvod>()
            {
                proizvod1, proizvod2, proizvod3
            };

            FacadePotvrdaOKupovini potvrda = new FacadePotvrdaOKupovini(kupac, kupovina, proizvodi);


            List <string> imenaProizvoda = new List <string>()
            {
                "cipele", "badekostim", "ručnik"
            };

            CollectionAssert.AreEqual(imenaProizvoda, potvrda.DohvatiProizvode());
        }
コード例 #5
0
        public async Task <IActionResult> Create([Bind("DatumTransakcije,Iznos")] Kupovina kupovina)
        {
            if (ModelState.IsValid)
            {
                _context.Add(kupovina);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(kupovina));
        }
コード例 #6
0
        public void TestDohvaćanjaSvega()
        {
            Kupac kupac = new Kupac
            {
                IdKupca = 1,
                Ime     = "Ivo",
                Prezime = "Ivić",
                Adresa  = "Ivana Meštrovica 26"
            };

            Kupovina kupovina = new Kupovina
            {
                IdKupca = 1,
                IdKupljenihProizvoda = new List <int>()
                {
                    1, 2, 3
                },
                IdKupovine = 2
            };

            Proizvod proizvod1 = new Proizvod
            {
                IdProizvoda     = 1,
                ImeProizvoda    = "cipele",
                CijenaProizvoda = 100
            };

            Proizvod proizvod2 = new Proizvod
            {
                IdProizvoda     = 2,
                ImeProizvoda    = "badekostim",
                CijenaProizvoda = 100
            };

            Proizvod proizvod3 = new Proizvod
            {
                IdProizvoda     = 3,
                ImeProizvoda    = "ručnik",
                CijenaProizvoda = 100
            };

            List <Proizvod> proizvodi = new List <Proizvod>()
            {
                proizvod1, proizvod2, proizvod3
            };

            FacadePotvrdaOKupovini potvrda = new FacadePotvrdaOKupovini(kupac, kupovina, proizvodi);
            string svipodatci = potvrda.DohvatiPodatkeOKupcu().ToString() + potvrda.DohvatiProizvode().ToString() + potvrda.DohvatiUkupnuCijenu();

            Assert.AreEqual(svipodatci, potvrda.DobaviSvePodatke(2));
            Assert.AreEqual("Unjeli ste krivi ID, pokušajte ponovo", potvrda.DobaviSvePodatke(1));
        }
コード例 #7
0
 public static void SacuvajKupovinuUDatoteku(Kupovina kup)
 {
     if (File.Exists(putanja))
     {
         using (StreamWriter sw = new StreamWriter(putanja, true))
         {
             //foreach(Korisnik kor in korisnici)
             //// {
             sw.WriteLine(kup.ToString());
             //}
         }
     }
 }
コード例 #8
0
        public static Kupovina PretvoriUObjekat(string linija)
        {
            CultureInfo MyCultureInfo = new CultureInfo("de-DE");

            string[] str = linija.Split(';');

            Kupovina kup = new Kupovina()
            {
                Id            = Int32.Parse(str[0]), KorisnickoImeKupca = str[1], Proizvod = str[2], ProizvodId = Int32.Parse(str[3]),
                DatumKupovine = DateTime.Parse(str[4], MyCultureInfo), BrojNarucenihTegli = Int32.Parse(str[5]),
                UkupnaCena    = Double.Parse(str[6])
            };

            return(kup);
        }
コード例 #9
0
 public static void UcitajKupovineIzDatoteke()
 {
     if (File.Exists(putanja))
     {
         string linija;
         using (StreamReader sr = new StreamReader(putanja))
         {
             while ((linija = sr.ReadLine()) != null)
             {
                 Kupovina kupovina = PretvoriUObjekat(linija);
                 kupovine.Add(kupovina);
             }
         }
     }
 }
コード例 #10
0
 public static bool pisiKupovinu(Kupovina kupovina)
 {
     using (System.IO.StreamWriter sw = System.IO.File.AppendText(pathKupovina))
     {
         try
         {
             sw.WriteLine(kupovina.ToString());
             return(true);
         }
         catch (Exception e)
         {
             //neka greska
             return(false);
         }
     }
 }
コード例 #11
0
        public void TestKupovine()
        {
            Kupovina kupovina = new Kupovina
            {
                IdKupca = 1,
                IdKupljenihProizvoda = new List <int>()
                {
                    1, 2, 3
                },
                IdKupovine = 2
            };

            Proizvod proizvod1 = new Proizvod
            {
                IdProizvoda     = 1,
                ImeProizvoda    = "cipele",
                CijenaProizvoda = 100
            };

            Proizvod proizvod2 = new Proizvod
            {
                IdProizvoda     = 2,
                ImeProizvoda    = "badekostim",
                CijenaProizvoda = 100
            };

            Proizvod proizvod3 = new Proizvod
            {
                IdProizvoda     = 3,
                ImeProizvoda    = "ručnik",
                CijenaProizvoda = 100
            };

            Assert.AreEqual(2, kupovina.IdKupovine);
            Assert.AreEqual(1, kupovina.IdKupca);

            List <int> idproizvoda = new List <int>()
            {
                proizvod1.IdProizvoda, proizvod2.IdProizvoda, proizvod3.IdProizvoda
            };

            CollectionAssert.AreEqual(idproizvoda, kupovina.IdKupljenihProizvoda);
        }
コード例 #12
0
        //GET: Kupi/5&4
        public ActionResult Kupi(int id, int?kolicina, string forma)
        {
            Korisnik korisnik = (Korisnik)Session["korisnik"];

            if (korisnik != null && korisnik.Uloga.Equals(Uloga.KUPAC))
            {
                List <Proizvod> pr       = (List <Proizvod>)HttpContext.Application["proizvodi"];
                Proizvod        proizvod = pr.FirstOrDefault(p => p.Id == id);

                if (kolicina == null)
                {
                    TempData["greska"] = "Unesite zeljenu kolicinu";
                    TempData["forma"]  = forma;
                    return(View("Detalji", proizvod));
                }
                else if (proizvod.BrojTegli < kolicina || kolicina <= 0)
                {
                    TempData["greska"] = "Na stanju nema " + kolicina + " proizvoda";
                    TempData["forma"]  = forma;
                    return(View("Detalji", proizvod));
                }

                //update proizvodi i upis u kupovine
                proizvod.BrojTegli -= (int)kolicina;
                ProizvodiController.Update(proizvod, pr);
                List <Kupovina> ku       = (List <Kupovina>)HttpContext.Application["kupovine"];
                Kupovina        kupovina = new Kupovina()
                {
                    Id            = ku.Last().Id + 1, KorisnickoImeKupca = korisnik.KorisnickoIme, Proizvod = proizvod.Naziv, ProizvodId = proizvod.Id,
                    DatumKupovine = DateTime.Now, BrojNarucenihTegli = (int)kolicina, UkupnaCena = proizvod.CenaPoTegli * (int)kolicina
                };
                ku.Add(kupovina);
                KupovinePodaci.SacuvajKupovinuUDatoteku(kupovina);
                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index", "Authentication"));
            }
        }
コード例 #13
0
        public static List <Kupovina> citajKupovinu()
        {
            List <Kupovina> kupovina = new List <Kupovina>();

            if (!System.IO.File.Exists(pathKupovina))
            {
                var file = System.IO.File.Create(pathKupovina);
                file.Close();
                return(kupovina);
            }

            using (System.IO.StreamReader sr = System.IO.File.OpenText(pathKupovina))
            {
                try
                {
                    string line   = "";
                    int    brojac = 0;

                    while ((line = sr.ReadLine()) != null)
                    {
                        string[] kup   = line.Split('|');
                        Kupovina kupac = new Kupovina();

                        kupovina.Add(new Kupovina {
                            Id            = ++brojac,
                            Kupac         = citajKorisnike().Values.Where(k => k.Id == Int32.Parse(kup[0])).Select(k => k).SingleOrDefault(),
                            _Vozilo       = citajVozila().Where(v => v.Id == Int32.Parse(kup[1])).Select(v => v).SingleOrDefault(),
                            DatumKupovine = DateTime.ParseExact(kup[2], "d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture),
                            NaplacenaCena = double.Parse(kup[3])
                        });
                    }
                }
                catch (Exception e)
                {
                    //neka greska
                }
            }
            return(kupovina);
        }
コード例 #14
0
        public async Task <IActionResult> Create(int racunId, [Bind("LijekId,Kolicina,Iznos")] Kupovina kupovina)
        {
            if (ModelState.IsValid)
            {
                var staraKupovina = await _context.Kupovina.FindAsync(racunId, kupovina.LijekId);

                var lijek = await _context.Lijek.FindAsync(kupovina.LijekId);

                var racun = await _context.Racun.FindAsync(racunId);

                var osiguranikJmbg = _context.Osiguranik
                                     .Where(x => x.Jmbg == racun.Jmbg)
                                     .Select(x => x.Jmbg)
                                     .FirstOrDefault();

                if (staraKupovina != null)
                {
                    if (lijek.Kolicina >= kupovina.Kolicina)
                    {
                        decimal cijena = (decimal)(kupovina.Kolicina * lijek.Cijena);

                        if (lijek.NaRecept != 0 && osiguranikJmbg != null)
                        {
                            staraKupovina.Iznos += cijena - cijena * popust;
                            racun.Iznos         += (cijena - cijena * popust);
                            _context.Update(racun);
                        }
                        else
                        {
                            staraKupovina.Iznos += cijena;
                            racun.Iznos         += cijena;
                            _context.Update(racun);
                        }

                        staraKupovina.Kolicina += kupovina.Kolicina;
                        _context.Update(staraKupovina);


                        lijek.Kolicina -= kupovina.Kolicina;
                        _context.Update(lijek);


                        await _context.SaveChangesAsync();

                        return(RedirectToAction("Cart", "Kupovina", new { racunId = staraKupovina.RacunId }));
                    }
                    else
                    {
                        ModelState.AddModelError("Error", $"Broj lijekova na stanju je: {lijek.Kolicina}");
                    }
                }
                else
                {
                    kupovina.RacunId = racunId;

                    if (lijek.Kolicina >= kupovina.Kolicina)
                    {
                        decimal cijena = (decimal)(kupovina.Kolicina * lijek.Cijena);

                        if (lijek.NaRecept != 0 && osiguranikJmbg != null)
                        {
                            kupovina.Iznos = cijena - cijena * popust;
                            racun.Iznos   += (cijena - cijena * popust);
                            _context.Update(racun);
                        }
                        else
                        {
                            kupovina.Iznos = cijena;
                            racun.Iznos   += cijena;
                            _context.Update(racun);
                        }

                        _context.Add(kupovina);


                        lijek.Kolicina -= kupovina.Kolicina;
                        _context.Update(lijek);


                        await _context.SaveChangesAsync();

                        return(RedirectToAction("Cart", "Kupovina", new { racunId = kupovina.RacunId }));
                    }
                    else
                    {
                        ModelState.AddModelError("Error", $"Broj lijekova na stanju je: {lijek.Kolicina}");
                    }
                }
            }
            ViewData["LijekId"] = new SelectList(_context.Lijek, "LijekId", "Naziv", kupovina.LijekId);
            ViewData["RacunId"] = new SelectList(_context.Racun, "RacunId", "RacunId", kupovina.RacunId);
            return(View(kupovina));
        }
コード例 #15
0
 public FacadePotvrdaOKupovini(Kupac kupac, Kupovina kupovina, List <Proizvod> proizvodi)
 {
     this.kupac     = kupac;
     this.kupovina  = kupovina;
     this.proizvodi = proizvodi;
 }