Ejemplo n.º 1
0
        /**************************************************************************/
        /* private void btSpeichern_Click(object sender, EventArgs e)             */
        /**************************************************************************/
        /* Wenn der Button speichern gedrückt wurde werden alle Felder auf ihr    */
        /* korrektes Format überprüft. Bei einem falschen Format wird ein Fehler  */
        /* ausgegeben und die Eingabe wird nicht gespeichert. Wenn keine Fehler   */
        /* vorhanden, wird das Von und Bis Datum an den Wochentag angepasst. Dann */
        /* werden die Daten für SQL Formatiert und der INSERT Befehl wird         */
        /* abgeschickt.  Dannach wird das gridView aktualisiert und man wird      */
        /* gefragt ob man einen weiteren Kurs erfassen möchte.                    */
        /**************************************************************************/
        private void btSpeichern_Click(object sender, EventArgs e)
        {
            bool fehlerGefunden = false;

            // Fehlerüberprüfung Anfang
            bool fehlerBezeichnung = c_Helper.wrongCharNumberExtra(tbBezeichnung.Text /*, 100*/);
            if (fehlerBezeichnung == true)
            {
                fehlerGefunden = true;
                MessageBox.Show("'" + tbBezeichnung.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            bool fehlerPreis = c_Helper.numFormatPunktKomma(tbPreis.Text /*, 6*/);
            if (fehlerPreis == true)
            {
                fehlerGefunden = true;
                MessageBox.Show("'" + tbPreis.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            bool fehlerMaxTeilnehmer = c_Helper.numFormat(tbMaxTeilnehmer.Text /*, 3*/);
            if (fehlerMaxTeilnehmer == true)
            {
                fehlerGefunden = true;
                MessageBox.Show("'" + tbMaxTeilnehmer.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            if (dtpDatumVon.Value.Date > dtpDatumBis.Value.Date)
            {
                fehlerGefunden = true;
                MessageBox.Show("Von Datum kann nicht größer als Bis Datum sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            if (dtpUhrzeitVon.Value.TimeOfDay > dtpUhrzeitBis.Value.TimeOfDay)
            {
                fehlerGefunden = true;
                MessageBox.Show("Von Uhrzeit kann nicht größer als Bis Uhrzeit sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            // Fehlerüberprüfung Ende

            if (fehlerGefunden == true)
            {
                MessageBox.Show("Datensatz wurde nicht gespeichert", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (tbBezeichnung.Text.Trim().Length != 0 || cbKursleiter.SelectedIndex != -1 || tbPreis.Text.Trim().Length != 0
                    || tbMaxTeilnehmer.Text.Trim().Length != 0 || cbWochentag.SelectedIndex != -1)
                {
                    // Anfang Datum Von und Bis an Wochentag anpassen
                    DateTime myDateTimeVon = dtpDatumVon.Value.Date;
                    DateTime myDateTimeBis = dtpDatumBis.Value.Date;
                    String wochentag = c_Helper.umwandlungWochentagGerToEng(cbWochentag.Text);

                    while (dtpDatumVon.Value.DayOfWeek.ToString() != wochentag)
                    {
                        myDateTimeVon = myDateTimeVon.AddDays(+1);
                        if (myDateTimeVon.DayOfWeek.ToString() == wochentag)
                        {
                            dtpDatumVon.Value = myDateTimeVon.Date;
                            break;
                        }
                    }

                    while (dtpDatumBis.Value.DayOfWeek.ToString() != wochentag)
                    {
                        myDateTimeBis = myDateTimeBis.AddDays(-1);
                        if (myDateTimeBis.DayOfWeek.ToString() == wochentag)
                        {
                            dtpDatumBis.Value = myDateTimeBis.Date;
                            break;
                        }
                    }
                    cbWochentag.Text = c_Helper.umwandlungWochentagEngToGer(wochentag);

                    // Ende Datum Von und Bis an Wochentag anpassen

                    c_DBConnect myConnection = new c_DBConnect();
                    int connected = myConnection.openConnection();
                    if (connected == 0) // Kein Fehler Connect
                    {
                        // Format für SQL anpassen
                        String datumVon     = dtpDatumVon.Value.ToString("yyyy-MM-dd");
                        String datumBis     = dtpDatumBis.Value.ToString("yyyy-MM-dd");
                        String uhrzeitVon   = dtpUhrzeitVon.Value.TimeOfDay.ToString().Substring(0, 5);
                        String uhrzeitBis   = dtpUhrzeitBis.Value.TimeOfDay.ToString().Substring(0, 5);
                        String kursleiter   = new String(cbKursleiter.Text.Where(c => Char.IsDigit(c)).ToArray());
                        String preis        = tbPreis.Text.Replace(",", ".");
                        String intWochentag = c_Helper.umwandlungWochentagInInt(c_Helper.umwandlungWochentagEngToGer(wochentag)).ToString();

                        // Abfrage String generieren
                        String query = "INSERT INTO kurse (kursleiter_id, bezeichnung , preis, akt_teilnehmer, max_teilnehmer, datum_von, datum_bis, wochentag, " +
                                        "uhrzeit_von, uhrzeit_bis) VALUES (" + kursleiter + ", '" + tbBezeichnung.Text + "', " + preis + ", " + "0" +
                                        ", " + tbMaxTeilnehmer.Text + ", '" + datumVon + "', '" + datumBis + "', " + intWochentag + ", '" + uhrzeitVon +
                                        "', '" + uhrzeitBis + "');";

                        bool ok = myConnection.insert(query, "Kurs"); // SQL Befehl ausführen
                        if (ok == true) // Kein Fehler
                        {
                            myConnection.closeConnection();
                            int connectedZwei = myConnection.openConnection();
                            if (connectedZwei == 0) // Kein Fehler Connect
                            {
                                // DridView aktualisieren
                                myConnection.displayData("SELECT kurs_id, CONCAT('(', mitarbeiter_id,') ', vorname, ', ', nachname) " +
                                              "AS Kursleiter, bezeichnung, preis, akt_teilnehmer, max_teilnehmer, datum_von, datum_bis, wochentag, uhrzeit_von, uhrzeit_bis " +
                                              "FROM kurse k, mitarbeiter m WHERE k.kursleiter_id = m.mitarbeiter_id;", myGridKurse);
                                myConnection.closeConnection();

                                // Headertexte anpassen
                                DataTable gridKurseTable = (DataTable)(myGridKurse.DataSource);
                                gridKurseTable.Columns["kurs_id"].ColumnName        = "Kurs-ID";
                                gridKurseTable.Columns["bezeichnung"].ColumnName    = "Bezeichnung";
                                gridKurseTable.Columns["preis"].ColumnName          = "Preis";
                                gridKurseTable.Columns["akt_teilnehmer"].ColumnName = "Akt. Teilnehmer";
                                gridKurseTable.Columns["max_teilnehmer"].ColumnName = "Max. Teilnehmer";
                                gridKurseTable.Columns["datum_von"].ColumnName      = "Datum Von";
                                gridKurseTable.Columns["datum_bis"].ColumnName      = "Datum Bis";
                                gridKurseTable.Columns["wochentag"].ColumnName      = "Wochentag";
                                gridKurseTable.Columns["uhrzeit_von"].ColumnName    = "Uhrzeit Von";
                                gridKurseTable.Columns["uhrzeit_bis"].ColumnName    = "Uhrzeit Bis";

                                c_Helper.changeColumnDataType(gridKurseTable, "Wochentag", typeof(String)); // Type von Wochentag ändern (int to string)
                                myGridKurse.Columns["Wochentag"].DisplayIndex = 8;

                                for (int i = 0; i < gridKurseTable.Rows.Count; i++)
                                {
                                    String wert = c_Helper.umwandlungIntInWochentag(Convert.ToInt32(gridKurseTable.Rows[i]["Wochentag"]));
                                    gridKurseTable.Rows[i]["Wochentag"] = wert;
                                }

                                // Aktualisierten Inhalt binden (für die Suche)
                                myBindingSourceKurse.DataSource = myGridKurse.DataSource;
                                myGridKurse.DataSource = myBindingSourceKurse;

                                DialogResult dialogResult = MessageBox.Show("Wollen Sie einen weiteren Kurs erfassen?", "Information", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                                // Werte auf default setzen
                                cbKursleiter.SelectedIndex = -1;
                                cbWochentag.SelectedIndex = -1;

                                tbBezeichnung.Text = "";
                                tbPreis.Text = "";
                                tbMaxTeilnehmer.Text = "";

                                DateTime today = DateTime.Now;
                                dtpDatumVon.Value = today.Date;
                                dtpDatumBis.Value = today.Date;
                                dtpUhrzeitVon.Value = DateTime.Parse(today.TimeOfDay.ToString());
                                dtpUhrzeitBis.Value = DateTime.Parse(today.TimeOfDay.ToString());
                                if (dialogResult == DialogResult.No)
                                {
                                    this.Close();
                                }
                            }
                            else // Fehler Connect
                            {
                                MessageBox.Show("Verbindungsfehler!\nÜbersicht konnte nicht aktualisiert werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        myConnection.closeConnection();
                    }
                    else // Fehler Connect
                    {
                        MessageBox.Show("Datenbankverbindung konnte nicht hergestellt werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }
                else // Fehler leere Eingabe
                {
                    DialogResult dialogResult = MessageBox.Show("Bitte füllen Sie alle Felder aus.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
Ejemplo n.º 2
0
        /**************************************************************************/
        /* private void btSpeichern_Click(object sender, EventArgs e)             */
        /**************************************************************************/
        /*      */
        /**************************************************************************/
        private void btSpeichern_Click(object sender, EventArgs e)
        {
            if (bearbeitenBool == true)
            {
                bool fehlerGefunden = false;

                // Fehlerüberprüfung Anfang
                bool fehlerBezeichnung = c_Helper.wrongCharNumberExtra(tbBezeichnung.Text /*, 100*/);
                if (fehlerBezeichnung == true)
                {
                    fehlerGefunden = true;
                    MessageBox.Show("'" + tbBezeichnung.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                bool fehlerPreis = c_Helper.numFormatPunktKomma(tbPreis.Text /*, 6*/);
                if (fehlerPreis == true)
                {
                    fehlerGefunden = true;
                    MessageBox.Show("'" + tbPreis.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                bool fehlerMaxTeilnehmer = c_Helper.numFormat(tbMaxTeilnehmer.Text /*, 3*/);
                if (fehlerMaxTeilnehmer == true)
                {
                    fehlerGefunden = true;
                    MessageBox.Show("'" + tbMaxTeilnehmer.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                if (Convert.ToInt32(tbAktTeilnehmer.Text) > Convert.ToInt32(tbMaxTeilnehmer.Text))
                {
                    fehlerGefunden = true;
                    MessageBox.Show("Max. Teilnehmer kann nicht kleiner als Akt. Teilnehmer sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                if (dtpDatumVon.Value.Date > dtpDatumBis.Value.Date)
                {
                    fehlerGefunden = true;
                    MessageBox.Show("Von Datum kann nicht größer als Bis Datum sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                if (dtpUhrzeitVon.Value.TimeOfDay > dtpUhrzeitBis.Value.TimeOfDay)
                {
                    fehlerGefunden = true;
                    MessageBox.Show("Von Uhrzeit kann nicht größer als Bis Uhrzeit sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                // Fehlerüberprüfung Ende

                if (fehlerGefunden == true)
                {
                    MessageBox.Show("Datensatz wurde nicht gespeichert", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    speichernBool = true;
                    int rowIndex = myGridKurse.CurrentCell.RowIndex;

                    if (myKurs.getKursleiter() != cbKursleiter.Text)
                    {
                        myKurs.setKursleiter(cbKursleiter.Text);
                        myGridKurse.Rows[rowIndex].Cells["Kursleiter"].Value = cbKursleiter.Text;
                    }

                    if (myKurs.getBezeichnung() != tbBezeichnung.Text)
                    {
                        myKurs.setBezeichnung(tbBezeichnung.Text);
                        myGridKurse.Rows[rowIndex].Cells["Bezeichnung"].Value = tbBezeichnung.Text;
                    }

                    if (myKurs.getPreis().ToString() != tbPreis.Text)
                    {
                        string newText = tbPreis.Text.Replace(".", ",");
                        myKurs.setPreis(Math.Round(double.Parse(Convert.ToDecimal(newText).ToString()), 2));
                        myGridKurse.Rows[rowIndex].Cells["Preis"].Value = double.Parse(newText);
                        tbPreis.Text = myKurs.getPreis().ToString("N2");
                    }

                    if (myKurs.getMaxTeilnehmer().ToString() != tbMaxTeilnehmer.Text)
                    {
                        myKurs.setMaxTeilnehmer(int.Parse(tbMaxTeilnehmer.Text.ToString()));
                        myGridKurse.Rows[rowIndex].Cells["Max. Teilnehmer"].Value = int.Parse(tbMaxTeilnehmer.Text);
                    }

                    if (myKurs.getDatumVon().Date != dtpDatumVon.Value.Date || myKurs.getDatumBis().Date != dtpDatumBis.Value.Date
                      || c_Helper.umwandlungIntInWochentag(myKurs.getWochentag()) != cbWochentag.SelectedItem.ToString())
                    {
                        DateTime myDateTimeVon = dtpDatumVon.Value.Date;
                        DateTime myDateTimeBis = dtpDatumBis.Value.Date;
                        String wochentag       = c_Helper.umwandlungWochentagGerToEng(cbWochentag.Text);

                        while (dtpDatumVon.Value.DayOfWeek.ToString() != wochentag)
                        {
                            myDateTimeVon = myDateTimeVon.AddDays(+1);
                            if (myDateTimeVon.DayOfWeek.ToString() == wochentag)
                            {
                                dtpDatumVon.Value = myDateTimeVon.Date;
                                break;
                            }
                        }

                        while (dtpDatumBis.Value.DayOfWeek.ToString() != wochentag)
                        {
                            myDateTimeBis = myDateTimeBis.AddDays(-1);
                            if (myDateTimeBis.DayOfWeek.ToString() == wochentag)
                            {
                                dtpDatumBis.Value = myDateTimeBis.Date;
                                break;
                            }
                        }
                    }

                    if (myKurs.getDatumVon().Date != dtpDatumVon.Value.Date)
                    {
                        myKurs.setDatumVon(dtpDatumVon.Value.Date);
                        myGridKurse.Rows[rowIndex].Cells["Datum Von"].Value = dtpDatumVon.Value.Date;
                    }

                    if (myKurs.getDatumBis().Date != dtpDatumBis.Value.Date)
                    {
                        myKurs.setDatumBis(dtpDatumBis.Value.Date);
                        myGridKurse.Rows[rowIndex].Cells["Datum Bis"].Value = dtpDatumBis.Value.Date;
                    }

                    if (c_Helper.umwandlungIntInWochentag(myKurs.getWochentag()) != cbWochentag.SelectedItem.ToString())
                    {
                        myKurs.setWochentag(c_Helper.umwandlungWochentagInInt(cbWochentag.Text));
                        myGridKurse.Rows[rowIndex].Cells["Wochentag"].Value = cbWochentag.Text;
                    }

                    if (myKurs.getUhrzeitVon().TimeOfDay != dtpUhrzeitVon.Value.TimeOfDay)
                    {
                        myKurs.setUhrzeitVon(DateTime.Parse(dtpUhrzeitVon.Value.TimeOfDay.ToString()));
                        myGridKurse.Rows[rowIndex].Cells["Uhrzeit Von"].Value = dtpUhrzeitVon.Value.TimeOfDay;
                    }

                    if (myKurs.getUhrzeitBis().TimeOfDay != dtpUhrzeitBis.Value.TimeOfDay)
                    {
                        myKurs.setUhrzeitBis(DateTime.Parse(dtpUhrzeitBis.Value.TimeOfDay.ToString()));
                        myGridKurse.Rows[rowIndex].Cells["Uhrzeit Bis"].Value = dtpUhrzeitBis.Value.TimeOfDay;
                    }

                    c_DBConnect myConnection = new c_DBConnect();
                    int connected = myConnection.openConnection();
                    if (connected == 0)
                    {
                        String preis      = tbPreis.Text.Replace(",", ".");
                        String datumVon   = dtpDatumVon.Value.ToString("yyyy-MM-dd");
                        String datumBis   = dtpDatumBis.Value.ToString("yyyy-MM-dd");
                        String uhrzeitVon = dtpUhrzeitVon.Value.TimeOfDay.ToString().Substring(0, 5);
                        String uhrzeitBis = dtpUhrzeitBis.Value.TimeOfDay.ToString().Substring(0, 5);
                        String kursleiter = new String(cbKursleiter.Text.Where(c => Char.IsDigit(c)).ToArray());
                        String kursID     = myKurs.getKursId().ToString();
                        String wochentag  = myKurs.getWochentag().ToString();

                        String query = "UPDATE kurse SET bezeichnung = '" + tbBezeichnung.Text + "', kursleiter_id = " + kursleiter +
                                       ", preis = " + preis + ", max_teilnehmer = " + tbMaxTeilnehmer.Text +
                                       ", datum_von = '" + datumVon + "', datum_bis = '" + datumBis + "', wochentag = " + wochentag +
                                       ", uhrzeit_von = '" + uhrzeitVon + "', uhrzeit_bis = '" + uhrzeitBis + "' WHERE kurs_id = " + kursID + ";";

                        bool ok = myConnection.update(query, "Kurs");
                        if (ok == true)
                        {
                            myGridKurse.Refresh();

                            cbKursleiter.Visible  = false;
                            dtpDatumVon.Visible   = false;
                            dtpDatumBis.Visible   = false;
                            cbWochentag.Visible   = false;
                            dtpUhrzeitVon.Visible = false;
                            dtpUhrzeitBis.Visible = false;

                            tbKursleiter.Visible = true;
                            tbKursleiter.Text    =  myKurs.getKursleiter();

                            tbDatumVon.Visible = true;
                            tbDatumVon.Text    = myKurs.getDatumVon().Date.ToString("dd.MM.yyyy");

                            tbDatumBis.Visible = true;
                            tbDatumBis.Text    = myKurs.getDatumBis().Date.ToString("dd.MM.yyyy");

                            tbWochentag.Visible = true;
                            tbWochentag.Text    = c_Helper.umwandlungIntInWochentag(myKurs.getWochentag());

                            tbUhrzeitVon.Visible = true;
                            tbUhrzeitVon.Text    = myKurs.getUhrzeitVon().TimeOfDay.ToString("hh\\:mm");

                            tbUhrzeitBis.Visible = true;
                            tbUhrzeitBis.Text    = myKurs.getUhrzeitBis().TimeOfDay.ToString("hh\\:mm");

                            tbBezeichnung.ReadOnly   = true;
                            tbPreis.ReadOnly         = true;
                            tbMaxTeilnehmer.ReadOnly = true;
                            tbWochentag.ReadOnly     = true;
                            tbUhrzeitVon.ReadOnly    = true;
                            tbUhrzeitBis.ReadOnly    = true;

                            speichernBool  = false;
                            bearbeitenBool = false;
                            btBearbeiten.BackgroundImage = PuG_Verwaltungssoftware.Properties.Resources.pug_edit_groß; // Bild ändern
                        }
                    }
                    else
                    {
                        MessageBox.Show("Datenbankverbindung konnte nicht hergestellt werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }