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); }
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)); } }
public RacunVM Insert(RacunVM request) { var temp = _mapper.Map <Database.Racun>(request); _db.Racun.Add(temp); _db.SaveChanges(); return(request); }
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); }
/// <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); }
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)); }
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)); } }
/// <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); }
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)); }
//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")); }