예제 #1
0
파일: ucKlant.cs 프로젝트: tim-vdv/Carbus
        //Methode voor het opslaan / aanmaken van een klant
        private void btnOpslaan_Click(object sender, EventArgs e)
        {
            //Validatie
            if (Validation.hasValidationErrors(this.Controls))
            {
                return;
            }
            //als validatie geslaagd is

            /*Voor de knop opslaan heb je 2 mogelijkheden, of je gaat een bestaande chauffeur updaten
             * (btnOpslaan) en of je gaat een nieuwe aanmaken (btnAanmaken), passende methoden oproepen
             * bij de verschillende namen */
            if (btnOpslaan.Name == "btnOpslaan")
            {
                //nieuwe klant aanmaken
                klant updateKlant = new klant();

                //Oude klant opahlen
                klant oudeKlant = (klant)cbbID.SelectedItem;

                //deze "nieuwe" klant opvullen met gegevens op basis van de te updaten klant
                updateKlant.klant_id = oudeKlant.klant_id;
                updateKlant.naam     = txtNaam.Text;

                //titel mag leeg zijn
                updateKlant.titel             = cbbTitel.Text;
                updateKlant.activiteit        = cbbActiviteit.Text;
                updateKlant.verantwoordelijke = txtVerantwoordelijke.Text;
                updateKlant.telefoon          = txtTelefoon.Text;
                updateKlant.gsm        = txtGsm.Text;
                updateKlant.fax        = txtFax.Text;
                updateKlant.email      = txtEmail.Text;
                updateKlant.btw_nummer = txtBTW.Text;

                int korting;
                if (txtKorting.Text == "")
                {
                    korting = 0;
                }
                else
                {
                    korting = Convert.ToInt32(txtKorting.Text);
                }
                updateKlant.korting             = korting;
                updateKlant.vervaldagen_offerte = txtVervaldagenOfferte.Text;
                updateKlant.vervaldagen_factuur = txtVervalDagenFactuur.Text;
                updateKlant.aantal_facturen     = txtAantalFacturen.Text;
                updateKlant.memo = txtMemo.Text;

                //Adres updaten
                //Eerst oude relatie verwijderen en dan nieuwe maken, gedaan in methode updateAdresVanKlant();
                locatie Adres = (locatie)cbbAdres.SelectedItem;
                KlantManagement.updateAdresVanKlant(oudeKlant.klant_id, Adres.locatie_id, "Adres");

                KlantManagement.updateKlant(updateKlant);

                //Eerste alle opstapplaatsen verwijderen
                OpstapplaatsManagement.deleteOpstapplaatsen(updateKlant.klant_id);

                //Opstapplaatsen updaten
                foreach (ComboBox cbbOpstap in flpOpstapplaats.Controls)
                {
                    //Dan nieuwe toevoegen
                    locatie       opstapLocatie       = (locatie)cbbOpstap.SelectedItem;
                    locatie_klant opstapLocatie_nieuw = new locatie_klant();
                    opstapLocatie_nieuw.klant_id = updateKlant.klant_id;
                    opstapLocatie_nieuw.locatie  = opstapLocatie;
                    opstapLocatie_nieuw.type     = "Opstapplaats";

                    OpstapplaatsManagement.addOpstapplaats(opstapLocatie_nieuw);
                }

                MainForm.updateStatus = "Klant: " + updateKlant.naam + ", is succesvol geupdate.";
            }

            else if (btnOpslaan.Name == "btnAanmaken")
            {
                if (KlantManagement.bestaatKlant(txtNaam.Text, (locatie)cbbAdres.SelectedItem) == true)
                {
                    MainForm.updateStatus = "De klant: " + txtNaam.Text + " bestaat reeds.";
                }
                else
                {
                    //Nieuw klant object aanmaken
                    klant nieuweKlant = new klant();

                    //Algemene gegevens invullen in het nieuweKlant object
                    nieuweKlant.naam = txtNaam.Text;

                    //titel mag leeg zijn
                    nieuweKlant.titel = cbbTitel.Text;
                    //Activiteit mag leg zijn
                    nieuweKlant.activiteit        = cbbActiviteit.Text;
                    nieuweKlant.verantwoordelijke = txtVerantwoordelijke.Text;
                    nieuweKlant.telefoon          = txtTelefoon.Text;
                    nieuweKlant.gsm        = txtGsm.Text;
                    nieuweKlant.fax        = txtFax.Text;
                    nieuweKlant.email      = txtEmail.Text;
                    nieuweKlant.btw_nummer = txtBTW.Text;

                    int korting;
                    if (txtKorting.Text == "")
                    {
                        korting = 0;
                    }
                    else
                    {
                        korting = Convert.ToInt32(txtKorting.Text);
                    }

                    nieuweKlant.korting             = korting;
                    nieuweKlant.vervaldagen_offerte = txtVervaldagenOfferte.Text;
                    nieuweKlant.vervaldagen_factuur = txtVervalDagenFactuur.Text;
                    nieuweKlant.aantal_facturen     = txtAantalFacturen.Text;
                    nieuweKlant.memo = txtMemo.Text;

                    //klant toevoegen aan de database
                    KlantManagement.addKlant(nieuweKlant);

                    //Adres toevoegen aan de klant
                    locatie       adresVanKlant = (locatie)cbbAdres.SelectedItem;
                    locatie_klant adresLink     = new locatie_klant();
                    adresLink.klant   = nieuweKlant;
                    adresLink.locatie = adresVanKlant;
                    adresLink.type    = "Adres";

                    KlantManagement.addAdresBijKlant(adresLink);

                    //Opstapplaatsen toevoegen aan de klant
                    foreach (ComboBox cbbOpstap in flpOpstapplaats.Controls)
                    {
                        locatie opstapLocatie = (locatie)cbbOpstap.SelectedItem;

                        locatie_klant opstapLocatieLink = new locatie_klant();

                        opstapLocatieLink.klant   = nieuweKlant;
                        opstapLocatieLink.locatie = opstapLocatie;
                        opstapLocatieLink.type    = "Opstapplaats";

                        OpstapplaatsManagement.addOpstapplaats(opstapLocatieLink);
                    }

                    MainForm.updateStatus = "Klant: " + nieuweKlant.naam + ", is succesvol aangemaakt.";
                }
            }


            //combobox opnieuw vullen
            cbbID.Items.Clear();
            cbbID.Items.AddRange(KlantManagement.getKlanten().ToArray());
            cbbID.DisplayMember = "naam";
            cbbID.ValueMember   = "klant_id";

            //knoppen goedzetten
            cbbID.Visible        = true;
            btnNieuw.Enabled     = true;
            btnVerwijder.Enabled = true;

            emptyFields();
            disablefields();
        }