private void pictureBoxSupprimerEntretien_Click(object sender, EventArgs e) { if (listeDeroulanteEntretien.EntretienSelectionne != null) { FactureEntretien LienExistant = Program.GMBD.EnumererFactureEntretien(null, new MyDB.CodeSql("JOIN entretien ON facture_entretien.fk_id_entretien = entretien.id_entretien"), new MyDB.CodeSql("WHERE fk_id_entretien = {0}", listeDeroulanteEntretien.EntretienSelectionne.Id), null).FirstOrDefault(); if (LienExistant != null) { Entretien EntretienIndisponible = LienExistant.Entretien; EntretienIndisponible.Disponible = 0; // Si l'entretien est référencé, suppression fictive afin de garder la trace de celui-ci if ((EntretienIndisponible.EstValide) && (Program.GMBD.ModifierEntretien(EntretienIndisponible))) { ValidationProvider.SetError(pictureBoxSupprimerEntretien, "Entretien correctement supprimé"); entretiens.EntretienSelectionner = null; listeDeroulanteEntretien.EntretienSelectionne = null; } } // Si l'entretien n'a aucune référence, la suppresion définitive peut être effectuée else if ((LienExistant == null) && (Program.GMBD.SupprimerEntretien(listeDeroulanteEntretien.EntretienSelectionne))) { listeDeroulanteEntretien.Entretien = Program.GMBD.EnumererEntretien(null, null, new MyDB.CodeSql("WHERE disponible = 1"), null); ValidationProvider.SetError(pictureBoxSupprimerEntretien, "Entretien correctement supprimé"); entretiens.EntretienSelectionner = null; listeDeroulanteEntretien.EntretienSelectionne = null; } } }
private void ListeDeroulanteEntretien_SurChangementSelection(object sender, EventArgs e) { if (listeDeroulanteEntretien.EntretienSelectionne != null) { FactureEntretien EntretienReference = Program.GMBD.EnumererFactureEntretien(null, null, new MyDB.CodeSql("WHERE fk_id_entretien = {0}", listeDeroulanteEntretien.EntretienSelectionne.Id), null).FirstOrDefault(); if (EntretienReference != null) { pictureBoxModifierEntretien.Enabled = false; } else { pictureBoxModifierEntretien.Enabled = true; } } }
private void buttonValider_Click(object sender, EventArgs e) { if (m_EstAjouter) { Entretien NouvelEntretien = new Entretien(); NouvelEntretien.SurErreur += Entretien_SurErreur; NouvelEntretien.AvantChangement += NouvelEntretien_AvantChangement; NouvelEntretien.TypeEntretien = textBoxEntretien.Text; NouvelEntretien.Prix = double.Parse(numericUpDown1.Value.ToString()); NouvelEntretien.Disponible = 1; if ((NouvelEntretien.EstValide) && (Program.GMBD.AjouterEntretien(NouvelEntretien))) { ValidationProvider.SetError(buttonValider, "Entretien correctement ajouté"); if (RefreshApresAction != null) { EntretienSelectionner = NouvelEntretien; RefreshApresAction(this, e); } } } else if (m_EstModification) { FactureEntretien ConnexionExistante = Program.GMBD.EnumererFactureEntretien(null, null, new PDSGBD.MyDB.CodeSql("WHERE fk_id_entretien = {0}", EntretienSelectionner.Id), null).FirstOrDefault(); if (ConnexionExistante == null) { numericUpDown1.Enabled = true; Entretien EntretienAModifier = EntretienSelectionner; EntretienAModifier.SurErreur += Entretien_SurErreur; EntretienAModifier.AvantChangement += EntretienAModifier_AvantChangement; EntretienAModifier.Prix = double.Parse(numericUpDown1.Value.ToString()); EntretienAModifier.TypeEntretien = textBoxEntretien.Text; EntretienAModifier.Disponible = EntretienSelectionner.Disponible; if ((EntretienAModifier.EstValide) && (Program.GMBD.ModifierEntretien(EntretienAModifier))) { ValidationProvider.SetError(buttonValider, "Entretien correctement modifié"); if (RefreshApresAction != null) { EntretienSelectionner = EntretienAModifier; RefreshApresAction(this, e); } } } else { numericUpDown1.Enabled = false; Entretien EntretienAModifier = EntretienSelectionner; EntretienAModifier.SurErreur += Entretien_SurErreur; EntretienAModifier.AvantChangement += EntretienAModifier_AvantChangement; EntretienAModifier.TypeEntretien = textBoxEntretien.Text; EntretienAModifier.Disponible = EntretienSelectionner.Disponible; if ((EntretienAModifier.EstValide) && (Program.GMBD.ModifierEntretien(EntretienAModifier))) { ValidationProvider.SetError(buttonValider, "Entretien correctement modifié"); if (RefreshApresAction != null) { EntretienSelectionner = EntretienAModifier; RefreshApresAction(this, e); } } } } }
private bool MettreAJourListe <T>(IEnumerable <T> Entites) where T : class, IEntiteMySQL { bool EstRdv = typeof(T).Equals(typeof(Facture)); if (!EstRdv) { return(false); } listViewClientRdv.Items.Clear(); if (Entites == null) { return(false); } if (EstRdv && (listViewClientRdv.Columns.Count != 2)) { listViewClientRdv.Columns.Clear(); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "Statut", Text = "Statut", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "PrenomNom", Text = "Nom - Prénom", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "DateArrivee", Text = "Date d'arrivée", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "DateFin", Text = "Date de fin", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "Modele", Text = "Modèle", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "Immatriculation", Text = "Immatriculation", TextAlign = HorizontalAlignment.Left }); listViewClientRdv.Columns.Add(new ColumnHeader() { Name = "Type", Text = "Type", TextAlign = HorizontalAlignment.Left }); } foreach (T Entite in Entites) { Facture Facture = Entite as Facture; ListViewItem NouvelElement = new ListViewItem() { Tag = Entite, Text = Facture.RendezVous.Statut.StatutOperation, }; NouvelElement.SubItems.Add(string.Format("{0} - {1}", Facture.RendezVous.ClientVehicule.Client.Nom, Facture.RendezVous.ClientVehicule.Client.Prenom)); NouvelElement.SubItems.Add(Facture.RendezVous.DateDebut.ToString()); NouvelElement.SubItems.Add(Facture.RendezVous.DateFin.ToString()); NouvelElement.SubItems.Add(Facture.RendezVous.ClientVehicule.Vehicule.Modele); NouvelElement.SubItems.Add(Facture.RendezVous.ClientVehicule.Immatriculation); FactureEntretien AUnEntretien = Program.GMBD.EnumererFactureEntretien(null, null, new MyDB.CodeSql("WHERE fk_id_facture = {0}", Facture.Id), null).FirstOrDefault(); if ((Facture.Informations != "") && (AUnEntretien == null)) { NouvelElement.SubItems.Add("Réparation"); } else if ((Facture.Informations == "") && (AUnEntretien != null)) { NouvelElement.SubItems.Add("Entretien"); } else if ((Facture.Informations != "") && (AUnEntretien != null)) { NouvelElement.SubItems.Add("Réparation et entretien"); } listViewClientRdv.Items.Add(NouvelElement); } listViewClientRdv.Visible = false; foreach (ColumnHeader Colonne in listViewClientRdv.Columns) { Colonne.TextAlign = HorizontalAlignment.Center; Colonne.Width = listViewClientRdv.Width / listViewClientRdv.Columns.Count; } listViewClientRdv.Visible = true; listViewRdv_SelectedIndexChanged(listViewClientRdv, EventArgs.Empty); return(true); }
private IEnumerable <FactureEntretien> EnumererFactureEntretien() { return(FactureEntretien.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM facture_entretien JOIN entretien ON facture_entretien.fk_id_entretien = entretien.id_entretien WHERE fk_id_facture = {0}", Id))); }
private void buttonModifier_Click(object sender, EventArgs e) { errorProvider.Clear(); ValidationProvider.Clear(); if (CalendrierRdv.FactureSelectionnee != null) { bool SuppressionEntretienLier = false; Entretien EntretienIndisponibleExiste = null; Facture FactureEnEdition = CalendrierRdv.FactureSelectionnee; FactureEnEdition.SurErreur += FactureEnEdition_SurErreur; FactureEnEdition.NumeroFacture = CalendrierRdv.FactureSelectionnee.NumeroFacture; if (checkBoxReparation.Checked == true) { FactureEnEdition.m_ReparationCoche = true; } else { textBoxInfoReparation.Text = ""; FactureEnEdition.m_ReparationCoche = false; } if ((checkBoxReparation.Checked == true) || (listeDeroulanteEntretien.EntretienSelectionne != null)) { FactureEnEdition.Commentaire = ""; FactureEnEdition.HeurePrestation = 0; FactureEnEdition.Informations = textBoxInfoReparation.Text; if (listeDeroulanteEntretien.EntretienSelectionne != null) { FactureEnEdition.PrixTotal = listeDeroulanteEntretien.EntretienSelectionne.Prix; } else if (listeDeroulanteEntretien.TextBoxNomEntretien.Length > 1) { int IndexDuTiretSeparateur = 0; for (int i = listeDeroulanteEntretien.TextBoxNomEntretien.Length - 1; i > 0; i--) { if (listeDeroulanteEntretien.TextBoxNomEntretien[i] == ('-')) { IndexDuTiretSeparateur = i; break; } } int PrixEntretien = int.Parse(listeDeroulanteEntretien.TextBoxNomEntretien.Substring(IndexDuTiretSeparateur + 1, (listeDeroulanteEntretien.TextBoxNomEntretien.Length - 3) - IndexDuTiretSeparateur)); string NomEntretien = listeDeroulanteEntretien.TextBoxNomEntretien.Substring(0, IndexDuTiretSeparateur - 1); EntretienIndisponibleExiste = Program.GMBD.EnumererEntretien(null, null, new MyDB.CodeSql("WHERE disponible = 0 AND type_entretien = {0} AND prix = {1}", NomEntretien.Trim(), PrixEntretien), null).FirstOrDefault(); FactureEnEdition.PrixTotal = 0; } else { SuppressionEntretienLier = true; FactureEnEdition.PrixTotal = 0; } FactureEnEdition.RendezVous.DateDebut = dateTimePickerArrivee.Value; FactureEnEdition.RendezVous.DateFin = dateTimePickerFin.Value; if (ClientVehicule.ClientVehiculeEnCoursDeTraitement != CalendrierRdv.FactureSelectionnee.RendezVous.ClientVehicule) { FactureEnEdition.RendezVous.ClientVehicule = ClientVehicule.ClientVehiculeEnCoursDeTraitement; } else { FactureEnEdition.RendezVous.ClientVehicule = CalendrierRdv.FactureSelectionnee.RendezVous.ClientVehicule; } FactureEnEdition.RendezVous.Statut = Program.GMBD.EnumererStatut(null, null, new MyDB.CodeSql("WHERE statut = {0}", "En attente"), null).FirstOrDefault(); if (((listeDeroulanteEntretien.EntretienSelectionne != null) || (EntretienIndisponibleExiste != null) || (SuppressionEntretienLier == true)) || (textBoxInfoReparation.Text != "")) { // Test de validation sur les 2 objets pour ne pas faire une requête si un des 2 n'est pas valide if ((FactureEnEdition.EstValide) && (FactureEnEdition.RendezVous.EstValide) && (Program.GMBD.ModifierFacture(FactureEnEdition))) { if (Program.GMBD.ModifierRendezvous(FactureEnEdition.RendezVous)) { if ((listeDeroulanteEntretien.EntretienSelectionne != null) && (CalendrierRdv.FactureSelectionnee.EnumFactureEntretien.ElementAt(0) == null)) { FactureEntretien NouvelEntretien = new FactureEntretien(FactureEnEdition, listeDeroulanteEntretien.EntretienSelectionne); if (Program.GMBD.AjouterFactureEntretien(NouvelEntretien)) { ValidationProvider.SetError(buttonModifier, "Le rendez-vous a été correctement modifié"); CalendrierRdv.ChargerListViewRdv(); RechargementApresModification = true; CalendrierRdv.FactureSelectionnee = FactureEnEdition; } } else if ((listeDeroulanteEntretien.EntretienSelectionne != null) && (listeDeroulanteEntretien.EntretienSelectionne.Id != CalendrierRdv.FactureSelectionnee.EnumFactureEntretien.ElementAt(0).Entretien.Id)) { FactureEntretien EntretienLie = FactureEnEdition.EnumFactureEntretien.ElementAt(0); EntretienLie.Entretien = listeDeroulanteEntretien.EntretienSelectionne; EntretienLie.FactureLiee = FactureEnEdition; // Si il modifie l'entretien if (Program.GMBD.ModifierFactureEntretien(EntretienLie)) { CalendrierRdv.ChargerListViewRdv(); ValidationProvider.SetError(buttonModifier, "Le rendez-vous a été correctement modifié"); RechargementApresModification = true; CalendrierRdv.FactureSelectionnee = FactureEnEdition; } } else if ((listeDeroulanteEntretien.EntretienSelectionne == null) && (EntretienIndisponibleExiste == null)) { FactureEntretien EntretienLier = FactureEnEdition.EnumFactureEntretien.FirstOrDefault(); if (EntretienLier != null) { // Si il y a une réparation alors la suppresion de l'entretien est autorisée if ((SuppressionEntretienLier == true) && (checkBoxReparation.Checked == true)) { // S'il retire l'entretien de la sélection Program.GMBD.SupprimerFactureEntretien(EntretienLier); ValidationProvider.SetError(buttonModifier, "Le rendez-vous a été correctement modifié"); CalendrierRdv.ChargerListViewRdv(); RechargementApresModification = true; CalendrierRdv.FactureSelectionnee = FactureEnEdition; } else { errorProvider.SetError(buttonModifier, "Vous devez choisir un entretien ou une réparation"); listeDeroulanteEntretien.EntretienSelectionne = CalendrierRdv.FactureSelectionnee.EnumFactureEntretien.FirstOrDefault().Entretien; } } else { ValidationProvider.SetError(buttonModifier, "Le rendez-vous a été correctement modifié"); CalendrierRdv.ChargerListViewRdv(); RechargementApresModification = true; CalendrierRdv.FactureSelectionnee = FactureEnEdition; } } else { ValidationProvider.SetError(buttonModifier, "Le rendez-vous a été correctement modifié"); CalendrierRdv.ChargerListViewRdv(); RechargementApresModification = true; CalendrierRdv.FactureSelectionnee = FactureEnEdition; } } } } } else { errorProvider.SetError(buttonModifier, "Vous devez choisir un entretien ou une réparation à effectuer"); } } }
private void buttonAjouter_Click(object sender, EventArgs e) { ValidationProvider.Clear(); errorProvider.Clear(); if ((ClientVehicule.ClientVehiculeEnCoursDeTraitement != null) && (ClientVehicule.ClientVehiculeEnCoursDeTraitement.Immatriculation != "")) { Facture NouvelleFacture = new Facture(); NouvelleFacture.RendezVous = new RendezVousEntretienReparation(); NouvelleFacture.SurErreur += FactureEnEdition_SurErreur; Facture DerniereFacture = Program.GMBD.EnumererFacture(null, null, null, new MyDB.CodeSql("ORDER BY id_facture DESC")).FirstOrDefault(); if (DerniereFacture != null) { NouvelleFacture.NumeroFacture = string.Format("er{0}-{1}", DateTime.Now.Year, DerniereFacture.Id); } else { NouvelleFacture.NumeroFacture = string.Format("er{0}-1", DateTime.Now.Year); } if (checkBoxReparation.Checked == true) { NouvelleFacture.Informations = textBoxInfoReparation.Text; NouvelleFacture.m_ReparationCoche = true; } else { NouvelleFacture.Informations = ""; NouvelleFacture.m_ReparationCoche = false; } if ((NouvelleFacture.m_ReparationCoche == true) || (listeDeroulanteEntretien.EntretienSelectionne != null)) { NouvelleFacture.Commentaire = string.Empty; NouvelleFacture.HeurePrestation = 0; if (listeDeroulanteEntretien.EntretienSelectionne != null) { NouvelleFacture.PrixTotal = listeDeroulanteEntretien.EntretienSelectionne.Prix; } else { NouvelleFacture.PrixTotal = 0; } NouvelleFacture.RendezVous.DateDebut = dateTimePickerArrivee.Value; NouvelleFacture.RendezVous.DateFin = dateTimePickerFin.Value; if (ClientVehicule.ClientSelectionneCalendrier != null) { NouvelleFacture.RendezVous.ClientVehicule = ClientVehicule.ClientSelectionneCalendrier; } else if (ClientVehicule.ClientVehiculeEnCoursDeTraitement != null) { NouvelleFacture.RendezVous.ClientVehicule = ClientVehicule.ClientVehiculeEnCoursDeTraitement; } NouvelleFacture.RendezVous.Statut = Program.GMBD.EnumererStatut(null, null, new MyDB.CodeSql("WHERE statut = {0}", "En attente"), null).FirstOrDefault(); if (dateTimePickerArrivee.Value < dateTimePickerFin.Value) { if ((NouvelleFacture.EstValide) && (NouvelleFacture.RendezVous.EstValide) && (Program.GMBD.AjouterRendezvous(NouvelleFacture.RendezVous))) { if (Program.GMBD.AjouterNouvelleFacture(NouvelleFacture)) { if (listeDeroulanteEntretien.EntretienSelectionne != null) { FactureEntretien EntretienLiee = new FactureEntretien(NouvelleFacture, listeDeroulanteEntretien.EntretienSelectionne); if (Program.GMBD.AjouterFactureEntretien(EntretienLiee)) { CalendrierRdv.ChargerListViewRdv(); ValidationProvider.Clear(); ValidationProvider.SetError(buttonAjouter, "Le rendez-vous a été correctement ajouté"); } } else if (checkBoxReparation.Checked == true) { ValidationProvider.Clear(); ValidationProvider.SetError(buttonAjouter, "Le rendez-vous a été correctement ajouté"); } } else { Program.GMBD.SupprimerRendezvous(NouvelleFacture.RendezVous); } } } else { errorProvider.SetError(dateTimePickerFin, "La date de fin ne peut pas être inférieure ou égale à la date d'arrivée"); } } else { errorProvider.SetError(buttonAjouter, "Vous devez choisir un entretien ou une réparation à effectuer"); } } else { errorProvider.SetError(buttonAjouter, "L'immatriculation doit être indiquée et validée"); } }