Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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 }));
        }