Exemplo n.º 1
0
        public ActionResult Create2()
        {
            NarudzbaVM narudzba = (NarudzbaVM)TempData["nar"];

            ViewBag.idVrijeme = new SelectList(narudzba.Vremena, "Id", "Prikaz");
            return(View(narudzba));
        }
Exemplo n.º 2
0
        public NarudzbaVM Update(NarudzbaVM request, int id)
        {
            request.Dostava    = null;
            request.Korisnik   = null;
            request.Zaposlenik = null;

            var temp = _db.Narudzba.Find(id) ?? throw new ServerException(Constants.NotFoundErrorMessage + id);

            _mapper.Map(request, temp);
            _db.Narudzba.Update(temp);
            _db.SaveChanges();

            return(request);
        }
Exemplo n.º 3
0
        public NarudzbaVM Insert(NarudzbaVM request)
        {
            request.Dostava    = null;
            request.Korisnik   = null;
            request.Zaposlenik = null;

            var temp = _mapper.Map <Database.Narudzba>(request);

            var test = _db.Narudzba.Add(temp);

            _db.SaveChanges();

            request.NarudzbaId = test.Entity.NarudzbaId;
            return(request);
        }
Exemplo n.º 4
0
        public ActionResult Dodaj(NarudzbaVM narudzba)
        {
            Narudzba n = new Narudzba();


            mc.Narudzbe.Add(n);
            n.KorisnikId    = narudzba.KorisnikId;
            n.UkupanIznos   = narudzba.UkupanIznos;
            n.DatumNarudzbe = DateTime.Now;
            n.BrojNarudzbe  = DateTime.Now.Millisecond.ToString() + "-FDF" + DateTime.Now.ToOADate();


            try
            {
                mc.SaveChanges();
            }
            catch
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            for (int i = 0; i < narudzba.Stavke.Count; i++)
            {
                mc.StavkeNaruzbe.Add(new StavkeNarudzbe
                {
                    NaruzbaId  = n.Id,
                    ProizvodId = narudzba.Stavke[i].ProizvodId
                });

                try
                {
                    mc.SaveChanges();
                }
                catch
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }



            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Exemplo n.º 5
0
        // GET: Narudzbas/Create
        public ActionResult Create()
        {
            var narudzba = new NarudzbaVM
            {
                IdSalon = AktivniSalon.IdAktivniSalon,
                Datum   = DateTime.Today
            };

            var usluge = narudzbaRepository.GetSalonUsluga().Where(x => x.Salon.IdSalon == AktivniSalon.IdAktivniSalon)
                         .Select(x => new UslugaVM()
            {
                Idusluga = x.Usluga.Idusluga,
                Naziv    = x.Usluga.Naziv
            }).ToList();

            ViewBag.idUsluga = new SelectList(usluge, "Idusluga", "Naziv");
            ViewBag.poruka   = "";
            return(View(narudzba));
        }
        public IHttpActionResult Post(NarudzbaVM novaNarudzba)
        {
            Narudzba n = new Narudzba();


            n.DatumNarudzbe = DateTime.Now;
            n.Iznos         = (decimal)novaNarudzba.Iznos;
            n.KorisniciId   = novaNarudzba.KorisnikId;
            n.Otkazano      = true;



            ctx.Narudzbe.Add(n);
            ctx.SaveChanges();



            return(Ok());
        }
Exemplo n.º 7
0
        public ActionResult Create2(NarudzbaVM narudzba)
        {
            ZaposlenikVrijemeVM zv = narudzba.Vremena.FirstOrDefault(x => x.Id == narudzba.IdVrijeme);
            var salon      = narudzbaRepository.GetSalonByID(AktivniSalon.IdAktivniSalon);
            var usluga     = narudzbaRepository.GetUslugaByID(narudzba.IdUsluga);
            var zaposlenik = narudzbaRepository.GetZaposlenikByID(zv.IdZaposlenik);

            Narudzba nar = new Narudzba()
            {
                Salon      = salon,
                Usluga     = usluga,
                Zaposlenik = zaposlenik,
                Klijent    = narudzba.Klijent,
                Kontakt    = narudzba.Kontakt,
                Vrijeme    = zv.Vrijeme
            };

            narudzbaRepository.InsertNarudzba(nar);

            return(RedirectToAction("Index", "Pocetna"));
        }
        public async void Zavrsi()
        {
            #region ProvjeraDaLiJeKorpaPrazna
            if (!_ListaKorpe.Any())
            {
                await PopupNavigation.Instance.PushAsync(new NotAuthorisedPopupView("Vaša korpa je prazna!"));

                return;
            }
            #endregion

            Dostava dostavaModel = new Dostava();
            try
            {
                IsBusy = true;

                NarudzbaVM model = new NarudzbaVM()
                {
                    KorisnikId    = APIService.UserId,
                    StatusPoruka  = "Aktivno",
                    DatumNarudzbe = DateTime.Now,
                };
                List <NarudzbaDetailsVM> narudzbaDetailsList = new List <NarudzbaDetailsVM>();

                foreach (var item in ListaKorpe)
                {
                    #region ProvjeraValidacijeNarudzbe
                    var tempProizvod = await _apiServiceProizvodi.GetbyId <ProizvodVM>(item.Proizvod.ProizvodId);

                    if (tempProizvod.StanjeNaLageru < item.Narudzba.Kolicina)
                    {
                        narudzbaDetailsList.Clear();
                        await PopupNavigation.Instance.PushAsync(new NotAuthorisedPopupView("Nažalost poklon: " + item.Proizvod.Naziv + ", nemamo u toj količini, trenutno na lageru: " + tempProizvod.StanjeNaLageru.ToString()));

                        return;
                    }

                    var korisnikDetails = await _apiServiceKorisnikDetails.GetbyId <KorisniciDetailsGetRequest>(APIService.UserDetailsId);

                    if (korisnikDetails.AdresaStanovanja.Length < 3 ||
                        korisnikDetails.BrojTelefona.Length < 3 ||
                        korisnikDetails.DrzavaStanovanja.Length < 3 ||
                        korisnikDetails.GradStanovanja.Length < 3 ||
                        korisnikDetails.Ime.Length < 3 ||
                        korisnikDetails.Prezime.Length < 3 ||
                        korisnikDetails.PostalCode.Length < 3)
                    {
                        narudzbaDetailsList.Clear();
                        await PopupNavigation.Instance.PushAsync(new NotAuthorisedPopupView("Molimo popunite sve informacije na vašem profilu!"));

                        return;
                    }

                    Dostava dost = new Dostava()
                    {
                        AdresaDostave  = korisnikDetails.AdresaStanovanja,
                        DrzavaDostave  = korisnikDetails.DrzavaStanovanja,
                        GradDostave    = korisnikDetails.GradStanovanja,
                        PostalCode     = korisnikDetails.PostalCode,
                        KontaktTelefon = korisnikDetails.BrojTelefona,
                    };
                    switch (this.Dostava)
                    {
                    case 0:
                        dost.TipDostave = "Bez dostave";
                        break;

                    case 5:
                        dost.TipDostave = "Regularna dostava";
                        break;

                    case 10:
                        dost.TipDostave = "Expresna dostava";
                        break;
                    }
                    dostavaModel = dost;
                    #endregion

                    NarudzbaDetailsVM temp = new NarudzbaDetailsVM()
                    {
                        ProizvodId = item.Proizvod.ProizvodId,
                        Proizvod   = item.Proizvod,
                        Kolicina   = item.Narudzba.Kolicina,
                        Ukupno     = item.Proizvod.Cijena * item.Narudzba.Kolicina,
                        Popust     = item.Narudzba.Popust ?? 0,
                    };

                    //Updejta stanj na lageru proizvoda
                    temp.Proizvod.StanjeNaLageru -= (int)item.Narudzba.Kolicina;

                    temp.Ukupno += (decimal?)Dostava;
                    narudzbaDetailsList.Add(temp);
                }
                //DODAVANJE U BAZU
                var dostavaIdModel = await _apiServiceDostava.Insert <Dostava>(dostavaModel);

                model.DostavaId = dostavaIdModel.DostavaId;
                var narudzba = await _apiServiceNarudzbe.Insert <NarudzbaVM>(model);

                foreach (var narudzbaDetalj in narudzbaDetailsList)
                {
                    //UPDEJT STANJE NA LAGERU NE RADI!!! NEMOGUCI BUG
                    //await _apiServiceProizvodi.ProizvodUpdateInStock<ProizvodVM>(narudzbaDetalj.Proizvod, narudzbaDetalj.ProizvodId);
                    narudzbaDetalj.NarudzbaId = narudzba.NarudzbaId;
                    await _apiServiceNarudzbeDetalji.Insert <NarudzbaDetailsVM>(new NarudzbaDetailsVM {
                        Kolicina   = narudzbaDetalj.Kolicina,
                        NarudzbaId = narudzbaDetalj.NarudzbaId,
                        Popust     = narudzbaDetalj.Popust,
                        ProizvodId = narudzbaDetalj.ProizvodId,
                        Ukupno     = narudzbaDetalj.Ukupno
                    });
                }

                ListaKorpe.Clear();
                await PopupNavigation.Instance.PushAsync(new FinishOrderPopupView());
            }
            catch (FlurlHttpException ex)
            {
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 9
0
        public ActionResult Create(NarudzbaVM narudzba)
        {
            if (ModelState.IsValid)
            {
                narudzba.Usluga = narudzbaRepository.GetUsluga().Select(x => new UslugaVM()
                {
                    Idusluga = x.Idusluga,
                    Naziv    = x.Naziv,
                    Trajanje = x.Trajanje,
                    Cijena   = x.Cijena
                }).FirstOrDefault(x => x.Idusluga == narudzba.IdUsluga);

                //...

                List <ZaposlenikVM> zaposlenici = new List <ZaposlenikVM>();
                foreach (var z in narudzbaRepository.GetZaposleniksQuery())
                {
                    if (z.Salon.IdSalon == AktivniSalon.IdAktivniSalon)
                    {
                        foreach (var u in z.Zaposlenikusluga)
                        {
                            if (u.Usluga.Idusluga == narudzba.IdUsluga)
                            {
                                zaposlenici.Add(new ZaposlenikVM()
                                {
                                    IdZaposlenik = z.IdZaposlenik,
                                    ImePrezime   = z.Ime + ' ' + z.Prezime,
                                    IdSmjena     = z.Smjena.IdSmjena
                                });
                            }
                        }
                    }
                }

                List <Narudzba> narudzbe = narudzbaRepository.GetNarudzba().Where(x => x.Salon.IdSalon == AktivniSalon.IdAktivniSalon).ToList();

                narudzbe.RemoveAll(x => x.Vrijeme.Date.CompareTo(narudzba.Datum.Date) != 0);
                Dictionary <int, List <DateTime> > vremena = new Dictionary <int, List <DateTime> >();


                bool     moguce;
                TimeSpan ts;
                DateTime start;
                DateTime end;

                foreach (var z in zaposlenici)
                {
                    vremena[z.IdZaposlenik] = new List <DateTime>();
                    if (z.IdSmjena == 1)
                    {
                        ts    = new TimeSpan(8, 0, 0);
                        start = narudzba.Datum.Date + ts;
                        end   = start.AddMinutes(6 * 60 - narudzba.Usluga.Trajanje);
                    }
                    else
                    {
                        ts    = new TimeSpan(14, 0, 0);
                        start = narudzba.Datum.Date + ts;
                        end   = start.AddMinutes(6 * 60 - narudzba.Usluga.Trajanje);
                    }


                    while (start <= end)
                    {
                        DateTime poc  = start;
                        DateTime kraj = start.AddMinutes(narudzba.Usluga.Trajanje);

                        moguce = true;

                        foreach (var n in narudzbe)
                        {
                            if (n.Zaposlenik.IdZaposlenik == z.IdZaposlenik)
                            {
                                DateTime s = n.Vrijeme;
                                DateTime e = n.Vrijeme.AddMinutes(n.Usluga.Trajanje);

                                if (!(DateTime.Compare(poc, s) < 0 && DateTime.Compare(kraj, s) <= 0 || DateTime.Compare(poc, e) >= 0 && DateTime.Compare(kraj, e) > 0))
                                {
                                    moguce = false;
                                }
                            }
                        }

                        if (moguce == true)
                        {
                            vremena[z.IdZaposlenik].Add(poc);
                        }


                        start = start.AddMinutes(30);
                    }
                }
                narudzba.Vremena = new List <ZaposlenikVrijemeVM>();

                int i = 1;
                foreach (var x in vremena.Keys)
                {
                    Zaposlenik   zapo = narudzbaRepository.GetZaposleniksQuery().FirstOrDefault(z => z.IdZaposlenik == x);
                    ZaposlenikVM zap  = new ZaposlenikVM()
                    {
                        IdZaposlenik = zapo.IdZaposlenik,
                        ImePrezime   = zapo.Ime + " " + zapo.Prezime
                    };

                    foreach (var y in vremena[x])
                    {
                        narudzba.Vremena.Add(new ZaposlenikVrijemeVM()
                        {
                            Id           = i,
                            Vrijeme      = y,
                            IdZaposlenik = zap.IdZaposlenik,
                            Prikaz       = y.ToShortTimeString() + " (" + zap.ImePrezime + ")"
                        });
                        i++;
                    }
                }

                narudzba.Vremena = narudzba.Vremena.OrderBy(x => x.Vrijeme).ToList();
                TempData["nar"]  = narudzba;
                if (narudzba.Vremena.Count > 0)
                {
                    return(RedirectToAction("Create2"));
                }
                else
                {
                    ViewBag.poruka = "ZA ODABRANI DATUM NEMA SLOBODNIH TERMINA. ODABERI DRUGI!";
                }
            }

            var usluge = narudzbaRepository.GetSalonUsluga().Where(x => x.Salon.IdSalon == AktivniSalon.IdAktivniSalon)
                         .Select(x => new UslugaVM()
            {
                Idusluga = x.Usluga.Idusluga,
                Naziv    = x.Usluga.Naziv
            }).ToList();

            ViewBag.idUsluga = new SelectList(usluge, "Idusluga", "Naziv");

            return(View(narudzba));
        }