Esempio n. 1
0
        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();
        }