//Adres updaten van klant public static void updateAdresVanKlant(int klant_id, int nieuwe_locatie_id, string type) { var query = (from l in dc.locatie_klants where l.klant_id == klant_id where l.type == "Adres" select l).Single(); //Eerst oude adres verwijderen en dan nieuwe aanmaken //Oude verwijderen locatie_klant oude_relatie = query; dc.locatie_klants.DeleteOnSubmit(oude_relatie); dc.SubmitChanges(); //nieuwe aanmaken locatie_klant nieuwe_relatie = new locatie_klant(); nieuwe_relatie.klant = getKlant(klant_id); nieuwe_relatie.locatie = LocatieManagement.getLocatie(nieuwe_locatie_id); nieuwe_relatie.type = "Adres"; dc.locatie_klants.InsertOnSubmit(nieuwe_relatie); dc.SubmitChanges(); }
//Adres toevoegen aan klant, nieuwe rij in tussentabel, op basis van bestaand object 'nieuwAdres' public static void addAdresBijKlant(locatie_klant nieuwAdres) { dc.locatie_klants.InsertOnSubmit(nieuwAdres); dc.SubmitChanges(); }
//Opstapplaats toevoegen aan de hand van bestaand object public static void addOpstapplaats(locatie_klant nieuwOpstapplaats) { dc.locatie_klants.InsertOnSubmit(nieuwOpstapplaats); dc.SubmitChanges(); }
//Methode om relatie tussen klant en locatie (tussentabel) te verwijderen public static void deleteLocatieKlant(locatie_klant lk) { dc.locatie_klants.DeleteOnSubmit(lk); dc.SubmitChanges(); }
//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(); }