// Zavrsava narudzbu, tako sto dodaje svaku narudzbu na stavku racuna, ali trenutno ne radi
        // razmisliti o drugom pristupu ovom problemu
        public ActionResult ZakljuciNarudzbu()
        {
            if (Session["korpa"] != null)
            {
                List <KorpaViewModel> korpa = (List <KorpaViewModel>)Session["korpa"];

                double ukupnaCijena = 0;
                for (int i = 0; i < korpa.Count; i++)
                {
                    ukupnaCijena += korpa[i].Korpa.UkupnaCijenaProizvoda;
                }

                Narudzba narudzbe = new Narudzba();

                Racun racun = new Racun();

                racun.DatumRacuna   = DateTime.Now.Date;
                racun.VrijemeRacuna = DateTime.Now;
                racun.Popust        = 0;
                racun.StolId        = 181;
                racun.Ukupno        = float.Parse(ukupnaCijena.ToString());


                narudzbe.KorisnikId      = korpa[1].Korpa.KorisnikId;
                narudzbe.IsDeleted       = false;
                narudzbe.OnlineNarudzba  = true;
                narudzbe.Prihvacena      = false;
                narudzbe.VrijemeNarudzbe = korpa[1].Korpa.VrijemeNarudzbe;
                narudzbe.DatumNarudzbe   = korpa[1].Korpa.DatumNarudzbe;
                narudzbe.UkupnaCijena    = float.Parse(ukupnaCijena.ToString());
                narudzbe.RacunId         = racun.Id;

                ctx.Racuni.Add(racun);
                ctx.SaveChanges();

                narudzbe.RacunId = racun.Id;


                ctx.Narudzbe.Add(narudzbe);

                for (int i = 0; i < korpa.Count; i++)
                {
                    StavkaNarudzbe stavke = new StavkaNarudzbe();

                    stavke.IsDeleted  = false;
                    stavke.Kolicina   = korpa[i].Korpa.Kolicina;
                    stavke.ProizvodId = korpa[i].Korpa.ProizvodId;
                    stavke.NarudzbaId = narudzbe.Id;


                    ctx.StavkeNarudzbe.Add(stavke);
                    ctx.SaveChanges();
                }
                Session["korpa"]             = null;
                ViewData["uspjesnaKupovina"] = "Uspjesno ste zavrsili kupovinu. Hvala Vam!";
            }

            return(View("KorpaZavrsi"));
        }
Пример #2
0
        public IActionResult Index(NaruzbaViewModel model)
        {
            NaruzbaViewModel returnModel = new NaruzbaViewModel();

            PopulateModel(ref returnModel);

            if (!ModelState.IsValid)
            {
                return(View(returnModel));
            }


            Narudzba narudzba = new Narudzba
            {
                Datum          = DateTime.UtcNow,
                Kanton         = model.Kanton,
                Ulica          = model.Ulica,
                KontaktTelefon = model.KontaktTelefon,
                PostanskiBroj  = model.PostanskiBroj,
                UkupnaCijena   = returnModel.Detalji.TotalPrice,
                Stanje         = 1,
                KupacId        = kupacService.GetKupacByAspUserId(_userManager.GetUserId(HttpContext.User)),
                Opcina         = model.Opcina
            };

            List <StavkaNarudzbe> listaStavki = new List <StavkaNarudzbe>();

            foreach (var item in returnModel.Detalji.Items)
            {
                var stavka = new StavkaNarudzbe
                {
                    MobitelId = item.Product.Id,
                    Kolicina  = item.Quantity,
                    Cijena    = item.Product.mobitel.Cijena
                };
                listaStavki.Add(stavka);
            }


            narudzbaService.InsertNarudzba(narudzba, listaStavki);

            // posalji sms zahvale kupcu
            string poruka = "Hvala vam na naruzbi sa webshopmobitela, " + model.Ime + ".Vasa naruzba ce ubrzo biti dostavljena u ulicu " + model.Ulica + ".";

            smsService.SendSms(new SmsModel {
                To = model.FullPhone, Text = poruka
            });


            // nakon uspjesne narudzbe ukloni sve iz kosarice.
            List <Item> cart = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, CartName);

            cart.RemoveAll(x => x.Quantity > 0);
            SessionHelper.SetObjectAsJson(HttpContext.Session, CartName, cart);


            return(RedirectToAction("Narudzbe"));
        }
Пример #3
0
        public IActionResult Index(NarudzbaViewModel model)
        {
            NarudzbaViewModel returnModel = new NarudzbaViewModel();

            PopulateModel(ref returnModel);

            if (!ModelState.IsValid)
            {
                return(View(returnModel));
            }


            Narudzba narudzba = new Narudzba
            {
                DatumNarudzbe = DateTime.UtcNow,
                Kontakt       = model.KontaktTelefon,
                UkupnaCijena  = returnModel.Detalji.TotalPrice,
                Status        = 1,
                KupacId       = KupacService.GetKupacByAspUserId(UserManager.GetUserId(HttpContext.User))
            };

            List <StavkaNarudzbe> listaStavki = new List <StavkaNarudzbe>();

            foreach (var item in returnModel.Detalji.Items)
            {
                var stavka = new StavkaNarudzbe
                {
                    ArtikalId = item.Product.Id,
                    Kolicina  = item.Quantity,
                    Cijena    = item.Product.artikal.Cijena
                };
                listaStavki.Add(stavka);
            }


            NarudzbaService.InsertNarudzba(narudzba, listaStavki);
            var VONAGE_API_KEY    = Configuration["VONAGE_API_KEY"];
            var VONAGE_API_SECRET = Configuration["VONAGE_API_SECRET"];
            var credentials       = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
            var client            = new SmsClient(credentials);
            var request           = new SendSmsRequest {
                To = model.KontaktTelefon, From = model.KontaktTelefon, Text = "Uspjesno ste narucili artikal!"
            };
            var response = client.SendAnSms(request);

            ViewBag.MessageId = response.Messages[0].MessageId;

            // Delete sve iz kosarice nakon uspjesne narudzbe
            List <Item> cart = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, CartName);

            cart.RemoveAll(x => x.Quantity > 0);
            SessionHelper.SetObjectAsJson(HttpContext.Session, CartName, cart);



            return(View("NarudzbaConfirmation"));
        }
Пример #4
0
        //pravimo objekt StavkaNarudzbe i vraćamo je(formi)
        public StavkaNarudzbe DajStavku()
        {
            stavka = new StavkaNarudzbe();
            Lijek lijek = (Lijek)cbxNaziv.SelectedItem;

            stavka.IdLijeka = lijek.ID;
            stavka.Kolicina = int.Parse(tbxKolicina.Text);
            return(stavka);
        }
Пример #5
0
        public static void seed(ApplicationContext ctx)
        {
            ctx.Database.Migrate();
            Narudzba narudzba = new Narudzba
            {
                Datum            = DateTime.Now,
                Kanton           = "Hercegovacko-Neretvanski",
                KontaktTelefon   = "063513758",
                KupacId          = 1,
                PostanskiBroj    = "88260",
                StanjeNarudzbeId = 1,
                Opcina           = "Citluk",
                UkupnaCijena     = 1500d,
                Ulica            = "Markovac 36"
            };


            ctx.Narudzbe.Add(narudzba);
            ctx.SaveChanges();
            StavkaNarudzbe stavka = new StavkaNarudzbe
            {
                MobitelId  = 1,
                Cijena     = 1500,
                Kolicina   = 1,
                NarudzbaId = narudzba.Id
            };

            ctx.StavkeNarudzbe.Add(stavka);
            ctx.SaveChanges();
            Narudzba narudzba1 = new Narudzba
            {
                Datum            = DateTime.Now,
                Kanton           = "Hercegovacko-Neretvanski",
                KontaktTelefon   = "063513758",
                KupacId          = 1,
                PostanskiBroj    = "88260",
                StanjeNarudzbeId = 4,
                Opcina           = "Citluk",
                UkupnaCijena     = 1500d,
                Ulica            = "Markovac 36"
            };


            ctx.Narudzbe.Add(narudzba1);
            ctx.SaveChanges();
            StavkaNarudzbe stavka1 = new StavkaNarudzbe
            {
                MobitelId  = 1,
                Cijena     = 1500,
                Kolicina   = 1,
                NarudzbaId = narudzba1.Id
            };

            ctx.StavkeNarudzbe.Add(stavka1);
            ctx.SaveChanges();
        }
Пример #6
0
        public IActionResult DodajStavkuNarudzbe(IFormCollection forma)
        {
            if (!string.IsNullOrEmpty(forma["fldKolicina"]))
            {
                StavkaNarudzbe sn = _context.StavkaNarudzbe.Find(Int32.Parse(forma["dlStavkeNarudzbe"]));
                sn.Kolicina         = Int32.Parse(forma["fldKolicina"]);
                sn.StavkaNarudzbeId = 0;

                StavkeNarudzbe.Add(sn);
            }

            return(RedirectToAction("ZahtjevZaNabavkuNamirnica", "Restoran"));
        }
        public IActionResult Uredi(int VoziloId, int NarudzbaId)
        {
            StavkaNarudzbe sn = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == NarudzbaId && w.VoziloID == VoziloId).Include(i => i.Vozilo).ThenInclude(t => t.Proizvodjac).SingleOrDefault();

            NarudzbeStavkeUrediVM model = new NarudzbeStavkeUrediVM
            {
                VoziloId   = sn.VoziloID,
                NarudzbaId = sn.NarudzbaID,
                Vozilo     = sn.Vozilo.Proizvodjac.Naziv + " / " + sn.Vozilo.Model + " / " + sn.Vozilo.Godinaproizvodnje,
                Cijena     = _context.Vozilo.Where(w => w.VoziloID == sn.VoziloID).Select(s => s.Cijena).SingleOrDefault(),
                Kolicina   = sn.Kolicina
            };

            return(PartialView(model));
        }
        public IActionResult SnimiUredi(NarudzbeStavkeUrediVM input)
        {
            if (!ModelState.IsValid)
            {
                return(View("Uredi", input));
            }

            StavkaNarudzbe snUredi = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == input.NarudzbaId && w.VoziloID == input.VoziloId).SingleOrDefault();

            snUredi.CijenaPoKomadu = input.Cijena;
            snUredi.Kolicina       = input.Kolicina;

            _context.SaveChanges();
            return(Redirect("/Prodaja/NarudzbeStavke/Index?id=" + input.NarudzbaId));
        }
Пример #9
0
        public void GetUkupnaCijenaTest()
        {
            StavkaNarudzbe p1 = new StavkaNarudzbe();

            p1.Kolicina = 0;
            p1.Cijena   = 5;
            Decimal r1 = p1.GetUkupnaCijena();

            Assert.AreEqual(0, r1, "Vrijednosti nisu nula");

            StavkaNarudzbe p2 = new StavkaNarudzbe();

            p2.Kolicina = -1;
            p2.Cijena   = 5;
            Decimal r2 = p2.GetUkupnaCijena();

            Assert.IsTrue(r2 < 0, "Vrijednosti nisu negativne");
        }
Пример #10
0
        /// <summary>
        /// Provjerava da li se trazeni artikl već nalazi u stavkama narudzbe, ako se vec nalazi onda kolicinu toga artikla u stavki inkrementira za 1, a ukoliko ne postoji onda kreira novu stavku sa inicijalnom kolicinom 1.
        /// </summary>
        public void ProvjeriStavkeNarudzbe(Artikl odabraniArtikl)
        {
            bool postojiArtikl = false;

            foreach (var stavka in stavkaNarudzbe)
            {
                if (stavka.IdArtikla == odabraniArtikl.IdArtikla)
                {
                    stavka.Kolicina += 1;
                    postojiArtikl    = true;
                }
            }

            if (postojiArtikl == false)
            {
                StavkaNarudzbe novaStavka = new StavkaNarudzbe(odabraniArtikl.IdArtikla);
                stavkaNarudzbe.Add(novaStavka);
            }
        }
        public IActionResult Obrisi(int VoziloId, int NarudzbaId)
        {
            StavkaNarudzbe sn = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == NarudzbaId && w.VoziloID == VoziloId).SingleOrDefault();

            Narudzba n = _context.Narudzba.Find(sn.NarudzbaID);

            _context.StavkaNarudzbe.Remove(sn);
            _context.SaveChanges();

            var    stavke = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == sn.NarudzbaID).ToList();
            double cijena = 0;

            foreach (var x in stavke)
            {
                cijena += x.CijenaPoKomadu * x.Kolicina;
            }
            n.Cijena = cijena;
            _context.SaveChanges();

            return(Redirect("/Prodaja/NarudzbeStavke/Index?id=" + NarudzbaId));
        }
        public IActionResult Snimi(NarudzbeStavkeDodajVM input)
        {
            if (!ModelState.IsValid || input.VoziloId == 0) //ako nije odabrano vozilo jer ih nema više na stanju
            {
                GenerisiCmb(input, input.NarudzbaId);

                if (input.VoziloId == 0)
                {
                    input.Vozila.Add(new SelectListItem {
                        Value = "0", Text = "Nije pronađen nijedan zapis"
                    });
                }

                return(View("Dodaj", input));
            }

            StavkaNarudzbe sn = new StavkaNarudzbe
            {
                VoziloID       = input.VoziloId,
                NarudzbaID     = input.NarudzbaId,
                CijenaPoKomadu = _context.Vozilo.Where(w => w.VoziloID == input.VoziloId).Select(s => s.Cijena).SingleOrDefault(),
                Kolicina       = input.Kolicina
            };

            _context.StavkaNarudzbe.Add(sn);
            _context.SaveChanges();

            Narudzba n      = _context.Narudzba.Find(sn.NarudzbaID);
            var      stavke = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == sn.NarudzbaID).ToList();
            double   cijena = 0;

            foreach (var x in stavke)
            {
                cijena += x.CijenaPoKomadu * x.Kolicina;
            }
            n.Cijena = cijena;
            _context.SaveChanges();

            return(Redirect("/Prodaja/NarudzbeStavke/Index?id=" + input.NarudzbaId));
        }
        public IActionResult Detalji(int id)
        {
            Narudzba n = _context.Narudzba.Where(w => w.NarudzbaID == id).Include(i => i.Klijent).Include(i => i.StatusNarudzbe).SingleOrDefault();

            NarudzbeDetaljiVM model = new NarudzbeDetaljiVM
            {
                BrojNarudzbe      = n.NarudzbaID,
                DatumNarudzbe     = n.Datum.ToString("dd/MM/yyyy"),
                Status            = n.StatusNarudzbe.Naziv,
                KlijentImePrezime = n.Klijent.Ime + " " + n.Klijent.Prezime,
                StatusNarudzbeId  = n.StatusNarudzbeID,
            };

            StavkaNarudzbe ns = _context.StavkaNarudzbe.Where(w => w.NarudzbaID == n.NarudzbaID).FirstOrDefault();

            if (ns != null)
            {
                model.Provjera = true;
            }

            return(View(model));
        }
Пример #14
0
        /// <summary>
        /// Prilikom brisanja artikla sa narudzbe provjerava da li je kolicina tog artikla veća ili jednaka 2, ako je onda ju dekrementira za 1, a ukoliko nije onda uklanja artikl sa stavki narudzbe.
        /// </summary>
        public void MakniStavkuNarudzbe(Artikl odabraniArtikl)
        {
            bool           artiklPronaden = false;
            StavkaNarudzbe nadeniArtikl   = null;

            foreach (var item in stavkaNarudzbe)
            {
                if (item.IdArtikla == odabraniArtikl.IdArtikla)
                {
                    if (item.Kolicina >= 2)
                    {
                        item.Kolicina -= 1;
                        artiklPronaden = true;
                        nadeniArtikl   = item;
                    }
                }
            }

            if (artiklPronaden == false)
            {
                stavkaNarudzbe.Remove(nadeniArtikl);
            }
        }
Пример #15
0
        // Zavrsava narudzbu, tako sto dodaje svaku narudzbu na stavku racuna, ali trenutno ne radi
        // razmisliti o drugom pristupu ovom problemu
        public ActionResult ZakljuciNarudzbu(int?stolId, int?korisnikId)
        {
            if (UposlenikStolNarudzba.UposlenikKorpaViewModels != null)
            {
                List <UposlenikKorpaViewModel> korpa = UposlenikStolNarudzba.UposlenikKorpaViewModels.Where(x => x.Korpa.StolID == stolId.Value && x.Korpa.KorisnikId == korisnikId.Value).ToList();

                double ukupnaCijena = 0;
                for (int i = 0; i < korpa.Count; i++)
                {
                    ukupnaCijena += korpa[i].Korpa.UkupnaCijenaProizvoda;
                }

                Narudzba narudzbe = new Narudzba();

                Racun racun = new Racun();

                racun.DatumRacuna   = DateTime.Now.Date;
                racun.VrijemeRacuna = DateTime.Now;
                racun.Popust        = 0;
                racun.StolId        = stolId.Value;
                racun.Ukupno        = float.Parse(ukupnaCijena.ToString());


                narudzbe.KorisnikId      = korpa[1].Korpa.KorisnikId;
                narudzbe.IsDeleted       = false;
                narudzbe.OnlineNarudzba  = true;
                narudzbe.Prihvacena      = false;
                narudzbe.VrijemeNarudzbe = korpa[1].Korpa.VrijemeNarudzbe;
                narudzbe.DatumNarudzbe   = korpa[1].Korpa.DatumNarudzbe;
                narudzbe.RacunId         = racun.Id;

                ctx.Racuni.Add(racun);
                ctx.SaveChanges();

                narudzbe.RacunId = racun.Id;


                ctx.Narudzbe.Add(narudzbe);

                for (int i = 0; i < korpa.Count; i++)
                {
                    StavkaNarudzbe stavke = new StavkaNarudzbe();

                    stavke.IsDeleted  = false;
                    stavke.Kolicina   = korpa[i].Korpa.Kolicina;
                    stavke.ProizvodId = korpa[i].Korpa.ProizvodId;
                    stavke.NarudzbaId = narudzbe.Id;


                    ctx.StavkeNarudzbe.Add(stavke);
                    ctx.SaveChanges();
                }

                foreach (var x in korpa)
                {
                    UposlenikStolNarudzba.UposlenikKorpaViewModels.Remove(x);
                }
                ViewData["uspjesnaKupovina"] = "Uspjesno ste zavrsili kupovinu. Hvala Vam!";

                if (UposleniciZauzetiStolViewModel.stolId != null)
                {
                    while (UposleniciZauzetiStolViewModel.stolId.Contains("stolID-" + stolId.Value))
                    {
                        UposleniciZauzetiStolViewModel.stolId.Remove("stolID-" + stolId.Value);
                    }
                }
            }

            return(View("KorpaZavrsi"));
        }