public NarudzbaDetailsVM Insert(NarudzbaDetailsVM request)
        {
            var temp = _mapper.Map <Database.NarudzbaDetails>(request);

            _db.NarudzbaDetails.Add(temp);
            _db.SaveChanges();

            return(request);
        }
Exemple #2
0
        public void AddTocart()
        {
            NarudzbaDetailsVM narudzba = new NarudzbaDetailsVM()
            {
                Kolicina   = 1,
                ProizvodId = _poklonId
            };

            KorpaViewModel.AddToCart(narudzba, proizvodCart);
        }
        public NarudzbaDetailsVM Update(NarudzbaDetailsVM request, int id)
        {
            var temp = _db.NarudzbaDetails.Find(id) ?? throw new ServerException(Constants.NotFoundErrorMessage + id);

            _mapper.Map(request, temp);

            _db.NarudzbaDetails.Update(temp);
            _db.SaveChanges();

            return(request);
        }
        public void DodajUKorpu(ProizvodVM model = null)
        {
            if (model == null)
            {
                return;
            }

            NarudzbaDetailsVM temp = new NarudzbaDetailsVM()
            {
                Kolicina   = 1,
                ProizvodId = model.ProizvodId,
            };

            KorpaViewModel.AddToCart(temp, model);
        }
 public static void AddToCart(NarudzbaDetailsVM model, ProizvodVM poklon)
 {
     foreach (var item in ListaKorpe)
     {
         if (item.Proizvod.ProizvodId.Equals(model.ProizvodId))
         {
             item.Narudzba.Kolicina++;
             item.CijenaProizvoda += item.Proizvod.Cijena;
             return;
         }
     }
     ListaKorpe.Add(new KorpaModel()
     {
         Narudzba        = model,
         Proizvod        = poklon,
         CijenaProizvoda = poklon.Cijena
     });
 }
        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;
            }
        }