private void platiKartuButton_Click(object sender, EventArgs e)
        {
            string ime         = imeTextBox.Text;
            string prezime     = prezimeTextBox.Text;
            string oib         = oibTextBox.Text;
            string brojKartice = brojKarticeTextBox.Text.Replace(" ", "");

            bool provjeraPodataka = ProvjeriPodatke(ime, prezime, oib, brojKartice);

            if (provjeraPodataka == true)
            {
                bool  provjeraOIB     = (RepozitorijSkyFlyReservation.prijavljeniKorisnik.OIBKorisnika == oib) ? true : false;
                bool  provjeraKartice = ProvjeriRacun(brojKartice);
                bool  provjeraStanja  = ProvjeriStanje();
                Racun racun           = RepozitorijSkyFlyReservation.DohvatiRacunKorisnika(RepozitorijSkyFlyReservation.prijavljeniKorisnik.KorisnikId);

                if (provjeraOIB == false)
                {
                    MessageBox.Show("Unijeli ste pogrešan OIB.");
                    return;
                }
                if (provjeraKartice == false)
                {
                    MessageBox.Show("Unijeli ste pogrešan broj kartice.");
                    return;
                }
                if (provjeraStanja == false)
                {
                    MessageBox.Show($"Nedovoljan iznos na računu za provođenje transakcije.\nStanje racuna: {racun.StanjeRacuna} HRK");
                    return;
                }
                else
                {
                    int numAffectedRowsInsert = RepozitorijSkyFlyReservation.DodajKupnjuKarte(selektiraniLet, selektiranoSjedalo, RepozitorijSkyFlyReservation.prijavljeniKorisnik.KorisnikId);
                    int numAffectedRowsUpdate = RepozitorijSkyFlyReservation.AzurirajBrojSlobodnihMjesta(selektiraniLet);
                    int numAffectedRowsUpdateStanjeRacunaPlatitelja = RepozitorijSkyFlyReservation.AzurirajStanjeRacunaPlatitelja(racun, selektiraniLet);
                    int numAffectedRowsUpdateStanjeRacunaPrimatelja = RepozitorijSkyFlyReservation.AzurirajStanjeRacunaPrimatelja(selektiraniLet);

                    if (numAffectedRowsInsert > 0 && numAffectedRowsUpdate > 0 && numAffectedRowsUpdateStanjeRacunaPlatitelja > 0 && numAffectedRowsUpdateStanjeRacunaPrimatelja > 0)
                    {
                        MessageBox.Show($"Uspješno ste kupili kartu za sjedalo {selektiranoSjedalo.OznakaSjedala} na letu {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma}.\n\nNa Vašu e-mail adresu poslani su detalji o kupljenoj karti.");
                        PošaljiKartu(selektiraniLet, selektiranoSjedalo);
                        this.Close();
                    }
                }
            }
        }
예제 #2
0
        private void rezervirajSjedaloButton_Click(object sender, EventArgs e)
        {
            if ((selektiraniLet.DatumPolaska.Date.Day - DateTime.Now.Date.Day) < 3 && (selektiraniLet.DatumDolaska.Date.Month == DateTime.Now.Date.Month))
            {
                MessageBox.Show($"Rok za rezervaciju karata za let {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma} je istekao.");
                return;
            }
            if (odabranoSjedalo == null)
            {
                MessageBox.Show("Niste odabrali sjedalo za koje želite rezervirati kartu.");
                return;
            }
            if (odabranoSjedalo.BackColor == Color.Red)
            {
                MessageBox.Show($"Sjedalo {odabranoSjedalo.Name} na letu {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma} je zauzeto.");
                return;
            }
            else
            {
                Sjedalo sjedalo = RepozitorijSkyFlyReservation.DohvatiSjedalo(odabranoSjedalo.Name);

                Rezervacija rezervacija = new Rezervacija()
                {
                    LetRezervacije          = selektiraniLet,
                    KorisnikRezervacije     = RepozitorijSkyFlyReservation.prijavljeniKorisnik,
                    RezerviranoSjedalo      = sjedalo,
                    DatumVrijemeRezervacije = DateTime.Now
                };

                int numAffectedRowsInsert = RepozitorijSkyFlyReservation.DodajRezervacijuKarte(rezervacija);
                int numAffectedRowsUpdate = RepozitorijSkyFlyReservation.AzurirajBrojSlobodnihMjesta(selektiraniLet);

                if (numAffectedRowsInsert > 0 && numAffectedRowsUpdate > 0)
                {
                    MessageBox.Show($"Uspješno ste rezervirali sjedalo {sjedalo.OznakaSjedala} na letu {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma}.\n\nNa Vašu e-mail adresu poslani su podaci za plaćanje.");
                    PošaljiObavijest(selektiraniLet, sjedalo);
                    OsvjeziSjedalaUAvionu(RepozitorijSkyFlyReservation.DohvatiRezerviranaSjedala(selektiraniLet));
                }
                else
                {
                    MessageBox.Show("Dogodila se pogreška kod rezervacije sjedala.Rezervacija nije evidentirana.");
                    this.Close();
                    return;
                }
            }
        }