public static void citanjePonudeDatoteke(ref List <Ponuda> ponuda)
 {
     try
     {
         FileStream    fs       = new FileStream("ponude.xml", FileMode.OpenOrCreate);
         SoapFormatter soapform = new SoapFormatter();
         while (true)
         {
             try
             {
                 Ponuda p = (Ponuda)soapform.Deserialize(fs);
                 ponuda.Add(p);
             }
             catch
             {
                 break;
             }
         }
         fs.Close();
     }
     catch
     {
         MessageBox.Show("Greška pri čitanju podataka iz datoteke ponude" +
                         ".xml!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
        public void prikazTrenutnihPonuda(object sender, EventArgs e)
        {
            List <Ponuda> ListaPonuda = new List <Ponuda>();
            Ponuda        pom         = null;

            RadSaDatotekama.citanjePonudeDatoteke(ref ListaPonuda);
            for (int i = 0; i < ListaPonuda.Count - 1; i++)
            {
                for (int j = i + 1; j < ListaPonuda.Count; j++)
                {
                    if ((ListaPonuda[i].IdbrAutomobila > ListaPonuda[j].IdbrAutomobila) ||
                        ((ListaPonuda[i].IdbrAutomobila == ListaPonuda[j].IdbrAutomobila) &&
                         ListaPonuda[i].DatumOd.Date > ListaPonuda[j].DatumOd.Date))
                    {
                        pom            = ListaPonuda[i];
                        ListaPonuda[i] = ListaPonuda[j];
                        ListaPonuda[j] = pom;
                    }
                }
            }
            cbSvePonude.Items.Clear();
            foreach (Ponuda p in ListaPonuda)
            {
                cbSvePonude.Items.Add(p);
            }
            ListaPonuda.Clear();
        }
        //Ponuda
        public void dodajNovuPonudu(object sender, EventArgs e)
        {
            Boolean proveraValidnosti = ValidacijaPodataka.validacijaNovePonude(ref txtIDBRAutPonuda, ref txtCenaPoDanu,
                                                                                dtpDatumOd.Value, dtpDatumDo.Value);

            if (proveraValidnosti == true)
            {
                Ponuda p = new Ponuda(int.Parse(txtIDBRAutPonuda.Text), int.Parse(txtCenaPoDanu.Text),
                                      dtpDatumOd.Value, dtpDatumDo.Value);
                Boolean proveraKreiranje = p.dodajNovuPonudu();
                if (proveraKreiranje == true)
                {
                    MessageBox.Show("Uspešno ste dodali novu Ponudu u sistem!");
                    txtIDBRAutPonuda.Text = "";
                    txtCenaPoDanu.Text    = "";
                    dtpDatumOd.Value      = DateTime.Now;
                    dtpDatumDo.Value      = DateTime.Now;
                    cbSvePonude.Text      = "";
                }
            }
            else
            {
                MessageBox.Show("Podaci koje ste uneli nisu pravilno popunjeni!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                dtpDatumOd.Value = DateTime.Now;
                dtpDatumDo.Value = DateTime.Now;
            }
        }
Beispiel #4
0
        public void azuriranjePonude(DateTime dtpNoviDatumOd, DateTime dtpNoviDatumDo)
        {
            Boolean       flagPonuda  = false;
            Boolean       flagPodaci  = true;
            List <Ponuda> ListaPonuda = new List <Ponuda>();
            Ponuda        pomocna     = null;

            RadSaDatotekama.citanjePonudeDatoteke(ref ListaPonuda);
            foreach (Ponuda p in ListaPonuda)
            {
                if (this.idbrAutomobila == p.idbrAutomobila && this.datumOd.Date == p.datumOd.Date &&
                    this.datumDo.Date == p.DatumDo.Date)
                {
                    flagPonuda = true;
                    pomocna    = p;
                    break;
                }
            }
            if (flagPonuda == true)
            {
                foreach (Ponuda p in ListaPonuda)
                {
                    if (p != pomocna && this.idbrAutomobila == p.idbrAutomobila)
                    {
                        if ((dtpNoviDatumOd.Date >= p.datumOd.Date && dtpNoviDatumOd.Date <= p.datumDo.Date) ||
                            (dtpNoviDatumDo.Date >= p.datumOd.Date && dtpNoviDatumDo.Date <= p.DatumDo.Date))
                        {
                            flagPodaci = false;
                        }
                    }
                }
                if (flagPodaci == true)
                {
                    for (int i = 0; i < ListaPonuda.Count; i++)
                    {
                        if (ListaPonuda[i] == pomocna)
                        {
                            this.DatumOd   = dtpNoviDatumOd.Date;
                            this.DatumDo   = dtpNoviDatumDo.Date;
                            ListaPonuda[i] = this;
                        }
                    }
                    RadSaDatotekama.upisPonudeDatoteke(ref ListaPonuda);
                    MessageBox.Show("Uspešno ste ažurirali Ponudu!");
                }
                else
                {
                    MessageBox.Show("Ne možete preklapati datume za jedan isti Automobil!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Traženi podaci nisu pronađeni u sistemu Ponuda!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            ListaPonuda.Clear();
        }
        public void selektujIspisiPonudu(object sender, EventArgs e)
        {
            Object ponuda = cbSvePonude.SelectedItem;
            Ponuda p      = ponuda as Ponuda;

            txtIDBRAutPonuda.Text = p.IdbrAutomobila.ToString();
            txtCenaPoDanu.Text    = p.CenaPoDanu.ToString();
            dtpDatumOd.Value      = p.DatumOd;
            dtpDatumDo.Value      = p.DatumDo;
        }
        public void brisanjePonude(object sender, EventArgs e)
        {
            Boolean proveraValidnostiIDBR = ValidacijaPodataka.validacijaIdbrBrisanje(ref txtIDBRAutPonuda);

            if (proveraValidnostiIDBR == true)
            {
                Ponuda p = new Ponuda(int.Parse(txtIDBRAutPonuda.Text), dtpDatumOd.Value, dtpDatumDo.Value);
                p.ukloniPonudu();
                txtIDBRAutPonuda.Text = "";
                txtCenaPoDanu.Text    = "";
                dtpDatumOd.Value      = DateTime.Now;
                dtpDatumDo.Value      = DateTime.Now;
                cbSvePonude.Text      = "";
            }
            else
            {
                MessageBox.Show("IDBR Automobila u Ponudi preko koga brišemo ponudu nije validan!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        public void azuriranjePonude(object sender, EventArgs e)
        {
            Boolean proveraValidnosti = ValidacijaPodataka.validacijaNovePonude(ref txtIDBRAutPonuda, ref txtCenaPoDanu,
                                                                                dtpDatumOd.Value, dtpDatumDo.Value);
            Boolean proveraValidnostiNovihDatuma = ValidacijaPodataka.validacijaNovihDatuma(dtpNoviDatumOd.Value, dtpNoviDatumDo.Value);

            if (proveraValidnosti == true && proveraValidnostiNovihDatuma == true)
            {
                Ponuda p = new Ponuda(int.Parse(txtIDBRAutPonuda.Text), int.Parse(txtCenaPoDanu.Text), dtpDatumOd.Value, dtpDatumDo.Value);
                p.azuriranjePonude(dtpNoviDatumOd.Value, dtpNoviDatumDo.Value);
                txtIDBRAutPonuda.Text = "";
                txtCenaPoDanu.Text    = "";
                dtpDatumOd.Value      = DateTime.Now;
                dtpDatumDo.Value      = DateTime.Now;
                cbSvePonude.Text      = "";
            }
            else
            {
                MessageBox.Show("Podaci o Ponudi nisu pravilno popunjeni!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        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();
        }