public IActionResult KreirajRacun(RezervacijaPrikazVM x)
        {
            var datum = _dbContext.Rezervacije.Where(a => a.DatumVjencanja == x.dtmDate && a.StatusRezervacijeID != 0).Any();
            if (datum == true )
            {
                TempData["msg"] = "<script>alert('Žao nam je, odabrani datum je već rezervisan. Molimo vas da odaberete drugi datum');</script>";
                return Redirect("Prikaz?korisnikID=" + x.KorisnikID);
            }
            List<SelectListItem> n = _dbContext.NacinPlacanja.Select(d => new SelectListItem
            {
                Value = d.NacinPlacanjaID.ToString(),
                Text = d.NacinPlacanjaNaziv
            }).ToList();


            RacunVM novi = new RacunVM()
            {
                RacunID = 0,
                RezervacijaID = x.RezervacijaID,
                dtmDate = x.dtmDate,
                UkupanIznos = x.CijenaNarudzbe
            };
            string KorisnikID = _dbContext.RezervacijaKorisnici.Where(d => d.KorisnikID == x.KorisnikID && d.RezervacijaID == x.RezervacijaID).FirstOrDefault().KorisnikID;
            //string KorisnikID = _dbContext.RezervacijaKorisnici.FirstOrDefault(d => d.RezervacijaID == x.RezervacijaID && d.KorisnikID == x.KorisnikID).ToString();
            novi.KorisnikID = KorisnikID;
            novi.nacinPlacanja = n;

            return View("PrikazRacuna", novi);
        }
示例#2
0
 public ActionResult Edit(RacunVM vm)
 {
     try
     {
         var korisnik = this.racunService.Get(vm.RacunId);
         if (korisnik == null)
         {
             return(HttpNotFound("Neispravan račun: " + vm.RacunId));
         }
         try
         {
             var model = this.vmService.VMToModel(vm);
             this.racunService.Update(model);
             return(RedirectToAction(nameof(Index)));
         }
         catch
         {
             return(View(vm));
         }
     }
     catch
     {
         PrepareDropDownLists();
         return(RedirectToAction(nameof(Edit), vm.RacunId));
     }
 }
示例#3
0
        public RacunVM Insert(RacunVM request)
        {
            var temp = _mapper.Map <Database.Racun>(request);

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

            return(request);
        }
示例#4
0
        public RacunVM Update(RacunVM request, int id)
        {
            var temp = _db.Racun.Find(id) ?? throw new ServerException(Constants.NotFoundErrorMessage + id);

            _mapper.Map(request, temp);

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

            return(request);
        }
示例#5
0
        /// <summary>
        /// Models to dto.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>
        /// Returns mapped model to dto
        /// </returns>
        public RacunVM ModelToVM(Racun model)
        {
            var dto = new RacunVM
            {
                DatumIvrijemeIzdavanja = (DateTime)model.DatumIvrijemeIzdavanja,
                KorisnikNaziv          = model.Korisnik.Prezime,
                KlijentNaziv           = model.Klijent.Prezime,
                RacunId = model.RacunId
            };

            return(dto);
        }
示例#6
0
        public IHttpActionResult Index([FromBody] DateTime date)
        {
            RacunVM racuni = new RacunVM();

            racuni.DanasnjaZarada = ctx.Racuni.Where(j => j.DatumIzdavanja.Year == date.Year &&
                                                     j.DatumIzdavanja.Month == date.Month &&
                                                     j.DatumIzdavanja.Day == date.Day).GroupBy(o => new
            {
                Day            = o.DatumIzdavanja.Day,
                DatumIzdavanja = o.DatumIzdavanja,
                Iznos          = ctx.Racuni.Where(j => j.DatumIzdavanja.Year == date.Year &&
                                                  j.DatumIzdavanja.Month == date.Month &&
                                                  j.DatumIzdavanja.Day == date.Day).Sum(y => y.Iznos)
            }).Select(x => new RacunVM.RacunRow
            {
                DatumIzdavanja = x.Key.DatumIzdavanja,
                Iznos          = x.Key.Iznos,
                Dan            = x.Key.Day
            }).FirstOrDefault();
            if (racuni.DanasnjaZarada == null)
            {
                racuni.DanasnjaZarada = new RacunVM.RacunRow
                {
                    BrojNarudzbi   = 0,
                    DatumIzdavanja = DateTime.Now,
                    Iznos          = 0,
                    Dan            = DateTime.Now.Day,
                };
            }

            racuni.Zarade = ctx.Racuni.Where(j => j.DatumIzdavanja.Year == date.Year &&
                                             j.DatumIzdavanja.Month == date.Month &&
                                             j.DatumIzdavanja.Day == date.Day).GroupBy(o => new
            {
                Day            = o.DatumIzdavanja.Day,
                DatumIzdavanja = o.DatumIzdavanja,
                Iznos          = ctx.Racuni.Where(j => j.DatumIzdavanja.Year == date.Year &&
                                                  j.DatumIzdavanja.Month == date.Month &&
                                                  j.DatumIzdavanja.Day == date.Day).Sum(y => y.Iznos)
            }).Select(x => new RacunVM.RacunRow
            {
                DatumIzdavanja = x.Key.DatumIzdavanja,
                Iznos          = x.Key.Iznos,
                Dan            = x.Key.Day,
                BrojNarudzbi   = ctx.Racuni.Count(j => j.DatumIzdavanja.Year == date.Year &&
                                                  j.DatumIzdavanja.Month == date.Month &&
                                                  j.DatumIzdavanja.Day == date.Day)
            }).ToList();

            return(Ok(racuni));
        }
示例#7
0
        public ActionResult Create(RacunVM vm)
        {
            try
            {
                var model = this.vmService.VMToModel(vm);
                this.racunService.Create(model);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                PrepareDropDownLists();
                return(View(vm));
            }
        }
示例#8
0
        /// <summary>
        /// Maps dto to model
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <returns>
        /// Returns mapped dto to model
        /// </returns>
        public Racun VMToModel(RacunVM dto)
        {
            var model = new Racun
            {
                DatumIvrijemeIzdavanja = dto.DatumIvrijemeIzdavanja,
                RacunId = dto.RacunId
            };

            var korisnik = this.apotekaContext.Korisnik.Where(r => r.Prezime == dto.KorisnikNaziv).FirstOrDefault();

            model.Korisnik   = korisnik;
            model.KorisnikId = korisnik.KorisnikId;

            var klijent = this.apotekaContext.Klijent.Where(r => r.Prezime == dto.KlijentNaziv).FirstOrDefault();

            model.Klijent   = klijent;
            model.KlijentId = klijent.KlijentId;

            return(model);
        }
示例#9
0
        public IActionResult Snimi(KreirajRezervacijuVM model)
        {
            double        cijenaOpreme      = 0;
            List <int>    OpremaIDs         = new List <int>();
            List <string> opremaListaCijene = new List <string>();
            List <string> opremaListaNaziv  = new List <string>();


            if (model.DjecijaSjedalica || model.KrovniKofer || model.KrovniNosaci || model.NosaciSkije || model.NosaciBicikla)
            {
                if (model.DjecijaSjedalica)
                {
                    cijenaOpreme += getCijenaOpreme("DjecijaSjedalica"); OpremaIDs.Add(getIDOprema("DjecijaSjedalica")); opremaListaCijene.Add(getCijenaOpreme("DjecijaSjedalica").ToString() + " KM"); opremaListaNaziv.Add("Djecija sjedalica ");
                }
                if (model.KrovniKofer)
                {
                    cijenaOpreme += getCijenaOpreme("KrovniKofer"); OpremaIDs.Add(getIDOprema("KrovniKofer")); opremaListaCijene.Add(getCijenaOpreme("KrovniKofer").ToString() + " KM"); opremaListaNaziv.Add("Krovni kofer ");
                }
                if (model.KrovniNosaci)
                {
                    cijenaOpreme += getCijenaOpreme("KrovniNosaci"); OpremaIDs.Add(getIDOprema("KrovniNosaci")); opremaListaCijene.Add(getCijenaOpreme("KrovniNosaci").ToString() + " KM"); opremaListaNaziv.Add("Krovni nosaci ");
                }
                if (model.NosaciSkije)
                {
                    cijenaOpreme += getCijenaOpreme("NosaciSkije"); OpremaIDs.Add(getIDOprema("NosaciSkije")); opremaListaCijene.Add(getCijenaOpreme("NosaciSkije").ToString() + " KM"); opremaListaNaziv.Add("Nosaci za skije ");
                }
                if (model.NosaciBicikla)
                {
                    cijenaOpreme += getCijenaOpreme("NosaciBicikla"); OpremaIDs.Add(getIDOprema("NosaciBicikla")); opremaListaCijene.Add(getCijenaOpreme("NosaciBicikla").ToString() + " KM"); opremaListaNaziv.Add("Nosaci za bicikla ");
                }
            }

            double  brojDana          = Math.Ceiling((model.DatumVracanja - model.DatumPreuzimanja).TotalDays);
            decimal cijenaRentanjeDan = getCijenaRentanje(model.AutomobilID);

            if (brojDana <= 0)
            {
                brojDana = 1;
            }

            model.Iznos           = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana) + System.Convert.ToDecimal(cijenaOpreme);
            model.IznosbezPopusta = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana) + System.Convert.ToDecimal(cijenaOpreme);
            model.IznosbezOpreme  = cijenaRentanjeDan * System.Convert.ToDecimal(brojDana);
            int    brrezervacija = db.RezervacijaRentanja.Where(w => w.KlijentID == model.KlijentID).Count();
            double popust        = 0;

            if (brrezervacija >= 1 && brrezervacija <= 5)
            {
                model.Iznos = model.Iznos - (model.Iznos / 100) * 10; popust = 10;
            }
            if (brrezervacija > 5)
            {
                model.Iznos = model.Iznos - (model.Iznos / 100) * 15; popust = 15;
            }


            Racun racun = new Racun {
                DatumIzdavanja = DateTime.Now, Iznos = model.Iznos
            };

            db.Add(racun);
            db.SaveChanges();
            int racunID = db.Racun.Last().RacunID;

            RezervacijaRentanje rr = new RezervacijaRentanje {
                AutomobilID   = model.AutomobilID,
                UposlenikID   = model.UposlenikID, KlijentID = model.KlijentID, PoslovnicaID = model.PoslovnicaID, DatumKreiranja = DateTime.Now,
                RezervacijaOd = model.DatumPreuzimanja, RezervacijaDo = model.DatumVracanja, Iznos = model.Iznos, Popust = popust, Opis = "/", RacunID = racunID
            };

            db.Add(rr);
            db.SaveChanges();

            RacunVM racunVM = new RacunVM();

            if (cijenaOpreme != 0)
            {
                foreach (int x in OpremaIDs)
                {
                    RezervacijaRentanjaDodatnaOprema rrdo = new RezervacijaRentanjaDodatnaOprema {
                        DodatnaOpremaID = x, RezervacijaRentanjaID = rr.RezervacijaRentanjaID
                    };
                    db.Add(rrdo);
                    db.SaveChanges();
                    racunVM.Oprema = true;
                }
            }

            Automobil a = db.Automobil.Find(model.AutomobilID);

            a.Dostupan = false;

            model.Popust         = popust;
            model.CijenaOpreme   = cijenaOpreme;
            model.DatumKreiranja = DateTime.Now;



            Poslovnica p = db.Poslovnica.Include(i => i.Grad.Drzava).Where(w => w.PoslovnicaID == model.PoslovnicaID).First();

            racunVM.adresaPoslovnice     = p.Adresa.ToString();
            racunVM.DrzavaGradPoslovnica = p.Grad.Drzava.Naziv + " " + p.Grad.Naziv + " " + p.Naziv;
            racunVM.Uposlenik            = db.Users.Where(w => w.Id == model.UposlenikID).First().Prezime + db.Users.Where(w => w.Id == model.UposlenikID).First().Ime;
            racunVM.KlijentEmail         = db.Users.Where(w => w.Id == model.KlijentID).First().Email;
            racunVM.RacunID           = rr.RezervacijaRentanjaID;
            racunVM.Popust            = popust;
            racunVM.nazivPoslovnice   = p.Naziv;
            racunVM.KlijentImePrezime = db.Users.Where(w => w.Id == model.KlijentID).First().Prezime + " " + db.Users.Where(w => w.Id == model.KlijentID).First().Ime;
            if (db.Users.Include(i => i.Grad).Where(w => w.Id == model.KlijentID).FirstOrDefault().Grad != null)
            {
                racunVM.KlijentGrad = db.Users.Include(i => i.Grad).Where(w => w.Id == model.KlijentID).FirstOrDefault().Grad.Naziv.ToString();
            }
            else
            {
                racunVM.KlijentGrad = "/";
            }
            racunVM.CijenaOpreme     = cijenaOpreme;
            racunVM.DatumKreiranja   = model.DatumKreiranja;
            racunVM.DatumPreuzimanja = model.DatumPreuzimanja;
            racunVM.DatumVracanja    = model.DatumVracanja;
            racunVM.Iznos            = model.Iznos;
            racunVM.IznosbezOpreme   = model.IznosbezOpreme;
            racunVM.IznosbezPopusta  = model.IznosbezPopusta;
            racunVM.Automobil        = db.Automobil.Include(i => i.Proizvodjac).Where(w => w.AutomobilID == model.AutomobilID).First().Proizvodjac.Naziv + " " + db.Automobil.Include(i => i.Proizvodjac).Where(w => w.AutomobilID == model.AutomobilID).First().Model;
            racunVM.brojDana         = brojDana;
            racunVM.cijenaPoDanu     = db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.CijenaRentanja;
            racunVM.AutomobilDetalji = db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.KonjskeSnage + " ks " + db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.Gorivo + " " + db.Automobil.Include(i => i.AutomobilDetalji).Where(x => x.AutomobilID == model.AutomobilID).First().AutomobilDetalji.Pogon;

            if (opremaListaCijene.Count != 0)
            {
                racunVM.ListaOpremaCijene = opremaListaCijene;
                racunVM.ListaOpremaNaziv  = opremaListaNaziv;
            }

            Notifikacija notifikacija = new Notifikacija();

            notifikacija.DatumKreiranja = racunVM.DatumKreiranja;
            notifikacija.PosiljaocID    = model.KlijentID;
            notifikacija.PrimalacID     = model.UposlenikID;
            if (opremaListaNaziv.Count() > 0)
            {
                for (int i = 0; i < opremaListaNaziv.Count(); i++)
                {
                    notifikacija.Sadrzaj = racunVM.KlijentImePrezime + " kreira rezervaciju na dan " + racunVM.DatumKreiranja + " u trajanju od - " + racunVM.DatumPreuzimanja + " do - " + racunVM.DatumVracanja + " ." + " Automobil: " + racunVM.Automobil + ", dodatna oprema: " + racunVM.ListaOpremaNaziv[i];
                }
            }
            else
            {
                notifikacija.Sadrzaj = racunVM.KlijentImePrezime + " kreira rezervaciju na dan " + racunVM.DatumKreiranja + " u trajanju od - " + racunVM.DatumPreuzimanja + " do - " + racunVM.DatumVracanja + " ." + " Automobil: " + racunVM.Automobil + ", dodatna oprema: /";
            }
            db.Add(notifikacija);
            db.SaveChanges();

            TempData["porukaSuccess"] = "Uspjesno je kreirana rezervacija";
            return(View(racunVM));
        }
示例#10
0
        //public IActionResult IspisiPoruku()
        //{
        //    return View("Plati");
        //}
        public async Task <IActionResult> Plati(RacunVM x)
        {
            var   KorisnikID = _dbContext.RezervacijaKorisnici.FirstOrDefault(a => a.RezervacijaID == x.RezervacijaID).KorisnikID;
            Racun novi       = new Racun()
            {
                IznosRacuna = x.UkupanIznos
            };

            _dbContext.Add(novi);
            _dbContext.SaveChanges();
            if (x.nacinPlacanjaID == 1)
            {
                try
                {
                    StripeConfiguration.ApiKey = "sk_test_51IYDuMFF8QkBScNHXFHqiScdbz9rVOVrTC1qcBGfOAa9PcpJnyOu2vo4dwDGKwTyjsPqXV2R5xNHOZATHyDn6xMl001rwGzwGG";
                    var optionsToken = new TokenCreateOptions
                    {
                        Card = new CreditCardOptions
                        {
                            Number   = x.KreditnaKarticaBroj,
                            ExpMonth = x.MjesecIstekaKartice,
                            ExpYear  = x.GodinaIstekaKartice,
                            Cvc      = x.CVC
                        }
                    };
                    var   serviceToken = new TokenService();
                    Token stripeToken  = await serviceToken.CreateAsync(optionsToken);

                    var options = new ChargeCreateOptions
                    {
                        Amount      = (int)x.UkupanIznos,
                        Currency    = "usd",
                        Description = "test",
                        Source      = stripeToken.Id
                    };
                    var    service = new ChargeService();
                    Charge charge  = await service.CreateAsync(options);

                    if (charge.Paid)
                    {
                        var ima = _dbContext.KreditnaKartica.Where(d => d.KorisnikID == KorisnikID && d.BrojKreditneKartice == x.KreditnaKarticaBroj).FirstOrDefault();

                        if (ima == null)
                        {
                            var kartica = new KreditnaKartica()
                            {
                                BrojKreditneKartice = x.KreditnaKarticaBroj,
                                CVC = x.CVC,
                                MjesecIstekaKartice = x.MjesecIstekaKartice,
                                GodinaIstekaKartice = x.GodinaIstekaKartice,
                                KorisnikID          = KorisnikID
                            };
                            _dbContext.Add(kartica);
                            _dbContext.SaveChanges();
                            novi.KreditnaKarticaID = kartica.KreditnaKarticaID;

                            _dbContext.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            var rezervacija = _dbContext.Rezervacije.FirstOrDefault(a => a.RezervacijaID == x.RezervacijaID);

            rezervacija.RacunID             = novi.RacunID;
            rezervacija.NacinPlacanjaID     = x.nacinPlacanjaID;
            rezervacija.DatumVjencanja      = x.dtmDate;
            rezervacija.StatusRezervacijeID = 1;
            _dbContext.SaveChanges();
            return(View("Plati"));
        }