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); }
private async Task LoadIzvjestaje(int?kompanijaId = null) { var listaRezervacija = await _rezervacijaService.Get <List <Model.Rezervacija> >(null); var listaKarata = listaRezervacija.Where(l => l.Otkazana == false).Select(x => x.Karta).Cast <Model.Karta>().ToList(); var listaPutnika = listaRezervacija.Where(l => l.Otkazana == false).Select(x => x.Putnik).Cast <Model.Putnik>().ToList(); int brojac = 0; foreach (var item in listaKarata) { var ang = await _angazujeService.GetById <Model.Angazuje>(item.AngazujeId); var searchCijena = new CijenaSearchRequest() { LinijaID = ang.LinijaId, KompanijaID = ang.Vozilo.KompanijaId }; var listaCijena = await _cijenaService.Get <List <Model.Cijena> >(searchCijena); var v = await _voziloService.GetById <Model.Vozilo>(ang.VoziloId); var l = await _linijeService.GetById <Model.Linija>(ang.LinijaId); Model.Kompanija k = null; var request = new IzvjestajRelacija(); decimal zbir = 0; if (kompanijaId.HasValue) { if (v.KompanijaId == kompanijaId.Value) { k = await _kompanijeService.GetById <Model.Kompanija>(kompanijaId.Value); } } else { k = await _kompanijeService.GetById <Model.Kompanija>(ang.Vozilo.KompanijaId.Value); } if (k != null) { request.BrojKarte = item.BrojKarte; request.DatumIzdavanja = item.DatumIzdavanja.ToString("dd.MM.yyyy"); request.Kompanija = k.Naziv; request.Linija = l.Naziv; request.Vozilo = v.Model; if (DateTime.Now.Date.Year - listaPutnika[brojac].DatumRodjenja.Value.Date.Year > 50) { zbir += listaCijena[0].Popust == 0 ? listaCijena[0].Iznos : listaCijena[0].Iznos - (listaCijena[0].Iznos * decimal.Parse(listaCijena[0].Popust.ToString())); } else { zbir += listaCijena[0].Iznos; } request.Cijena = zbir.ToString(); GlavnaLista.Add(request); ukupno += zbir; brojac++; } } dgvPodaci.DataSource = GlavnaLista; txtUkupno.Text = Math.Round(ukupno, 2).ToString(); }