private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            List <Rezervacije> rezervacije = RadSaDatotekom.Procitaj <Rezervacije>("rezervacije.bin");

            //proveravamo validnost datuma
            if (dateTimePicker1.Value < DateTime.Now)
            {
                MessageBox.Show("Ne mozete birati datum iz proslosti.");
                dateTimePicker1.Value = DateTime.Now;
            }
            //
            //proveravamo da li je termin zauzet
            else
            {
                foreach (Rezervacije rezervacija in rezervacije)
                {
                    if (rezervacija.IdAutaRez == this.a.Id)
                    {
                        if (dateTimePicker1.Value > rezervacija.DatumDo && dateTimePicker1.Value < rezervacija.DatumDo)
                        {
                            MessageBox.Show("Termin je vec zauzet");
                            dateTimePicker1.Value = DateTime.Now;
                            break;
                        }
                    }
                }
            }
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <Automobil> automobili    = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            string           izabranaMarka = comboBox1.Text;

            // kada se selektuje combobox za marku aktivira se combobox za modele
            comboBox2.Enabled = true;

            //pravljenje stringa za modele
            List <string> modeliIzabraneMarke = new List <string>();

            foreach (Automobil auto in automobili)
            {
                if (auto.Marka == izabranaMarka)
                {
                    if (modeliIzabraneMarke.Contains(auto.Model) == false)
                    {
                        modeliIzabraneMarke.Add(auto.Model);
                    }
                }
            }
            foreach (Control c in this.Controls)
            {
                if (c is ComboBox)
                {
                    c.Text = "";
                }
            }
            comboBox2.Items.Clear();
            foreach (string model in modeliIzabraneMarke)
            {
                comboBox2.Items.Add(model);
            }
        }
        private void AdminDodavanjeAutomobila_Load(object sender, EventArgs e)
        {
            //na load popunjavamo datagridview automobilima
            List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            dataGridView1.DataSource = automobili;
            dataGridView1.Refresh();
        }
 public FormRezervacije(Label l)
 {
     this.k = new Kupac();
     InitializeComponent();
     label15.Text = l.Text;
     List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
     List <string>    marke      = new List <string>();
 }
        private void button2_Click(object sender, EventArgs e)
        {
            bool nastavi = true;

            //ako je datumDo veci od datumOd prijavice gresku
            if (dateTimePicker2.Value < dateTimePicker1.Value)
            {
                nastavi = false;
                MessageBox.Show("Netacni datumi rezervacije");
            }

            //ako je sve ok i textbox za cenu ima vrednost
            if (textBox10.Text.Trim().Length != 0 && nastavi)
            {
                List <Rezervacije> rezervacijeUpis = RadSaDatotekom.Procitaj <Rezervacije>("rezervacije.bin");
                List <Kupac>       kupci           = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");
                List <Automobil>   automobili      = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
                //izvlacimo id kupca da bi smo ga iskorisntili u kreiranju rezervacije
                for (int i = 0; i < kupci.Count; i++)
                {
                    if (kupci[i].KorisnickoIme == label15.Text)
                    {
                        k.Id = kupci[i].Id;
                    }
                }

                //a onda izvlacimo i id automobila
                for (int i = 0; i < automobili.Count; i++)
                {
                    if (automobili[i].Marka == comboBox1.Text && automobili[i].Model == comboBox2.Text && automobili[i].Godiste == Convert.ToInt32(comboBox3.Text) && automobili[i].Kubikaza == Convert.ToInt32(comboBox4.Text) && automobili[i].Karoserija == comboBox5.Text && automobili[i].BrojVrata == Convert.ToInt32(comboBox6.Text) && automobili[i].Gorivo == comboBox7.Text && automobili[i].Pogon == comboBox8.Text && automobili[i].VrstaMenjaca == comboBox9.Text)
                    {
                        a.Id = automobili[i].Id;
                    }
                }

                //pravimo rezervaciju
                Rezervacije r = new Rezervacije(a.Id, k.Id, dateTimePicker1.Value.Date, dateTimePicker2.Value.Date, Convert.ToInt32(double.Parse(textBox10.Text)));
                rezervacijeUpis.Add(r);
                RadSaDatotekom.Upisi(rezervacijeUpis, "rezervacije.bin");
                MessageBox.Show("Rezervacija je uspesno izvrsena.");

                //nakon uspesne rezervacije zatvara je forma za rezervacije i otvara se pocetna forma za kupca
                for (int i = 0; i < kupci.Count; i++)
                {
                    if (kupci[i].KorisnickoIme == label15.Text)
                    {
                        FormKupac formKupac = new FormKupac(kupci[i]);
                        formKupac.Show();
                        this.Close();
                    }
                }
                this.Close();
            }
            else
            {
                MessageBox.Show("Nije moguce napraviti rezervaciju");
            }
        }
Exemple #6
0
        private void KupacAdmin_Load(object sender, EventArgs e)
        {
            //izlistavamo neregistrovane kupce i sortiramo ih
            List <Kupac> kupci = RadSaDatotekom.Procitaj <Kupac>("kupci.bin");

            for (int i = 0; i < kupci.Count - 1; i++)
            {
                for (int j = i + 1; j < kupci.Count; j++)
                {
                    if (kupci[i].Id > kupci[j].Id)
                    {
                        Kupac pom = kupci[i];
                        kupci[i] = kupci[j];
                        kupci[j] = pom;
                    }
                }
            }
            dataGridView1.DataSource = kupci;
            //formatiramo datum u datagridview
            dataGridView1.Columns["DatumRodjenja"].DefaultCellStyle.Format = "dd.MM.yyyy";
            dataGridView1.Refresh();


            //citamo registrovane kupce i sortiramo ih
            List <Kupac> kupciReg = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");

            for (int i = 0; i < kupciReg.Count - 1; i++)
            {
                for (int j = i + 1; j < kupciReg.Count; j++)
                {
                    if (kupciReg[i].Id > kupciReg[j].Id)
                    {
                        Kupac pom = kupciReg[i];
                        kupciReg[i] = kupciReg[j];
                        kupciReg[j] = pom;
                    }
                }
            }

            dataGridView2.DataSource = kupciReg;
            //formatiramo datum u datagridview
            dataGridView2.Columns["DatumRodjenja"].DefaultCellStyle.Format = "dd.MM.yyyy";
            try
            {
                dataGridView2.Rows[0].Selected = false;
            }
            catch (Exception ex) {
            }
            dataGridView2.Refresh();
        }
        //PROMENOM SELEKTOVANOG ID ISPISUJEMO AUTOMOBIL U TEXTBOX PORED
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            for (int i = 0; i < automobili.Count; i++)
            {
                if (automobili[i].Id.ToString() == comboBox1.Text)
                {
                    textBox2.Text = "";
                    textBox2.Text = automobili[i].ToString();
                    break;
                }
            }
        }
        //BRISANJE AUTOMOBILA
        private void button2_Click(object sender, EventArgs e)
        {
            List <Automobil> auta = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            int rowIndex          = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < auta.Count; i++)
            {
                if (auta[i].Id == int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    auta.RemoveAt(i);
                }
            }
            RadSaDatotekom.Upisi(auta, "automobili.bin");
            this.AdminDodavanjeAutomobila_Load(this, e);
        }
        //BRISANJE PONUDE
        private void button2_Click(object sender, EventArgs e)
        {
            List <Ponuda> ponuda   = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            int           rowIndex = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < ponuda.Count; i++)
            {
                if (ponuda[i].IdAuta == int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    ponuda.RemoveAt(i);
                }
            }
            RadSaDatotekom.Upisi(ponuda, "ponuda.bin");
            this.PonudaAdminForm_Load(this, e);
        }
        //PRI POKRETANJU DODAJEMO ID AUTOMOBILA U COMBO
        private void PonudaAdminForm_Load(object sender, EventArgs e)
        {
            List <Ponuda>    ponudePom  = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            comboBox1.Items.Clear();
            for (int i = 0; i < automobili.Count; i++)
            {
                comboBox1.Items.Add(automobili[i].Id);
            }
            dataGridView1.DataSource = ponudePom;
            dataGridView1.Columns["datumOd"].DefaultCellStyle.Format = "dd.MM.yyyy";
            dataGridView1.Columns["datumDo"].DefaultCellStyle.Format = "dd.MM.yyyy";
            dataGridView1.Refresh();
        }
Exemple #11
0
        //PRIKAZUJE AUTO KADA SE KLIKNE NA AUTOMOBIL U LEGENDI
        private void prikaziAuto(object sender, EventArgs e)
        {
            Label l = sender as Label;

            string[]         reci = l.Text.Split(' ');
            List <Automobil> auta = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            foreach (Automobil a in auta)
            {
                if (a.Id == int.Parse(reci[2]))
                {
                    MessageBox.Show(a.ToString());
                }
            }
        }
Exemple #12
0
        //ODBIJANJE NALOGA
        private void button2_Click(object sender, EventArgs e)
        {
            List <Kupac> kupci    = RadSaDatotekom.Procitaj <Kupac>("kupci.bin");
            int          rowIndex = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < kupci.Count; i++)
            {
                if (kupci[i].Id == int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    kupci.RemoveAt(i);
                }
            }

            RadSaDatotekom.Upisi(kupci, "kupci.bin");
            this.KupacAdmin_Load(this, e);
        }
Exemple #13
0
        //BRISANJE REGISTROVANOG KORISNIKA
        private void button6_Click(object sender, EventArgs e)
        {
            List <Kupac> kupciReg = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");

            int rowIndex = dataGridView2.CurrentCell.RowIndex;

            for (int i = 0; i < kupciReg.Count; i++)
            {
                if (kupciReg[i].Id == int.Parse(dataGridView2.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    kupciReg.RemoveAt(i);
                }
            }
            RadSaDatotekom.Upisi(kupciReg, "kupciReg.bin");
            MessageBox.Show("Registrovani korisnik je uspesno uklonjen.");
            this.KupacAdmin_Load(this, e);
        }
        // DODAVANJE NA IZMENU
        private void button3_Click(object sender, EventArgs e)
        {
            List <Ponuda> ponude   = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            int           rowIndex = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < ponude.Count; i++)
            {
                if (ponude[i].IdAuta.ToString() == dataGridView1.Rows[rowIndex].Cells[0].Value.ToString())
                {
                    comboBox1.Text        = ponude[i].IdAuta.ToString();
                    textBox1.Text         = ponude[i].CenaPoDanu.ToString();
                    dateTimePicker1.Value = ponude[i].DatumOd;
                    dateTimePicker2.Value = ponude[i].DatumDo;
                    button4.Visible       = true;
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            //ako se podaci iz comboboxova poklapaju i automobila iz liste, dodajemo id vrednost automobilu
            for (int i = 0; i < automobili.Count; i++)
            {
                if (automobili[i].Marka == comboBox1.Text && automobili[i].Model == comboBox2.Text && automobili[i].Godiste == Convert.ToInt32(comboBox3.Text) && automobili[i].Kubikaza == Convert.ToInt32(comboBox4.Text) && automobili[i].Karoserija == comboBox5.Text && automobili[i].BrojVrata == Convert.ToInt32(comboBox6.Text) && automobili[i].Gorivo == comboBox7.Text && automobili[i].Pogon == comboBox8.Text && automobili[i].VrstaMenjaca == comboBox9.Text)
                {
                    a.Id = automobili[i].Id;
                }
            }
            textBox1.Text = "";
            bool inicijalizuj = true;

            //proveramo da li su sva polja popunjena
            foreach (Control c in this.Controls)
            {
                if (c.Text == "" && c is ComboBox)
                {
                    MessageBox.Show("Niste popunili sva polja.");
                    inicijalizuj = false;
                    break;
                }
            }

            //ako su popunjena sva polja
            if (inicijalizuj)
            {
                //pravi se novi auto
                Automobil auto = new Automobil(a.Id, comboBox1.Text, comboBox2.Text, Convert.ToInt32(comboBox3.Text), Convert.ToInt32(comboBox4.Text), comboBox9.Text, comboBox7.Text, comboBox8.Text, comboBox5.Text, Convert.ToInt32(comboBox6.Text));
                try //hvata se izuzetak, koji nastaje ukoliko neko promeni tekst u comboboxu
                {
                    //funkcija inicijalizuj auto dobija kao argument napravljeni auto
                    this.inicijalizacijaAutomobila(auto);
                }
                catch (Exception exc)
                {
                    MessageBox.Show("Uneti podaci nisu tacni.");
                }

                //funkcija koja ispisuje slobodne termine
                this.ispisiDatume();
            }
        }
Exemple #16
0
        //IZMENA KUPCA
        private void button3_Click(object sender, EventArgs e)
        {
            List <Kupac> kupci    = RadSaDatotekom.Procitaj <Kupac>("kupci.bin");
            List <Kupac> kupciReg = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");

            if (dataGridView1.SelectedRows.Count > 0)
            {
                dataGridView2.Rows[0].Selected = false;
                int rowIndex = dataGridView1.CurrentCell.RowIndex;

                for (int i = 0; i < kupci.Count; i++)
                {
                    if (kupci[i].Id.ToString() == dataGridView1.Rows[rowIndex].Cells[0].Value.ToString())
                    {
                        textBox2.Text         = kupci[i].Ime;
                        textBox3.Text         = kupci[i].Prezime;
                        textBox4.Text         = kupci[i].Jmbg;
                        dateTimePicker1.Value = kupci[i].DatumRodjenja;
                        textBox5.Text         = kupci[i].BrojTelefona;
                        textBox6.Text         = kupci[i].KorisnickoIme;
                        textBox7.Text         = kupci[i].Lozinka;
                    }
                }
            }
            else if (dataGridView2.SelectedRows.Count > 0)
            {
                dataGridView1.Rows[0].Selected = false;
                int rowIndex2 = dataGridView2.CurrentCell.RowIndex;

                for (int j = 0; j < kupciReg.Count; j++)
                {
                    if (kupciReg[j].Id.ToString() == dataGridView2.Rows[rowIndex2].Cells[0].Value.ToString())
                    {
                        textBox2.Text         = kupciReg[j].Ime;
                        textBox3.Text         = kupciReg[j].Prezime;
                        textBox4.Text         = kupciReg[j].Jmbg;
                        dateTimePicker1.Value = kupciReg[j].DatumRodjenja;
                        textBox5.Text         = kupciReg[j].BrojTelefona;
                        textBox6.Text         = kupciReg[j].KorisnickoIme;
                        textBox7.Text         = kupciReg[j].Lozinka;
                    }
                }
            }
        }
        //BRISE SE STARI AUTO, A DODAJE SE NOVI
        private void button4_Click(object sender, EventArgs e)
        {
            List <Automobil> auta = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            int rowIndex          = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < auta.Count; i++)
            {
                if (auta[i].Id == int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    Automobil autoPom = new Automobil(auta[i].Id, textBox2.Text, textBox3.Text, int.Parse(textBox4.Text), int.Parse(textBox5.Text), comboBox1.Text, comboBox2.Text, comboBox3.Text, comboBox4.Text, int.Parse(comboBox5.Text));
                    auta.RemoveAt(i);
                    auta.Insert(i, autoPom);
                }
            }
            RadSaDatotekom.Upisi(auta, "automobili.bin");
            MessageBox.Show("Automobil je uspesno izmenjen!");
            button4.Visible = false;
            this.AdminDodavanjeAutomobila_Load(this, e);
        }
Exemple #18
0
        private void AdminStatistika_Load(object sender, EventArgs e)
        {
            //punjenje comboboxa na osnovu ponuda
            List <string> rbrMesesa = new List <string>();
            List <Ponuda> ponude    = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");

            foreach (Ponuda ponuda in ponude)
            {
                if (!rbrMesesa.Contains(ponuda.DatumOd.Month.ToString()))
                {
                    rbrMesesa.Add(ponuda.DatumOd.Month.ToString());
                }
            }

            foreach (string mesec in rbrMesesa)
            {
                comboBox1.Items.Add(mesec);
            }
        }
Exemple #19
0
        //proverava se chekirani radiobutton i na osnovu njega se bira da li se filtriraju rezervacije po kupcu ili automobilu
        private void button3_Click(object sender, EventArgs e)
        {
            List <Rezervacije> rezervacije2 = RadSaDatotekom.Procitaj <Rezervacije>("rezervacije.bin");
            List <Automobil>   automobili   = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            if (radioButton1.Checked)
            {
                List <Rezervacije> rezPom = new List <Rezervacije>();

                for (int i = 0; i < rezervacije2.Count; i++)
                {
                    if (comboBox1.Text == rezervacije2[i].IdKupca.ToString())
                    {
                        rezPom.Add(rezervacije2[i]);
                    }
                }
                if (rezPom.Count < 1)
                {
                    MessageBox.Show("Ne postoje rezervacije za zeljenu osobu");
                }
                dataGridView2.DataSource = rezPom;
                dataGridView2.Refresh();
            }

            if (radioButton2.Checked)
            {
                List <Rezervacije> rezPom2 = new List <Rezervacije>();
                for (int i = 0; i < rezervacije.Count; i++)
                {
                    if (comboBox2.Text == rezervacije[i].IdAutaRez.ToString())
                    {
                        rezPom2.Add(rezervacije[i]);
                    }
                }
                if (rezPom2.Count < 1)
                {
                    MessageBox.Show("Ne postoje rezervacije za zeljeni automobil");
                }
                dataGridView2.DataSource = rezPom2;
                dataGridView2.Refresh();
            }
        }
        //DODAVANJE PONUDE
        private void button1_Click(object sender, EventArgs e)
        {
            List <Ponuda> ponude    = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            Regex         regexCena = new Regex(@"^\d+$");
            bool          sveOKe    = false;

            if (dateTimePicker2.Value < dateTimePicker1.Value)
            {
                sveOKe = false;
                MessageBox.Show("Datumi nisu validni!");
            }
            else
            {
                sveOKe = true;
            }
            if (!regexCena.IsMatch(textBox1.Text))
            {
                MessageBox.Show("Morate uneti broj za cenu!");
                sveOKe = false;
                return;
            }


            if (sveOKe)
            {
                try
                {
                    Ponuda p = new Ponuda(int.Parse(comboBox1.Text), dateTimePicker1.Value, dateTimePicker2.Value, Convert.ToInt32(textBox1.Text));
                    ponude.Add(p);
                }
                catch (Exception)
                {
                    MessageBox.Show("Uneti podaci nisu validni");
                    return;
                }

                RadSaDatotekom.Upisi(ponude, "ponuda.bin");
                MessageBox.Show("Ponuda je uspesno dodata.");
                this.PonudaAdminForm_Load(this, e);
            }
        }
        //POPUNJAVANJE TEXTBOKSOVA ZA IZMENU
        private void button3_Click(object sender, EventArgs e)
        {
            List <Automobil> auta = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            int rowIndex          = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < auta.Count; i++)
            {
                if (auta[i].Id == int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()))
                {
                    textBox2.Text   = auta[i].Marka;
                    textBox3.Text   = auta[i].Model;
                    textBox4.Text   = auta[i].Godiste.ToString();
                    textBox5.Text   = auta[i].Kubikaza.ToString();
                    comboBox1.Text  = auta[i].Pogon;
                    comboBox2.Text  = auta[i].VrstaMenjaca;
                    comboBox3.Text  = auta[i].Karoserija;
                    comboBox4.Text  = auta[i].Gorivo;
                    comboBox5.Text  = auta[i].BrojVrata.ToString();
                    button4.Visible = true;
                }
            }
        }
        private void FormRezervacije_Load(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls)
            {
                if (c is Label)
                {
                    c.Font = new Font(c.Font.FontFamily, 10);
                }
                if (c is Button)
                {
                    c.Font = new Font(c.Font.FontFamily, 10, FontStyle.Bold);
                }
                if (c is ComboBox)
                {
                    if (c.Name != comboBox1.Name)
                    {
                        c.Enabled = false;
                    }
                }
            }

            //citamo automobile i njhove marke smestamo u listu stringova
            List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            List <string>    marke      = new List <string>();

            for (int i = 0; i < automobili.Count; i++)
            {
                if (marke.Contains(automobili[i].Marka) == false)
                {
                    marke.Add(automobili[i].Marka);
                }
            }

            for (int i = 0; i < marke.Count; i++)
            {
                comboBox1.Items.Add(marke[i]);
            }
        }
Exemple #23
0
        //DODAVANJE NALOGA
        private void button1_Click(object sender, EventArgs e)
        {
            List <Kupac> kupci    = RadSaDatotekom.Procitaj <Kupac>("kupci.bin");
            List <Kupac> kupciReg = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");

            try
            {
                int rowIndex = dataGridView1.CurrentCell.RowIndex;
                for (int i = 0; i < kupci.Count; i++)
                {
                    if (kupci[i].Id.ToString() == dataGridView1.Rows[rowIndex].Cells[0].Value.ToString())
                    {
                        kupciReg.Add(kupci[i]);
                        kupci.RemoveAt(i);
                    }
                }
                RadSaDatotekom.Upisi(kupciReg, "kupciReg.bin");
                RadSaDatotekom.Upisi(kupci, "kupci.bin");
            }
            catch (Exception exc) {
            }
            this.KupacAdmin_Load(this, e);
        }
        //CUVANJE IZMENE
        private void button4_Click(object sender, EventArgs e)
        {
            List <Ponuda> ponude   = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            int           rowIndex = dataGridView1.CurrentCell.RowIndex;

            for (int i = 0; i < ponude.Count; i++)
            {
                MessageBox.Show(ponude[i].IdAuta.ToString());
                MessageBox.Show(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString());
                if (ponude[i].IdAuta.ToString() == dataGridView1.Rows[rowIndex].Cells[0].Value.ToString())
                {
                    MessageBox.Show("Radi if za izmenu!");
                    ponude.RemoveAt(i);
                    Ponuda p = new Ponuda(int.Parse(comboBox1.Text), dateTimePicker1.Value, dateTimePicker2.Value, Convert.ToInt32(textBox1.Text));
                    ponude.Insert(i, p);
                }
            }
            RadSaDatotekom.Upisi(ponude, "ponuda.bin");
            MessageBox.Show("Ponuda je uspesno izmenjena!");
            button4.Visible = false;
            button3.Visible = true;
            this.PonudaAdminForm_Load(this, e);
        }
Exemple #25
0
        private void button2_Click(object sender, EventArgs e)
        {
            bool flagUsername = true;

            //proveravamo da li uneseni podaci pripadaju administratoru
            List <Administrator> administratori = RadSaDatotekom.Procitaj <Administrator>("administratori.bin");

            foreach (Administrator admin in administratori)
            {
                if (admin.KorisnickoIme == textBox1.Text && admin.Lozinka == textBox2.Text)
                {
                    FormAdminPocetna fap = new FormAdminPocetna(textBox1);
                    fap.Show();
                    flagUsername = false;
                }
            }

            //proveravamo da li uneseni podaci pripadaju registrovanom kupcu
            List <Kupac> kupci = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");

            foreach (Kupac k in kupci)
            {
                if (k.KorisnickoIme == textBox1.Text && k.Lozinka == textBox2.Text)
                {
                    FormKupac fk = new FormKupac(k);
                    fk.Show();
                    flagUsername = false;
                }
            }

            //ako nesto nije OK onda se izbacuje poruka
            if (flagUsername)
            {
                MessageBox.Show("Korisnicko ime ili lozinka su netacni ili admin jos uvek nije odobrio nalog!");
            }
        }
        private void inicijalizacijaAutomobila(Automobil auto)
        {
            //citanje datoteke automobili.bin
            List <Automobil> auta      = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
            List <Automobil> autaIspis = new List <Automobil>();

            for (int i = 0; i < auta.Count; i++)
            { //prolazak kroz auta, ako se auto poklapa sa nekim iz liste, dodajemo ga u listu
                if (auta[i].Id == auto.Id)
                {
                    autaIspis.Add(auta[i]);
                }
            }
            if (autaIspis.Count == 1)
            {
                this.a = autaIspis[0]; //ako postoji samo jedno takvo auto, a inicijalizujemo njime.
            }
            else
            { //ako ih postoji vise, inicijalizujemo ih nekim od ponudjenih, jer su podaci potpuno isti
                Random rnd   = new Random();
                int    rndBr = rnd.Next(0, auta.Count);
                this.a = autaIspis[rndBr];
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //provere
            bool unetoSve = true;

            if (textBox2.Text.Length < 1)
            {
                MessageBox.Show("Niste uneli marku!");
                textBox2.BackColor = Color.Red;
                unetoSve           = false;
            }
            else if (!System.Text.RegularExpressions.Regex.IsMatch(textBox2.Text, @"^[a-zA-Z]+$"))
            {
                MessageBox.Show("Morate uneti samo karaktere kod marke automobila!");
                unetoSve = false;
            }


            if (textBox3.Text.Length < 1)
            {
                MessageBox.Show("Niste uneli model!");
                textBox3.BackColor = Color.Red;
                unetoSve           = false;
            }



            if (textBox4.Text.Length < 1)
            {
                MessageBox.Show("Niste uneli godiste automobila!");
                textBox4.BackColor = Color.Red;
                unetoSve           = false;
            }
            else if (!System.Text.RegularExpressions.Regex.IsMatch(textBox4.Text, "^[0-9]*$"))
            {
                MessageBox.Show("Godiste mora biti celi broj!");
                unetoSve = false;
            }
            else if (System.Text.RegularExpressions.Regex.IsMatch(textBox4.Text, "^[0-9]*$"))
            {
                if (Int32.Parse(textBox4.Text) <= 1950)
                {
                    MessageBox.Show("Ne koristimo automobile starije od 1950 godista!");
                    unetoSve = false;
                }
                else if (Int32.Parse(textBox4.Text) > 2019)
                {
                    MessageBox.Show("Ne mozete dodati automobil koji jos nije proizveden!");
                    unetoSve = false;
                }
            }



            if (textBox5.Text.Length < 1)
            {
                MessageBox.Show("Niste uneli kubikazu!");
                textBox5.BackColor = Color.Red;
                unetoSve           = false;
            }
            else if (!System.Text.RegularExpressions.Regex.IsMatch(textBox5.Text, "^[0-9]*$"))
            {
                MessageBox.Show("Kubikaza mora biti celi broj!");
                unetoSve = false;
            }
            else if (System.Text.RegularExpressions.Regex.IsMatch(textBox5.Text, "^[0-9]*$"))
            {
                if (Int32.Parse(textBox5.Text) < 1200)
                {
                    MessageBox.Show("Ne primamo automobile ispod 1200 kubika!");
                    unetoSve = false;
                }
                else if (Int32.Parse(textBox5.Text) > 5000)
                {
                    MessageBox.Show("Ne primamo automobile sa vise od 5000 kubika!");
                    unetoSve = false;
                }
            }



            //ako je sve uneto kako treba
            if (unetoSve)
            {
                List <Automobil> automobili = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");
                int maxID = 0;
                //dodeljuje se id automobilu da se ne bi poklapao sa drugim id drugih automobila
                for (int i = 0; i < automobili.Count; i++)
                {
                    if (automobili[i].Id > maxID)
                    {
                        maxID = automobili[i].Id;
                    }
                }

                //pa se pravi automobil kome se prosledjuje dodeljen Id
                try
                {
                    Automobil a = new Automobil(maxID + 1, textBox2.Text, textBox3.Text, Int32.Parse(textBox4.Text), Int32.Parse(textBox5.Text), comboBox1.Text, comboBox2.Text, comboBox3.Text, comboBox4.Text, Int32.Parse(comboBox5.Text));
                    //proveravamo da li automobil postoji
                    foreach (Automobil auto in automobili)
                    {
                        if (auto.Equals(a))
                        {
                            MessageBox.Show("Automobil vec postoji!");
                            return;
                        }
                    }
                    automobili.Add(a);
                }
                catch (Exception) {
                    MessageBox.Show("Uneti podaci nisu validni");
                    return;
                }

                MessageBox.Show("Uspesno ste dodali automobil!");
                //upis i ponovno ispisivanje na ekranu

                RadSaDatotekom.Upisi(automobili, "automobili.bin");
                this.AdminDodavanjeAutomobila_Load(this, e);
            }
        }
        private void ispisiDatume()
        {
            List <Rezervacije> rezervacije = RadSaDatotekom.Procitaj <Rezervacije>("rezervacije.bin");
            //pomocna lista za smestaj rezervacija
            List <Rezervacije> rezZaIspis = new List <Rezervacije>();

            //Citamo sve rezervacije i ako se id poklapaju rezervacija se upisuje u pomocnu listu rezervacija
            foreach (Rezervacije rezerevacija in rezervacije)
            {
                if (rezerevacija.IdAutaRez == this.a.Id)
                {
                    if (rezZaIspis.Contains(rezerevacija) == false)
                    {
                        rezZaIspis.Add(rezerevacija);
                    }
                }
            }

            //ako ima vise rezervacija one se sortiraju po datumu
            if (rezZaIspis.Count > 1)
            {
                for (int i = 0; i < rezZaIspis.Count - 1; i++)
                {
                    for (int j = i + 1; j < rezZaIspis.Count; j++)
                    {
                        if (rezZaIspis[i].DatumOd > rezZaIspis[j].DatumOd)
                        {
                            Rezervacije r = rezZaIspis[i];
                            rezZaIspis[i] = rezZaIspis[j];
                            rezZaIspis[j] = r;
                        }
                    }
                }
            }


            List <Ponuda> ponude = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
            List <Ponuda> ponudeZaTrazeniAuto = new List <Ponuda>();

            //proveravamo da li je trazeni automobil u ponudi
            foreach (Ponuda ponuda in ponude)
            {
                if (ponuda.IdAuta == this.a.Id)
                {
                    ponudeZaTrazeniAuto.Add(ponuda);
                    //prikaz ponude u textboxu
                    textBox1.Text = ponuda.IdAuta + " -> " + ponuda.DatumOd.ToShortDateString() + " - " + ponuda.DatumDo.ToShortDateString() + Environment.NewLine;
                }
            }

            // pitamo koliko ima ponuda za trazeni auto, i iz njih citamo minimalni i maximalni datum
            if (ponudeZaTrazeniAuto.Count >= 1)
            {
                DateTime datumMin = ponudeZaTrazeniAuto[0].DatumOd;
                DateTime datumMax = ponudeZaTrazeniAuto[0].DatumDo;

                for (int i = 0; i < ponudeZaTrazeniAuto.Count; i++)
                {
                    if (datumMin > ponudeZaTrazeniAuto[i].DatumOd)
                    {
                        datumMin = ponudeZaTrazeniAuto[i].DatumOd;
                    }
                }

                for (int i = 0; i < ponudeZaTrazeniAuto.Count; i++)
                {
                    if (datumMax < ponudeZaTrazeniAuto[i].DatumDo)
                    {
                        datumMax = ponudeZaTrazeniAuto[i].DatumDo;
                    }
                }

                textBox1.Text = "";
                //ispis slobodnih termina
                foreach (Ponuda ponuda in ponudeZaTrazeniAuto)
                {
                    textBox1.Text += ponuda.ToString();
                }
                textBox1.Text += Environment.NewLine + "Slobodni termini: " + Environment.NewLine;
                if (rezZaIspis.Count > 0)
                {
                    for (int i = 0; i < rezZaIspis.Count; i++)
                    {
                        if (rezZaIspis[i].DatumOd >= datumMin && rezZaIspis[i].DatumDo <= datumMax)
                        {
                            textBox1.Text += datumMin.ToShortDateString() + " - " + rezZaIspis[i].DatumOd.ToShortDateString() + Environment.NewLine;
                            datumMin       = rezZaIspis[i].DatumDo;
                            if (i == rezZaIspis.Count - 1 && rezZaIspis[i].DatumDo <= datumMax)
                            {
                                textBox1.Text += rezZaIspis[i].DatumDo.ToShortDateString() + " - " + datumMax.ToShortDateString() + Environment.NewLine;
                            }
                        }
                    }
                }
                else
                {
                    textBox1.Text += datumMin.ToShortDateString() + " - " + datumMax.ToShortDateString() + Environment.NewLine;
                }
            }
            else
            {
                MessageBox.Show("Ne postoje ponude za trazeni auto.");
            }
        }
        //REGISTRACIJA
        private void button1_Click(object sender, EventArgs e)
        {
            //AKO JE unetoSve==true tek se onda korisnik moze registrovati
            bool unetoSve = true;

            //PROVERE
            if (textBox1.Text.Count() < 1)
            {
                MessageBox.Show("Niste uneli ime!");
                textBox1.BackColor = Color.Red;
                unetoSve           = false;
            }
            else if (!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, @"^[a-zA-Z]+$"))
            {
                MessageBox.Show("Morate uneti samo karaktere");
            }

            string dateAndTime = dateTimePicker1.Value.ToShortDateString();

            string[] listDate      = dateAndTime.Split('.');
            Int32    godinaProvera = Int32.Parse(listDate[2]);

            if ((DateTime.Now.Year - godinaProvera) < 18)
            {
                MessageBox.Show("Morate imati vise od 18 godina da bi ste se registrovali");
                unetoSve = false;
            }
            Int32 mesecInt = Int32.Parse(listDate[1]);
            Int32 danInt   = Int32.Parse(listDate[0]);

            if (mesecInt < 10)
            {
                listDate[1] = "0" + listDate[1];
            }
            if (danInt < 10)
            {
                listDate[0] = "0" + listDate[0];
            }
            string godinaSplitZbog3 = listDate[2].Substring(1, 3);
            string dan    = textBox4.Text.Substring(0, 2);
            string mesec  = textBox4.Text.Substring(2, 2);
            string godina = textBox4.Text.Substring(4, 3);

            if (listDate[0] != dan || listDate[1] != mesec || godinaSplitZbog3 != godina)
            {
                MessageBox.Show("Datum rodjenja i podaci iz JMBG se ne poklapaju!");
                unetoSve = false;
            }


            if (textBox2.Text.Length < 1)
            {
                MessageBox.Show("Niste uneli prezime!");
                textBox2.BackColor = Color.Red;
                unetoSve           = false;
            }
            else if (!System.Text.RegularExpressions.Regex.IsMatch(textBox2.Text, @"^[a-zA-Z]+$"))
            {
                MessageBox.Show("Morate uneti samo karaktere");
            }


            if (textBox4.Text.Length < 1)
            {
                MessageBox.Show("Morate uneti JMBG!");
                textBox4.BackColor = Color.Red;
                unetoSve           = false;
            }

            if ((textBox4.Text.Length == 13) && (System.Text.RegularExpressions.Regex.IsMatch(textBox4.Text, "^[0-9]*$")))
            {
            }
            else
            {
                MessageBox.Show("JMBG mora sadrzati samo brojeve od 13 cifara!");
                unetoSve = false;
            }

            if (textBox5.Text.Count() < 1)
            {
                MessageBox.Show("Morate uneti broj telefona!");
                textBox5.BackColor = Color.Red;
                unetoSve           = false;
            }
            if (textBox5.Text.Length > 8 && textBox5.Text.Length <= 11)
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(textBox5.Text, "^[0-9]+$"))
                {
                }
                else
                {
                    MessageBox.Show("Uneti broj nije validan -> Moraju biti uneseni samo brojevi!");
                    unetoSve = false;
                }
            }
            else
            {
                MessageBox.Show("Uneti broj je izvan opsega -> Broj cifara telefona mora biti izmedju 8 i 11!");
                unetoSve = false;
            }
            if (textBox6.Text.Count() < 1)
            {
                MessageBox.Show("Morate uneti korisnicko ime!");
                textBox6.BackColor = Color.Red;
                unetoSve           = false;
            }
            if (textBox3.Text.Count() < 1)
            {
                MessageBox.Show("Morate uneti lozinku!");
                textBox3.BackColor = Color.Red;
                unetoSve           = false;
            }
            if (textBox7.Text.Count() < 1)
            {
                MessageBox.Show("Morate ponoviti lozinku!");
                textBox7.BackColor = Color.Red;
                unetoSve           = false;
            }
            if (textBox3.Text != textBox7.Text)
            {
                MessageBox.Show("Ponovljena lozinka nije jednaka prethodno unesenoj lozinci!");
                unetoSve = false;
            }

            if (textBox3.Text.Length < 5)
            {
                MessageBox.Show("Lozinka mora imati minimum 5 karaktera");
                unetoSve = false;
            }

            //AKO JE SVE POPUNJENO
            if (unetoSve == true)
            {
                List <Kupac> kupci           = RadSaDatotekom.Procitaj <Kupac>("kupci.bin");
                List <Kupac> kupciReg        = RadSaDatotekom.Procitaj <Kupac>("kupciReg.bin");
                List <Kupac> zajednickaLista = new List <Kupac>();
                //DODAJEMO REGISTROVANE I NEREGISTROVANE KUPCE U ZAJEDNICKU LISTU DA BI ODREDILI JEDINSTVENI ID ZA KUPCA KOJI SE REGISTRUJE
                for (int i = 0; i < kupci.Count; i++)
                {
                    zajednickaLista.Add(kupci[i]);
                }
                for (int j = 0; j < kupciReg.Count; j++)
                {
                    zajednickaLista.Add(kupciReg[j]);
                }

                int maxID = 0;
                for (int i = 0; i < zajednickaLista.Count; i++)
                {
                    if (zajednickaLista[i].Id > maxID)
                    {
                        maxID = zajednickaLista[i].Id;
                    }
                }

                //PRAVIMO KUPCA I DODELJUJEMO MU JEDINSTVENI ID
                Kupac k = new Kupac(maxID + 1, textBox1.Text, textBox2.Text, textBox4.Text, dateTimePicker1.Value, textBox5.Text, textBox6.Text, textBox7.Text);


                bool sveOK = true;
                //PROVERAVAMO DA LI JE KORISNICKO IME KOD NEREGISTROVANIH KUPACA ZAUZETO
                for (int i = 0; i < kupci.Count; i++)
                {
                    if (kupci[i].KorisnickoIme == k.KorisnickoIme)
                    {
                        MessageBox.Show("Korisnicko ime je vec zauzeto");
                        textBox6.BackColor = Color.Red;
                        sveOK = false;
                    }
                }

                //PROVERAVAMO DA LI JE KORISNICKO IME KOD REGISTROVANIH KUPACA ZAUZETO
                for (int j = 0; j < kupciReg.Count; j++)
                {
                    if (kupciReg[j].KorisnickoIme == k.KorisnickoIme)
                    {
                        MessageBox.Show("Korisnicko ime je vec zauzeto");
                        textBox6.BackColor = Color.Red;
                        sveOK = false;
                    }
                }

                //PROVERAVAMO DA LI JE KORISNICKO IME KOD ADMINA ZAUZETO
                List <Administrator> administratori = RadSaDatotekom.Procitaj <Administrator>("administratori.bin");
                for (int i = 0; i < administratori.Count; i++)
                {
                    if (administratori[i].KorisnickoIme == k.KorisnickoIme)
                    {
                        MessageBox.Show("Korisnicko ime je vec zauzeto");
                        textBox6.BackColor = Color.Red;
                        sveOK = false;
                    }
                }

                //AKO JE SVE OK, DODAJEMO KUPCA
                if (sveOK)
                {
                    MessageBox.Show("Uspesno ste se registrovali, samo morate sacekati da admin odobri nalog");
                    kupci.Add(k);
                    RadSaDatotekom.Upisi(kupci, "kupci.bin");
                }
            }
        }
        private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
        {
            bool nastavi = true;
            List <Rezervacije> rezervacije = RadSaDatotekom.Procitaj <Rezervacije>("rezervacije.bin");
            List <Automobil>   automobili  = RadSaDatotekom.Procitaj <Automobil>("automobili.bin");

            //ovde trazimo id automobila koji prosledjujemo objektu
            for (int i = 0; i < automobili.Count; i++)
            {
                if (automobili[i].Marka == comboBox1.Text && automobili[i].Model == comboBox2.Text && automobili[i].Godiste == Convert.ToInt32(comboBox3.Text) && automobili[i].Kubikaza == Convert.ToInt32(comboBox4.Text) && automobili[i].Karoserija == comboBox5.Text && automobili[i].BrojVrata == Convert.ToInt32(comboBox6.Text) && automobili[i].Gorivo == comboBox7.Text && automobili[i].Pogon == comboBox8.Text && automobili[i].VrstaMenjaca == comboBox9.Text)
                {
                    a.Id = automobili[i].Id;
                }
            }

            //opet proveravamo validnost
            if (dateTimePicker2.Value < DateTime.Now)
            {
                dateTimePicker1.Value = DateTime.Now;
                nastavi = false;
            }

            else
            {
                //proveravamo da li je termin zauzet
                foreach (Rezervacije rezervacija in rezervacije)
                {
                    if (rezervacija.IdAutaRez == this.a.Id)
                    {
                        if (dateTimePicker2.Value > rezervacija.DatumOd && dateTimePicker2.Value < rezervacija.DatumDo)
                        {
                            MessageBox.Show("Termin je vec zauzet");
                            dateTimePicker1.Value = DateTime.Now;
                            nastavi = false;
                        }
                    }
                }
            }

            //ako je sve OK
            if (nastavi)
            {
                //trazimo broj dana izmedju datuma
                double        brojDana = (dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).TotalDays;
                double        cena     = 0;
                List <Ponuda> ponude   = RadSaDatotekom.Procitaj <Ponuda>("ponuda.bin");
                //prvo pitamo da li je uneti datum u jednom mesecu
                //trazimo ponudu za taj auto u jednom i pravimo cenu
                if (dateTimePicker1.Value.Month == dateTimePicker2.Value.Month)
                {
                    foreach (Ponuda ponuda in ponude)
                    {
                        if (ponuda.IdAuta == this.a.Id)
                        {
                            if (dateTimePicker1.Value.Date > ponuda.DatumOd && dateTimePicker2.Value.Date <= ponuda.DatumDo)
                            {
                                cena = brojDana * ponuda.CenaPoDanu;
                                if (cena > 0)
                                {
                                    textBox10.Text = cena.ToString();
                                }
                            }
                        }
                    }
                }
                else
                //ako nije
                //dinamiciki se racuna raspon izmedju dana u mesecima
                {
                    double brojDana1 = 0;
                    double brojDana2 = 0;
                    double cena1     = 0;
                    double cena2     = 0;
                    foreach (Ponuda ponuda in ponude)
                    {
                        if (ponuda.IdAuta == this.a.Id)
                        {
                            if (dateTimePicker1.Value.Month == ponuda.DatumOd.Month)
                            {
                                brojDana1 += (ponuda.DatumDo - dateTimePicker1.Value.Date).TotalDays;
                                cena1      = brojDana1 * ponuda.CenaPoDanu;
                            }
                            if (dateTimePicker2.Value.Month == ponuda.DatumDo.Month)
                            {
                                brojDana2 += (dateTimePicker2.Value.Date - ponuda.DatumOd.Date).TotalDays;
                                cena2      = brojDana2 * ponuda.CenaPoDanu;
                            }
                        }
                    }
                    if ((cena1 + cena2) > 0)
                    {
                        double someValue = (cena1 + cena2);
                        String.Format("{0:0.00}", someValue);
                        textBox10.Text = someValue.ToString();
                    }
                }
            }
        }