public void brisanjeRezervacije(object sender, EventArgs e)
 {
     if (lbTrenutneRezervacije.SelectedIndex == -1)
     {
         MessageBox.Show("Ne možete da brišete jer niste odabrali ni jednu rezervaciju!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     else
     {
         Object      rez         = lbTrenutneRezervacije.SelectedItem;
         Rezervacija rezervacija = rez as Rezervacija;
         rezervacija.brisanjeRezervacije();
     }
 }
        public void ispisCene(object sender, EventArgs e)
        {
            Boolean provera = ValidacijaPodataka.validacijaNovihDatuma(dtpDatumPreuzimanja.Value, dtpDatumVracanja.Value);

            if (provera == true)
            {
                txtUkupnaCena.Text = "0";
                Rezervacija r = new Rezervacija(idbrAutomobila, k.Idbr, dtpDatumPreuzimanja.Value, dtpDatumVracanja.Value, 0);
                cenaRez            = r.racunanjeCene(PomocnaListaPonuda, ref idbrAutomobila);
                txtUkupnaCena.Text = cenaRez.ToString();
            }
            else
            {
                txtUkupnaCena.Text = "0";
            }
        }
 public void dodajRezervaciju(object sender, EventArgs e)
 {
     if (cbMarka.Text != "" && cbModel.Text != "" && cbGodiste.Text != "" && cbKubikaza.Text != "" && cbKaroserija.Text != "" &&
         cbBrojVrata.Text != "" && cbGorivo.Text != "" && cbPogon.Text != "" && cbMenjac.Text != "" && cenaRez > 0)
     {
         Rezervacija r = new Rezervacija(idbrAutomobila, k.Idbr, dtpDatumPreuzimanja.Value, dtpDatumVracanja.Value, cenaRez);
         r.dodajNovuRezervaciju(PomocnaListaPonuda);
         this.Hide();
         kupac.Show();
     }
     else
     {
         MessageBox.Show("Niste popunili sva polja pri odabiru ili Datumi nisu validni ili" +
                         " već postoji Rezervacija za tražene Datume!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
 public void prikazRezervacijaPoIdbr(object sender, EventArgs e)
 {
     lbPrikazRezervacija.Items.Clear();
     if (cbSviIDBRKupca.Text != "")
     {
         Boolean            flag      = false;
         Rezervacija        pom       = null;
         Object             k         = cbSviIDBRKupca.SelectedItem;
         Kupac              kupac     = k as Kupac;
         int                idbrKupca = kupac.Idbr;
         List <Rezervacija> ListaRez  = new List <Rezervacija>();
         RadSaDatotekama.citanjeRezDatoteke(ref ListaRez);
         for (int i = 0; i < ListaRez.Count - 1; i++)
         {
             for (int j = i + 1; j < ListaRez.Count; j++)
             {
                 if ((ListaRez[i].IdbrAutomobila > ListaRez[j].IdbrAutomobila) ||
                     ((ListaRez[i].IdbrAutomobila == ListaRez[j].IdbrAutomobila) &&
                      ListaRez[i].DatumOd.Date > ListaRez[j].DatumOd.Date))
                 {
                     pom         = ListaRez[i];
                     ListaRez[i] = ListaRez[j];
                     ListaRez[j] = pom;
                 }
             }
         }
         for (int i = 0; i < ListaRez.Count; i++)
         {
             if (ListaRez[i].IdbrKupca == idbrKupca)
             {
                 lbPrikazRezervacija.Items.Add(ListaRez[i]);
                 flag = true;
             }
         }
         if (flag == false)
         {
             lbPrikazRezervacija.Items.Add("Ne postoji ni jedna Rezervacija za izabranog Kupca!");
         }
         ListaRez.Clear();
     }
     else
     {
         lbPrikazRezervacija.Items.Add("Trenutno nema ni jedne Rezervacije!");
     }
 }
        public static void azurirajKupca(int noviIdbr, ref Kupac kupac)
        {
            List <Korisnik>    ListaKorisnika = new List <Korisnik>();
            List <Rezervacija> ListaRez       = new List <Rezervacija>();
            Kupac   pomocni      = null;
            Boolean flagIdbr     = false;
            Boolean flagPod      = true;
            Boolean flagNoviIdbr = true;

            RadSaDatotekama.citanjeRezDatoteke(ref ListaRez);
            RadSaDatotekama.citanjeKorisnikDatoteke(ref ListaKorisnika);
            foreach (Korisnik k in ListaKorisnika)
            {
                if (k.Idbr == kupac.Idbr)
                {
                    pomocni  = (Kupac)k;
                    flagIdbr = true;
                }
            }
            if (flagIdbr == true)
            {
                foreach (Korisnik k in ListaKorisnika)
                {
                    Kupac ku = k as Kupac;
                    if (ku != pomocni)
                    {
                        if (k.KorisnickoIme == kupac.KorisnickoIme || k.Idbr == kupac.Idbr)
                        {
                            flagPod = false;
                        }
                        else if (ku is Kupac && (ku.Jmbg == kupac.Jmbg || ku.Telefon == kupac.Telefon))
                        {
                            flagPod = false;
                        }
                        else if (k.Idbr == noviIdbr)
                        {
                            flagNoviIdbr = false;
                        }
                    }
                }
                if (flagNoviIdbr == true)
                {
                    if (flagPod == true)
                    {
                        for (int i = 0; i < ListaRez.Count; i++)
                        {
                            if (ListaRez[i].IdbrKupca == kupac.Idbr)
                            {
                                Rezervacija nova = new Rezervacija(ListaRez[i].IdbrAutomobila, noviIdbr,
                                                                   ListaRez[i].DatumOd.Date, ListaRez[i].DatumDo.Date, ListaRez[i].Cena);
                                ListaRez[i] = nova;
                            }
                        }
                        for (int i = 0; i < ListaKorisnika.Count; i++)
                        {
                            if (ListaKorisnika[i].Idbr == kupac.Idbr)
                            {
                                kupac.Idbr        = noviIdbr;
                                ListaKorisnika[i] = kupac;
                            }
                        }
                        RadSaDatotekama.upisRezDatoteke(ref ListaRez);
                        RadSaDatotekama.upisKorisnikDatoteke(ref ListaKorisnika);
                        MessageBox.Show("Uspešno ste ažurirali podatke Kupca!");
                    }
                    else
                    {
                        MessageBox.Show("IDBR, Korisničko ime, JMBG ili Telefon već postoje u sistemu!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    MessageBox.Show("Novi IDBR koji ste uneli već postoji u sistemu!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("IDBR ne pripada ni jednom korisniku u sistemu!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            ListaKorisnika.Clear();
        }
        public void prikazPonuda(object sender, EventArgs e)
        {
            Boolean            flagProvera       = true;
            Rezervacija        pom               = null;
            List <Ponuda>      ListaPonuda       = new List <Ponuda>();
            List <Ponuda>      GlavnaListaPonuda = new List <Ponuda>();
            List <Rezervacija> ListaRez          = new List <Rezervacija>();

            RadSaDatotekama.citanjePonudeDatoteke(ref ListaPonuda);
            RadSaDatotekama.citanjeRezDatoteke(ref ListaRez);
            txtPrikazTermina.Text = "";
            PomocnaListaPonuda.Clear();
            if (cbMarka.Text != "" && cbModel.Text != "" && cbGodiste.Text != "" && cbKubikaza.Text != "" && cbKaroserija.Text != "" &&
                cbBrojVrata.Text != "" && cbGorivo.Text != "" && cbPogon.Text != "" && cbMenjac.Text != "")
            {
                //Kreiranje Liste Ponuda samo od potrebnih Ponuda
                for (int i = 0; i < ListaPonuda.Count; i++)
                {
                    for (int j = 0; j < GlavnaLista.Count; j++)
                    {
                        if (ListaPonuda[i].IdbrAutomobila == GlavnaLista[j].Idbr)
                        {
                            GlavnaListaPonuda.Add(ListaPonuda[i]);
                        }
                    }
                }
                //Sortiranje Liste Rezervacija
                for (int i = 0; i < ListaRez.Count - 1; i++)
                {
                    for (int j = i + 1; j < ListaRez.Count; j++)
                    {
                        if ((ListaRez[i].IdbrAutomobila > ListaRez[j].IdbrAutomobila) ||
                            ((ListaRez[i].IdbrAutomobila == ListaRez[j].IdbrAutomobila) &&
                             ListaRez[i].DatumOd.Date > ListaRez[j].DatumOd.Date))
                        {
                            pom         = ListaRez[i];
                            ListaRez[i] = ListaRez[j];
                            ListaRez[j] = pom;
                        }
                    }
                }
                //Ispis Ponuda
                for (int i = 0; i < GlavnaListaPonuda.Count; i++)
                {
                    flagProvera = true;
                    for (int j = 0; j < ListaRez.Count; j++)
                    {
                        if (GlavnaListaPonuda[i].IdbrAutomobila == ListaRez[j].IdbrAutomobila)
                        {
                            if (ListaRez[j].DatumOd.Date <GlavnaListaPonuda[i].DatumOd.Date &&
                                                          ListaRez[j].DatumDo.Date> GlavnaListaPonuda[i].DatumDo.Date)
                            {
                                flagProvera = false;
                                break;
                            }
                            else if (ListaRez[j].DatumOd.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumOd.Date <= GlavnaListaPonuda[i].DatumDo.Date &&
                                     ListaRez[j].DatumDo.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumDo.Date <= GlavnaListaPonuda[i].DatumDo.Date)
                            {
                                PomocnaListaPonuda.Add(new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, GlavnaListaPonuda[i].DatumOd.Date, ListaRez[j].DatumOd.Date.AddDays(-1)));
                                GlavnaListaPonuda[i] = new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, ListaRez[j].DatumDo.Date.AddDays(1), GlavnaListaPonuda[i].DatumDo.Date);

                                if (j == (ListaRez.Count - 1))
                                {
                                    PomocnaListaPonuda.Add(GlavnaListaPonuda[i]);
                                }
                                else if (ListaRez[j + 1].DatumOd.Date > GlavnaListaPonuda[i].DatumDo.Date)
                                {
                                    PomocnaListaPonuda.Add(GlavnaListaPonuda[i]);
                                }
                                else if (GlavnaListaPonuda[i].IdbrAutomobila != ListaRez[j + 1].IdbrAutomobila)
                                {
                                    PomocnaListaPonuda.Add(GlavnaListaPonuda[i]);
                                }
                                flagProvera = false;
                            }
                            else if (ListaRez[j].DatumOd.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumOd.Date <= GlavnaListaPonuda[i].DatumDo.Date &&
                                     !(ListaRez[j].DatumDo.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumDo.Date <= GlavnaListaPonuda[i].DatumDo.Date))
                            {
                                PomocnaListaPonuda.Add(new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, GlavnaListaPonuda[i].DatumOd.Date, ListaRez[j].DatumOd.Date.AddDays(-1)));
                                flagProvera = false;
                            }
                            else if (!(ListaRez[j].DatumOd.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumOd.Date <= GlavnaListaPonuda[i].DatumDo.Date) &&
                                     ListaRez[j].DatumDo.Date >= GlavnaListaPonuda[i].DatumOd.Date && ListaRez[j].DatumDo.Date <= GlavnaListaPonuda[i].DatumDo.Date)
                            {
                                GlavnaListaPonuda[i] = new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, ListaRez[j].DatumDo.Date.AddDays(1), GlavnaListaPonuda[i].DatumDo.Date);

                                if (j == (ListaRez.Count - 1))
                                {
                                    PomocnaListaPonuda.Add(new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, ListaRez[j].DatumDo.Date.AddDays(1), GlavnaListaPonuda[i].DatumDo.Date));
                                }
                                else if (ListaRez[j + 1].DatumOd.Date > GlavnaListaPonuda[i].DatumDo.Date)
                                {
                                    PomocnaListaPonuda.Add(new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, ListaRez[j].DatumDo.Date.AddDays(1), GlavnaListaPonuda[i].DatumDo.Date));
                                }
                                else if (GlavnaListaPonuda[i].IdbrAutomobila != ListaRez[j + 1].IdbrAutomobila)
                                {
                                    PomocnaListaPonuda.Add(new Ponuda(GlavnaListaPonuda[i].IdbrAutomobila, GlavnaListaPonuda[i].CenaPoDanu, ListaRez[j].DatumDo.Date.AddDays(1), GlavnaListaPonuda[i].DatumDo.Date));
                                }
                                flagProvera = false;
                            }
                        }
                    }
                    if (flagProvera == true)
                    {
                        PomocnaListaPonuda.Add(GlavnaListaPonuda[i]);
                    }
                }
                if (PomocnaListaPonuda.Count > 0)
                {
                    for (int i = 0; i < PomocnaListaPonuda.Count; i++)
                    {
                        if (PomocnaListaPonuda[i].DatumOd.Date <= PomocnaListaPonuda[i].DatumDo)
                        {
                            txtPrikazTermina.Text += "IDBR Automobila: " + PomocnaListaPonuda[i].IdbrAutomobila +
                                                     "   " + PomocnaListaPonuda[i].IspisPonude() + Environment.NewLine;
                        }
                    }
                }
                else
                {
                    txtPrikazTermina.Text = "Ne postoji ni jedna Ponuda za traženi Automobil!";
                }
            }
            else
            {
                MessageBox.Show("Niste popunili sva polja za odabir Automobila!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            ListaPonuda.Clear();
            ListaRez.Clear();
        }
        public void prikazPoMenjacu(object sender, EventArgs e)
        {
            Boolean flagGodiste    = false;
            Boolean flagKubikaza   = false;
            Boolean flagKaroserija = false;
            Boolean flagBrojVrata  = false;
            Boolean flagGorivo     = false;
            Boolean flagPogon      = false;

            Rezervacija.ocistiPolja(ref cbGodiste, ref cbKubikaza, ref cbKaroserija, ref cbBrojVrata, ref cbGorivo, ref cbPogon);
            for (int i = 0; i < GlavnaLista.Count; i++)
            {
                for (int j = i + 1; j < GlavnaLista.Count; j++)
                {
                    if (GlavnaLista[i].Godiste == GlavnaLista[j].Godiste)
                    {
                        flagGodiste = true;
                    }
                    if (GlavnaLista[i].Kubikaza == GlavnaLista[j].Kubikaza)
                    {
                        flagKubikaza = true;
                    }
                    if (GlavnaLista[i].Karoserija == GlavnaLista[j].Karoserija)
                    {
                        flagKaroserija = true;
                    }
                    if (GlavnaLista[i].BrojVrata == GlavnaLista[j].BrojVrata)
                    {
                        flagBrojVrata = true;
                    }
                    if (GlavnaLista[i].Gorivo == GlavnaLista[j].Gorivo)
                    {
                        flagGorivo = true;
                    }
                    if (GlavnaLista[i].Pogon == GlavnaLista[j].Pogon)
                    {
                        flagPogon = true;
                    }
                }
                if (flagGodiste == false)
                {
                    cbGodiste.Items.Add(GlavnaLista[i].Godiste);
                }
                if (flagKubikaza == false)
                {
                    cbKubikaza.Items.Add(GlavnaLista[i].Kubikaza);
                }
                if (flagKaroserija == false)
                {
                    cbKaroserija.Items.Add(GlavnaLista[i].Karoserija);
                }
                if (flagBrojVrata == false)
                {
                    cbBrojVrata.Items.Add(GlavnaLista[i].BrojVrata);
                }
                if (flagGorivo == false)
                {
                    cbGorivo.Items.Add(GlavnaLista[i].Gorivo);
                }
                if (flagPogon == false)
                {
                    cbPogon.Items.Add(GlavnaLista[i].Pogon);
                }
                flagGodiste = flagKubikaza = flagKaroserija = flagBrojVrata = flagGorivo = flagPogon = false;
            }
        }
        public void prikazOstalih(object sender, EventArgs e)
        {
            object           m               = cbModel.SelectedItem;
            string           model           = m as string;
            Boolean          flagGodiste     = false;
            Boolean          flagKubikaza    = false;
            Boolean          flagKaroserija  = false;
            Boolean          flagBrojVrata   = false;
            Boolean          flagGorivo      = false;
            Boolean          flagPogon       = false;
            Boolean          flagMenjac      = false;
            List <Automobil> ListaAutomobila = new List <Automobil>();

            RadSaDatotekama.citanjeAutomobilDatoteke(ref ListaAutomobila);
            Rezervacija.ocistiPolja(ref cbGodiste, ref cbKubikaza, ref cbKaroserija, ref cbBrojVrata, ref cbGorivo, ref cbPogon, ref cbMenjac);
            for (int i = 0; i < ListaAutomobila.Count; i++)
            {
                if (ListaAutomobila[i].Model == model)
                {
                    for (int j = i + 1; j < ListaAutomobila.Count; j++)
                    {
                        if (ListaAutomobila[i].Model == ListaAutomobila[j].Model)
                        {
                            if (ListaAutomobila[i].Godiste == ListaAutomobila[j].Godiste)
                            {
                                flagGodiste = true;
                            }
                            if (ListaAutomobila[i].Kubikaza == ListaAutomobila[j].Kubikaza)
                            {
                                flagKubikaza = true;
                            }
                            if (ListaAutomobila[i].Karoserija == ListaAutomobila[j].Karoserija)
                            {
                                flagKaroserija = true;
                            }
                            if (ListaAutomobila[i].BrojVrata == ListaAutomobila[j].BrojVrata)
                            {
                                flagBrojVrata = true;
                            }
                            if (ListaAutomobila[i].Gorivo == ListaAutomobila[j].Gorivo)
                            {
                                flagGorivo = true;
                            }
                            if (ListaAutomobila[i].Pogon == ListaAutomobila[j].Pogon)
                            {
                                flagPogon = true;
                            }
                            if (ListaAutomobila[i].VrstaMenjaca == ListaAutomobila[j].VrstaMenjaca)
                            {
                                flagMenjac = true;
                            }
                        }
                    }
                    if (flagGodiste == false)
                    {
                        cbGodiste.Items.Add(ListaAutomobila[i].Godiste);
                    }
                    if (flagKubikaza == false)
                    {
                        cbKubikaza.Items.Add(ListaAutomobila[i].Kubikaza);
                    }
                    if (flagKaroserija == false)
                    {
                        cbKaroserija.Items.Add(ListaAutomobila[i].Karoserija);
                    }
                    if (flagBrojVrata == false)
                    {
                        cbBrojVrata.Items.Add(ListaAutomobila[i].BrojVrata);
                    }
                    if (flagGorivo == false)
                    {
                        cbGorivo.Items.Add(ListaAutomobila[i].Gorivo);
                    }
                    if (flagPogon == false)
                    {
                        cbPogon.Items.Add(ListaAutomobila[i].Pogon);
                    }
                    if (flagMenjac == false)
                    {
                        cbMenjac.Items.Add(ListaAutomobila[i].VrstaMenjaca);
                    }
                    flagGodiste = flagKubikaza = flagKaroserija = flagBrojVrata = flagGorivo = flagPogon = flagMenjac = false;
                }
            }
            ListaAutomobila.Clear();
        }