Пример #1
0
        private void btnObrisiPonudu_Click(object sender, EventArgs e)
        {
            Ponuda temp = cbSvePonude.SelectedItem as Ponuda;

            if (temp != null)
            {
                DialogResult dialogResult = MessageBox.Show("Da li ste sigurni da želite da obrištete ponudu " + temp.ToString() + "?", "Obriši", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    listaPonuda.Remove(temp);
                    Administrator.SerijalizuPonude(listaPonuda);
                    MessageBox.Show("Ponuda izbrisana!");
                    cbSvePonude.Items.Clear();
                    cbSvePonude.Text = "";

                    listaPonuda = Administrator.DeserijalizujPonude();

                    foreach (Ponuda ponuda in listaPonuda)
                    {
                        if (!cbSvePonude.Items.Contains(ponuda.ToString()))
                        {
                            cbSvePonude.Items.Add(ponuda);
                        }
                    }
                }
                else if (dialogResult == DialogResult.No)
                {
                    MessageBox.Show("Ponuda nije izbrisana!");
                }
            }
            else
            {
                MessageBox.Show("Izaberite ponudu koju želite da obrišete!");
            }
        }
        private void btnObrisi_Click(object sender, EventArgs e)
        {
            Rezervacija izabranaRezervacija = (Rezervacija)lbListaRezervacija.SelectedItem;

            if (izabranaRezervacija == null)
            {
                MessageBox.Show("Izaberite rezervaciju koju želite da izbrišete!");
            }
            else
            {
                DialogResult dr = MessageBox.Show("Da li ste sigurni da želite da otkažete" +
                                                  " izabranu rezervaciju: " + izabranaRezervacija.ToString() + "?", "Otkazivanje rezervacije", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    listaRezervacija.Remove(izabranaRezervacija);

                    TimeSpan dani   = izabranaRezervacija.DatumRezDo - izabranaRezervacija.DatumRezOd;
                    int      brDana = (int)dani.Days + 1;

                    int cenaPoDanu = izabranaRezervacija.Cena / brDana;

                    Ponuda p = new Ponuda(izabranaRezervacija.IdAuta, izabranaRezervacija.DatumRezOd, izabranaRezervacija.DatumRezDo, cenaPoDanu);

                    listaPonuda.Add(p);

                    Administrator.SerijalizuPonude(listaPonuda);
                    Administrator.SerijalizuRezervacije(listaRezervacija);

                    listaRezervacija = Administrator.DeserijalizujRezervacije();
                    listaPonuda      = Administrator.DeserijalizujPonude();

                    lbListaRezervacija.Items.Clear();
                    foreach (Rezervacija r in listaRezervacija)
                    {
                        if (r.IdKupca == idUlogovanog)
                        {
                            if (!lbListaRezervacija.Items.Contains(r))
                            {
                                lbListaRezervacija.Items.Add(r);
                            }
                        }
                    }

                    MessageBox.Show("Rezervacija otkazana.");
                }
                else if (dr == DialogResult.No)
                {
                    MessageBox.Show("Rezervacija nije otkazana.");
                }
            }
        }
Пример #3
0
        private void cbPonude_SelectedIndexChanged(object sender, EventArgs e)
        {
            Ponuda ponuda = (Ponuda)cbPonude.SelectedItem;

            List <Automobil> auti = Administrator.DeserijalizujAute();
            Automobil        auto = null;

            foreach (Automobil a in auti)
            {
                if (ponuda.IdAuta == a.IdAutomobila)
                {
                    auto = a;
                }
            }

            txtAuto.Text     = auto.ispis();
            txtAuto.ReadOnly = true;

            dateOd.Value = ponuda.DatumOd;
            dateDo.Value = ponuda.DatumDo;

            txtCena.Text = ponuda.CenaPoDanu.ToString();
        }
        private void btnOtkazi_Click(object sender, EventArgs e)
        {
            izabranaRez = cbRezervacijeZaBrisanje.SelectedItem as Rezervacija;

            if (izabranaRez == null)
            {
                MessageBox.Show("Izaberite rezervaciju koju želite da otkažete!");
            }
            else
            {
                DialogResult dr = MessageBox.Show("Da li ste sigurni da želite da otkažete" +
                                                  " izabranu rezervaciju: " + izabranaRez.ToString() + "?", "Otkazivanje rezervacije", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    listaRezervacija.Remove(izabranaRez);

                    TimeSpan dani   = izabranaRez.DatumRezDo - izabranaRez.DatumRezOd;
                    int      brDana = (int)dani.Days + 1;

                    int cenaPoDanu = izabranaRez.Cena / brDana;

                    Ponuda p = new Ponuda(izabranaRez.IdAuta, izabranaRez.DatumRezOd, izabranaRez.DatumRezDo, cenaPoDanu);

                    listaPonuda.Add(p);

                    Administrator.SerijalizuPonude(listaPonuda);
                    Administrator.SerijalizuRezervacije(listaRezervacija);

                    listaRezervacija = Administrator.DeserijalizujRezervacije();
                    listaPonuda      = Administrator.DeserijalizujPonude();

                    cbRezervacijeZaBrisanje.Items.Clear();
                    cbAutomobili.Items.Clear();
                    cbRezervacijeZaAzuriranje.Items.Clear();
                    cbRezervacijeZaBrisanje.Text   = "";
                    cbAutomobili.Text              = "";
                    cbRezervacijeZaAzuriranje.Text = "";

                    foreach (Rezervacija r in listaRezervacija)
                    {
                        if (r.IdKupca == izabraniKupac.IdKupca)
                        {
                            if (!cbRezervacijeZaBrisanje.Items.Contains(r))
                            {
                                cbRezervacijeZaBrisanje.Items.Add(r);
                            }
                            if (!cbRezervacijeZaAzuriranje.Items.Contains(r))
                            {
                                cbRezervacijeZaAzuriranje.Items.Add(r);
                            }
                        }
                    }

                    foreach (Automobil a in Administrator.DeserijalizujAute())
                    {
                        if (!cbAutomobili.Items.Contains(a))
                        {
                            cbAutomobili.Items.Add(a.IdAutomobila);
                        }
                    }

                    MessageBox.Show("Rezervacija otkazana.");
                }
                else if (dr == DialogResult.No)
                {
                    MessageBox.Show("Rezervacija nije otkazana.");
                }
            }
        }
        private void btnRezervisi_Click(object sender, EventArgs e)
        {
            if (dostupnePonude.Count <= 0)
            {
                MessageBox.Show("Prvo izaberite automobil!");
            }
            else
            {
                Rezervacija rezervacija       = null;
                Ponuda      rezervisanaPonuda = null;

                // >= 0 kasnije ili isti dan
                // <= 0 ranije ili isti dan
                foreach (Ponuda ponuda in dostupnePonude)
                {
                    if (datePreuzimanje.Value.Date.CompareTo(ponuda.DatumOd.Date) >= 0 &&
                        dateVracanje.Value.Date.CompareTo(ponuda.DatumDo.Date) <= 0 &&
                        datePreuzimanje.Value.Date.CompareTo(dateVracanje.Value.Date) <= 0)
                    {
                        rezervacija = new Rezervacija(idIzabranogAuta, idUlogovanog, datePreuzimanje.Value, dateVracanje.Value, ukupnaCena);
                        listaRezervacija.Add(rezervacija);

                        Administrator.SerijalizuRezervacije(listaRezervacija);

                        rezervisanaPonuda = ponuda;

                        MessageBox.Show("Uspešno ste rezervisali automobil u terminu: "
                                        + datePreuzimanje.Value.ToShortDateString() + "-"
                                        + dateVracanje.Value.ToShortDateString()
                                        + " po ceni od " + ukupnaCena + "din");
                    }
                }

                if (rezervacija == null)
                {
                    MessageBox.Show("Vaši datumi se ne poklapaju ni sa jednim dostupnim terminom!");
                    return;
                }

                if (rezervisanaPonuda != null)
                {
                    listaPonuda.Remove(rezervisanaPonuda);

                    if (rezervacija.DatumRezOd.Date.CompareTo(rezervisanaPonuda.DatumOd.Date) == 0 &&
                        rezervacija.DatumRezDo.Date.CompareTo(rezervisanaPonuda.DatumDo.Date) != 0)
                    {
                        Ponuda p = new Ponuda(idIzabranogAuta, rezervacija.DatumRezDo.Date.AddDays(1),
                                              rezervisanaPonuda.DatumDo.Date, rezervisanaPonuda.CenaPoDanu);

                        listaPonuda.Add(p);
                        Administrator.SerijalizuPonude(listaPonuda);
                        listaPonuda = Administrator.DeserijalizujPonude();
                    }

                    else if (rezervacija.DatumRezDo.Date.CompareTo(rezervisanaPonuda.DatumDo.Date) == 0 &&
                             rezervacija.DatumRezOd.Date.CompareTo(rezervisanaPonuda.DatumOd.Date) != 0)
                    {
                        Ponuda p = new Ponuda(idIzabranogAuta, rezervisanaPonuda.DatumOd.Date,
                                              rezervacija.DatumRezOd.Date.AddDays(-1), rezervisanaPonuda.CenaPoDanu);

                        listaPonuda.Add(p);
                        Administrator.SerijalizuPonude(listaPonuda);
                        listaPonuda = Administrator.DeserijalizujPonude();
                    }

                    else if (rezervacija.DatumRezOd.Date.CompareTo(rezervisanaPonuda.DatumOd.Date) > 0 && rezervacija.DatumRezDo.Date.CompareTo(rezervisanaPonuda.DatumDo) < 0)
                    {
                        Ponuda p1 = new Ponuda(idIzabranogAuta,
                                               rezervisanaPonuda.DatumOd.Date,
                                               rezervacija.DatumRezOd.Date.AddDays(-1),
                                               rezervisanaPonuda.CenaPoDanu);

                        Ponuda p2 = new Ponuda(idIzabranogAuta,
                                               rezervacija.DatumRezDo.Date.AddDays(1),
                                               rezervisanaPonuda.DatumDo.Date,
                                               rezervisanaPonuda.CenaPoDanu);

                        listaPonuda.Add(p1);
                        listaPonuda.Add(p2);
                        Administrator.SerijalizuPonude(listaPonuda);
                        listaPonuda = Administrator.DeserijalizujPonude();
                    }

                    Administrator.SerijalizuPonude(listaPonuda);
                    frmVaseRezervacije frmVaseRez = new frmVaseRezervacije(idUlogovanog);
                    frmVaseRez.MdiParent = this.MdiParent;
                    Hide();
                    frmVaseRez.Show();
                    Close();
                }
            }
        }
Пример #6
0
        private void btnAzuriraj_Click(object sender, EventArgs e)
        {
            Ponuda stara = (Ponuda)cbPonude.SelectedItem;

            int novaCenaPoDanu = 0;

            if (!string.IsNullOrEmpty(txtCena.Text))
            {
                char[] niz    = txtCena.Text.ToCharArray();
                bool   greska = false;
                foreach (char karakter in niz)
                {
                    if (!char.IsDigit(karakter))
                    { // ako jedan od karaktera nije broj
                        greska = true;
                    }
                }
                if (greska)
                {
                    MessageBox.Show("Cenu unesite brojevima, ne slovima!");
                    return;
                }
                else
                {
                    novaCenaPoDanu = int.Parse(txtCena.Text);
                }
            }
            else
            {
                MessageBox.Show("Niste uneli cenu po danu!");
                return;
            }

            DateTime noviSelektovaniDatumOd;
            DateTime noviSelektovaniDatumDo;

            int provera = dateOd.Value.Date.CompareTo(DateTime.Now.Date);

            if (provera < 0) // ako je selektovaniDatumOD ranije od današnjeg dana
            {
                MessageBox.Show("Ne možete izabrati datum koji je već prošao!");
                return;
            }
            else
            {
                noviSelektovaniDatumOd = dateOd.Value;
            }

            provera = dateDo.Value.Date.CompareTo(noviSelektovaniDatumOd.Date);
            if (provera < 0) // ako je selektovani datum DO ranije od datuma OD
            {
                MessageBox.Show("Datum do kojeg traje ponuda mora biti posle datuma od kada ponuda počinje!");
                return;
            }
            else
            {
                noviSelektovaniDatumDo = dateDo.Value;
            }

            Ponuda azurirana = new Ponuda(stara.IdAuta, noviSelektovaniDatumOd, noviSelektovaniDatumDo, novaCenaPoDanu);

            listaPonuda.Remove(stara); // obriši staru (zbog provere vremena)

            int brojac     = 0;
            int brojPonuda = 0;

            foreach (Ponuda p in listaPonuda)
            {
                if (stara.IdAuta == p.IdAuta) // ako za auto postoje ponude
                {
                    int proveri1 = azurirana.DatumOd.Date.CompareTo(p.DatumOd.Date);
                    int proveri2 = azurirana.DatumDo.Date.CompareTo(p.DatumDo.Date);
                    int proveri3 = azurirana.DatumOd.Date.CompareTo(p.DatumDo.Date);
                    int proveri4 = azurirana.DatumDo.Date.CompareTo(p.DatumOd.Date);

                    // da li nova ponuda ne preklapa termin ponude iz liste
                    if ((proveri1 < 0 && proveri2 < 0 && proveri3 < 0 && proveri4 < 0) ||
                        (proveri1 > 0 && proveri2 > 0 && proveri3 > 0 && proveri4 > 0))
                    {
                        brojac++;
                    }
                    brojPonuda++;
                }
            }

            if (brojac != brojPonuda)
            {
                listaPonuda.Add(stara);
                Administrator.SerijalizuPonude(listaPonuda);
                MessageBox.Show("Vremenski period nove ponude je već sadržan u nekoj od postojećih ponuda!");
                return;
            }
            else
            {
                listaPonuda.Add(azurirana);
                Administrator.SerijalizuPonude(listaPonuda);
                MessageBox.Show("Uspešno izmenjena ponuda!");

                cbPonude.Items.Clear();
                cbPonude.Text = "";
                listaPonuda   = Administrator.DeserijalizujPonude();

                foreach (Ponuda pon in listaPonuda)
                {
                    if (!cbPonude.Items.Contains(pon.ToString()))
                    {
                        cbPonude.Items.Add(pon);
                    }
                }
            }
        }
Пример #7
0
        private void btnDodajPonudu_Click(object sender, EventArgs e)
        {
            int      selektovaniIdAuta = 0;
            DateTime selektovaniDatumOd;
            DateTime selektovaniDatumDo;
            int      cenaPoDanu = 0;

            if (cbPonudaIdAuta.SelectedItem != null)
            {
                selektovaniIdAuta = (int)cbPonudaIdAuta.SelectedItem;
            }
            else
            {
                MessageBox.Show("Niste izabrali automobil!");
                return;
            }

            if (!string.IsNullOrEmpty(txtCenaPoDanu.Text))
            {
                char[] niz    = txtCenaPoDanu.Text.ToCharArray();
                bool   greska = false;
                foreach (char karakter in niz)
                {
                    if (!char.IsDigit(karakter))   // ako jedan od karaktera nije broj
                    {
                        greska = true;
                    }
                }
                if (greska)
                {
                    MessageBox.Show("Cenu unesite brojevima, ne slovima!");
                    return;
                }
                else
                {
                    cenaPoDanu = int.Parse(txtCenaPoDanu.Text);
                }
            }
            else
            {
                MessageBox.Show("Niste uneli cenu po danu!");
                return;
            }

            int provera = dateOd.Value.Date.CompareTo(DateTime.Now.Date);

            if (provera < 0) // ako je selektovani datum OD ranije od današnjeg dana
            {
                MessageBox.Show("Ne možete izabrati datum koji je već prošao!");
                return;
            }
            else
            {
                selektovaniDatumOd = dateOd.Value;
            }

            provera = dateDo.Value.Date.CompareTo(selektovaniDatumOd.Date);
            if (provera < 0) // ako je selektovani datum DO ranije od datuma OD
            {
                MessageBox.Show("Datum do kojeg traje ponuda mora biti posle datuma od kada ponuda počinje!");
                return;
            }
            else
            {
                selektovaniDatumDo = dateDo.Value;
            }

            Ponuda novaPounda = new Ponuda(selektovaniIdAuta, selektovaniDatumOd, selektovaniDatumDo, cenaPoDanu);

            int brojac     = 0;
            int brojPonuda = 0;

            foreach (Ponuda p in listaPonuda)
            {
                if (selektovaniIdAuta == p.IdAuta) // ako za auto postoje ponude
                {
                    int proveri1 = novaPounda.DatumOd.Date.CompareTo(p.DatumOd.Date);
                    int proveri2 = novaPounda.DatumDo.Date.CompareTo(p.DatumDo.Date);
                    int proveri3 = novaPounda.DatumOd.Date.CompareTo(p.DatumDo.Date);
                    int proveri4 = novaPounda.DatumDo.Date.CompareTo(p.DatumOd.Date);

                    // ako za taj auto, već postoji ponuda koja pokriva vremenski period nove ponude
                    if ((proveri1 < 0 && proveri2 < 0 && proveri3 < 0 && proveri4 < 0) ||
                        (proveri1 > 0 && proveri2 > 0 && proveri3 > 0 && proveri4 > 0))
                    {
                        brojac++;
                    }
                    brojPonuda++;
                }
            }

            if (brojac != brojPonuda)
            {
                MessageBox.Show("Vremenski period nove ponude je već sadržan u nekoj od postojećih ponuda!");
                return;
            }
            else
            {
                listaPonuda.Add(novaPounda);
                Administrator.SerijalizuPonude(listaPonuda);
                MessageBox.Show("Uspešno dodata ponuda!");

                cbPonudaIdAuta.Text = "";
                txtCenaPoDanu.Text  = "";

                cbSvePonude.Items.Clear();
                cbSvePonude.Text = "";

                listaPonuda = Administrator.DeserijalizujPonude();

                foreach (Ponuda ponuda in listaPonuda)
                {
                    if (!cbSvePonude.Items.Contains(ponuda.ToString()))
                    {
                        cbSvePonude.Items.Add(ponuda);
                    }
                }
            }
        }