private async void btnKartaFilter_Click(object sender, EventArgs e) { var x = new Model.Karta() { DatumIzdavanja = dtpKarta.Value }; var result = await _karta.Get <Model.Karta>(x); dgrKaraPregled.DataSource = result; dgrKaraPregled.MaximumSize = MaximumSize; }
public async Task <Model.Karta> KreirajKartu(KartaUpsertRequest novaKarta) { var resKarta = await _kartaService.Insert(novaKarta); Model.Karta karta = null; if (resKarta.IsSuccessStatusCode) { karta = JsonConvert.DeserializeObject <Model.Karta>(resKarta.Content.ReadAsStringAsync().Result); } return(karta); }
private async Task ProvjeriUsloveZaIzvjestaj(Model.Karta karta, int angazujeId, Model.Putnik putnik) { var ang = await _angazujeService.GetById <Model.Angazuje>(angazujeId); var kompanija = await _kompanijeService.GetById <Model.Kompanija>(ang.Vozilo.KompanijaId.Value); var cijena = await _cijenaService.Get <List <Model.Cijena> >(new CijenaSearchRequest() { KompanijaID = kompanija.Id, LinijaID = karta.Angazuje.LinijaId }); var izvjestaj = new IzvjestajRelacija() { BrojKarte = karta.BrojKarte, DatumIzdavanja = karta.DatumIzdavanja.ToString("dd.MM.yyyy"), Linija = ang.Linija.Naziv, Kompanija = kompanija.Naziv, Vozilo = ang.Vozilo.Model }; decimal zbir = 0; // poredi je li putnik zadovoljio uslove za popust ukoliko ga kompanija izdaje if (DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year > 50 || DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year < 18) { izvjestaj.Cijena = cijena[0].Popust == 0 ? cijena[0].Iznos.ToString() : Math.Round((cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.Value.ToString()))), 2).ToString(); zbir += cijena[0].Popust == 0 ? cijena[0].Iznos : cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.ToString())); } else { izvjestaj.Cijena = cijena[0].Iznos.ToString(); zbir += cijena[0].Iznos; } GlavnaLista.Add(izvjestaj); ukupno += Math.Round(zbir, 2); }
public async Task <bool> NovaKartaIRezervacija(Model.Karta karta1, Model.Sjediste s) { var reze = new RezervacijaUpsertRequest(); var kartaRes = await _kartaService.GetById(karta1.Id); if (kartaRes.IsSuccessStatusCode) { var karta = JsonConvert.DeserializeObject <Model.Karta>(kartaRes.Content.ReadAsStringAsync().Result); var cijenaRes = await _cijenaService.Get(new CijenaSearchRequest() { KompanijaID = s.Vozilo.KompanijaId, LinijaID = karta.Angazuje.LinijaId }); if (cijenaRes.IsSuccessStatusCode) { var resultC = cijenaRes.Content.ReadAsStringAsync().Result; var cijena = JsonConvert.DeserializeObject <List <Model.Cijena> >(resultC); if (karta != null) { reze.KartaId = karta.Id; reze.DatumIsteka = karta.DatumIzdavanja.AddDays(1); } else { return(false); } reze.DatumKreiranja = DateTime.Now; reze.Otkazana = false; var resPutnik = await _putnikService.Get(new PutnikSearchRequest() { KorisnickoIme = APIService.Username }); if (resPutnik.IsSuccessStatusCode) { var putnik = JsonConvert.DeserializeObject <List <Model.Putnik> >(resPutnik.Content.ReadAsStringAsync().Result); reze.PutnikId = putnik[0].Id; if (DateTime.Now.Date.Year - putnik[0].DatumRodjenja.Value.Date.Year > 50 || DateTime.Now.Date.Year - putnik[0].DatumRodjenja.Value.Date.Year < 18) { reze.CijenaSaPopustom = cijena[0].Popust == 0 ? cijena[0].Iznos : cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.Value.ToString())); } else { reze.CijenaSaPopustom = cijena[0].Iznos; } } else { return(false); } TempData["poruka"] = "Uspješno ste rezervisali"; await _rezervacijeService.Insert(reze); return(true); } return(false); } return(false); }
public async Task <IActionResult> Rezervisi(int sjedisteId, DateTime datum, TimeSpan vrijeme) { Model.Karta karta = null; Model.Sjediste s = null; Model.Karta kreiranaNovaKarta = null; var resSjediste = await _sjedistaService.GetById(sjedisteId); if (resSjediste.IsSuccessStatusCode) { var resultS = resSjediste.Content.ReadAsStringAsync().Result; s = JsonConvert.DeserializeObject <Model.Sjediste>(resultS); var searchKarta = new KartaSearchRequest() { PoAngzuje = false, PoVozilu = true, Red = s.Red, Kolona = s.Kolona, PoDatumu = true, DatumIzdavanja = datum, IzSjedista = true, PoVremenu = true, VrijemePolaska = vrijeme }; var resKarta = await _kartaService.Get(searchKarta); if (resKarta.IsSuccessStatusCode) { var resultK = resKarta.Content.ReadAsStringAsync().Result; var karte = JsonConvert.DeserializeObject <List <Model.Karta> >(resultK); if (karte.Count > 0) { karta = karte[0]; } var reze = new RezervacijaUpsertRequest(); if (karta == null) { /* OVO SAM ZADNJE DODAO -----------------------------------------*/ var searchKarta2 = new KartaSearchRequest() { PoAngzuje = false, PoVozilu = false, DatumIzdavanja = datum, VrijemePolaska = vrijeme }; var karteRes = await _kartaService.Get(searchKarta2); if (karteRes.IsSuccessStatusCode) { var lista = JsonConvert.DeserializeObject <List <Model.Karta> >(karteRes.Content.ReadAsStringAsync().Result); if (lista.Count > 0) { if (datum.Date > DateTime.Now.Date) { var upsert = new KartaUpsertRequest() { AngazujeId = lista[0].AngazujeId, DatumIzdavanja = datum, VrijemePolaska = vrijeme, VrijemeDolaska = lista[0].VrijemeDolaska, BrojKarte = GenerisiBrojKarte(9, true), SjedisteId = sjedisteId }; var nova = await _kartaService.Insert(upsert); if (nova.IsSuccessStatusCode) { kreiranaNovaKarta = JsonConvert.DeserializeObject <Model.Karta>(nova.Content.ReadAsStringAsync().Result); if (await NovaKartaIRezervacija(kreiranaNovaKarta, s)) { TempData["poruka"] = "Uspješno ste rezervisali sjedište"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } } else { TempData["poruka"] = "Trenutno karta nije kreirana"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } } else { TempData["poruka"] = "Niste u mogućnosti da rezervišete"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } } else { TempData["poruka"] = "Trenutno karta nije kreirana"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } } else { TempData["poruka"] = "Trenutno karta nije kreirana"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } /*-----------------------------------------------------------------------*/ } else if (karta.DatumIzdavanja.Date < DateTime.Now.Date) { TempData["poruka"] = "Niste u mogučnosti rezervisati"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } else if (karta.DatumIzdavanja.Date == DateTime.Now.Date && karta.VrijemePolaska < DateTime.Now.TimeOfDay) { TempData["poruka"] = "Vrijeme koje ste izabrali je isteklo"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } else { if (await NovaKartaIRezervacija(karta, s)) { TempData["poruka"] = "Uspješno ste rezervisali sjedište!"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } else { TempData["poruka"] = "Niste u mogučnosti rezervisati"; return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); } } } } return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme })); }