Example #1
0
 public IEnumerable <ClientVehicule> EnumererVehiculeActifDuClient()
 {
     return(ClientVehicule.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM client_vehicule
                                                                 JOIN client ON client_vehicule.fk_id_client = client.id_client
                                                                 JOIN vehicule ON client_vehicule.fk_id_vehicule = vehicule.id_vehicule 
                                                                 WHERE client.id_client = {0} AND vehicule_actif = 1", Id)));
 }
        /// <summary>
        /// Methode permettant de vérifier si l'immatriculations et le numero de châssis existe déjà avant le changement de celle ci dans la base de données
        /// </summary>
        /// <param name="Entite"></param>
        /// <param name="Champ"></param>
        /// <param name="ValeurActuelle"></param>
        /// <param name="NouvelleValeur"></param>
        /// <param name="AccumulateurErreur"></param>
        private void ClientVehiculeEnAjout_AvantChangement(ClientVehicule Entite, ClientVehicule.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case ClientVehicule.Champs.Immatriculation:
                ClientVehicule ImmatriculationExiste = Program.GMBD.EnumererClientVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE immatriculation = {0} AND vehicule_actif = 1", NouvelleValeur), null).FirstOrDefault();
                if (ImmatriculationExiste != null)
                {
                    ValidationProvider.Clear();
                    AccumulateurErreur.NotifierErreur("Cette immatriculation existe déjà pour un autre véhicule!");
                }
                if (textBoxImmatriculation.Text.Length < 1)
                {
                    ValidationProvider.Clear();
                    AccumulateurErreur.NotifierErreur("L'immatriculation doit être indiquée");
                }
                break;

            case ClientVehicule.Champs.NumeroChassis:
            {
                ClientVehicule NumeroChassisExiste = Program.GMBD.EnumererClientVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE numero_chassis = {0} AND vehicule_actif = 1", NouvelleValeur), null).FirstOrDefault();
                if (NumeroChassisExiste != null)
                {
                    ValidationProvider.Clear();
                    AccumulateurErreur.NotifierErreur("Ce numéro de châssis existe déjà pour un autre véhicule!");
                }
                break;
            }
            }
        }
        /// <summary>
        /// Methode permettant de vérifier si l'immatriculations et le numero de châssis existe déjà avant le changement de celle ci dans la base de données
        /// </summary>
        /// <param name="Entite"></param>
        /// <param name="Champ"></param>
        /// <param name="ValeurActuelle"></param>
        /// <param name="NouvelleValeur"></param>
        /// <param name="AccumulateurErreur"></param>
        private void ClientVehiculeEnEdition_AvantChangement(ClientVehicule Entite, ClientVehicule.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case ClientVehicule.Champs.Immatriculation:
                ClientVehicule ImmatriculationExiste = Program.GMBD.EnumererClientVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE immatriculation = {0} AND fk_id_client != {1} AND vehicule_actif = 1", NouvelleValeur, Entite.Client.Id), null).FirstOrDefault();
                if (NouvelleValeur.ToString().Length < 1)
                {
                    AccumulateurErreur.NotifierErreur("Le numéro d'immatriculation doit comprendre au minimum un caractère");
                    break;
                }
                if (ImmatriculationExiste != null)
                {
                    ValidationProvider.Clear();
                    AccumulateurErreur.NotifierErreur("Cette immatriculation existe déjà pour un autre véhicule!");
                }
                break;

            case ClientVehicule.Champs.NumeroChassis:
            {
                ClientVehicule NumeroChassisExiste = Program.GMBD.EnumererClientVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE numero_chassis = {0} AND fk_id_client != {1} AND vehicule_actif = 1", NouvelleValeur, Entite.Client.Id), null).FirstOrDefault();
                if (NouvelleValeur.ToString().Length < 1)
                {
                    AccumulateurErreur.NotifierErreur("Le numéro de châssis doit comprendre au minimum un caractère");
                    break;
                }
                if (NumeroChassisExiste != null)
                {
                    ValidationProvider.Clear();
                    AccumulateurErreur.NotifierErreur("Ce numéro de châssis existe déjà pour un autre véhicule!");
                }
                break;
            }
            }
        }
Example #4
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="DateDebut">Date du début de l'entretien</param>
 /// <param name="DateFin">Date de fin de l'entretien</param>
 /// <param name="Statut">Statut du rendez-vous</param>
 /// <param name="ClientVehicule">Véhicule du client ayant ce rendez-vous</param>
 public RendezVousEntretienReparation(DateTime DateDebut, DateTime DateFin, Statut Statut, ClientVehicule ClientVehicule)
     : this()
 {
     DefinirId(Id);
     this.DateDebut      = DateDebut;
     this.DateFin        = DateFin;
     this.Statut         = Statut;
     this.ClientVehicule = ClientVehicule;
 }
Example #5
0
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 public RendezVousEntretienReparation()
     : base()
 {
     m_DateDebut      = DateTime.Now;
     m_DateFin        = DateTime.Now;
     m_Statut         = null;
     m_ClientVehicule = null;
     m_Facture        = null;
 }
Example #6
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="Connexion">Connexion au serveur MySQL</param>
 /// <param name="Enregistrement">Enregistrement d'où extraire les valeurs de champs</param>
 public RendezVousEntretienReparation(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement)
     : this()
 {
     base.Connexion = Connexion;
     if (Enregistrement != null)
     {
         DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_rendez_vous_entretien_reparation"));
         this.DateDebut      = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_debut");
         this.DateFin        = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_fin");
         this.Statut         = new Statut(Connexion, Enregistrement);
         this.ClientVehicule = new ClientVehicule(Connexion, Enregistrement);
     }
 }
 private void ClearFormulaire()
 {
     ClientVehicule.ViderFormulaire();
     dateTimePickerArrivee.Value = DateTime.Now;
     dateTimePickerFin.Value     = DateTime.Now;
     listeDeroulanteEntretien.EntretienSelectionne = null;
     checkBoxReparation.Checked         = false;
     textBoxInfoReparation.Text         = "";
     buttonAnnulationRendezvous.Enabled = false;
     buttonReactiveRdv.Enabled          = false;
     buttonAjouter.Enabled                = false;
     buttonModifier.Enabled               = false;
     ClientVehicule.ButtonAjouter         = true;
     ClientVehicule.ButtonModifier        = false;
     ClientVehicule.DesactiverListeClient = true;
 }
        /// <summary>
        /// Methode permettant de réagir sur l'erreur d'une edition de la partie véhicule du client
        /// </summary>
        /// <param name="Entite"></param>
        /// <param name="Champ"></param>
        /// <param name="MessageErreur"></param>
        private void ClientVehiculeEnEdition_SurErreur(ClientVehicule Entite, ClientVehicule.Champs Champ, string MessageErreur)
        {
            switch (Champ)
            {
            case ClientVehicule.Champs.Immatriculation:
                errorProviderClient.SetError(textBoxImmatriculation, MessageErreur);
                break;

            case ClientVehicule.Champs.NumeroChassis:
                errorProviderClient.SetError(textBoxNumeroChassis, MessageErreur);
                break;

            case ClientVehicule.Champs.Vehicule:
                errorProviderClient.SetError(listeDeroulanteModele, MessageErreur);
                break;
            }
        }
Example #9
0
 public Element(ClientVehicule ClientVehicule)
 {
     this.ClientVehicule = ClientVehicule;
 }
        private void buttonAcheter_Click(object sender, EventArgs e)
        {
            errorProvider.Clear();
            ValidationProvider.Clear();
            VehiculeVente VehiculeExiste = Program.GMBD.EnumererVehiculeVente(null, new PDSGBD.MyDB.CodeSql("JOIN vehicule ON vehicule_vente.fk_id_vehicule = vehicule.id_vehicule"), new PDSGBD.MyDB.CodeSql("WHERE id_vehicule_vente = {0}", m_Id), null).FirstOrDefault();

            if (VehiculeExiste != null)
            {
                if (formulaire_Client1.ClientEnCoursDeTraitement != null)
                {
                    // Si un véhicule a été repris, une indication de prix sur la reprise du véhicule doit être indiquée et le véhicule ne sera plus actif pour ce client.
                    if (listeDeroulanteClientVehicule1.ClientVehiculeSelectionne != null)
                    {
                        int DernierId = -1;
                        IEnumerable <FactureVente> ListeDesFactures = Program.GMBD.EnumererFactureVente(null, null, null, null);
                        if (ListeDesFactures.Count() == 0)
                        {
                            DernierId = 1;
                        }
                        else
                        {
                            DernierId = ListeDesFactures.Last().Id;
                        }

                        // On enregistrement le nouveau véhicule du client
                        ClientVehicule VehiculeAcheterParLeClient = new ClientVehicule();
                        VehiculeAcheterParLeClient.NumeroChassis   = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id)).NumeroChassis;
                        VehiculeAcheterParLeClient.VehiculeActif   = 1;
                        VehiculeAcheterParLeClient.Immatriculation = "";
                        VehiculeAcheterParLeClient.Vehicule        = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id)).Vehicule;
                        VehiculeAcheterParLeClient.Client          = formulaire_Client1.AccesALaListeClient.Client.FirstOrDefault();
                        if ((VehiculeAcheterParLeClient.EstValide) && (Program.GMBD.AjouterClientVehicule(VehiculeAcheterParLeClient)))
                        {
                            // On enregistre la facture
                            FactureVente NouvelleFactureDeVente = new FactureVente();
                            NouvelleFactureDeVente.Client         = formulaire_Client1.ClientEnCoursDeTraitement;
                            NouvelleFactureDeVente.Employe        = Form_Principal.Employe;
                            NouvelleFactureDeVente.VehiculeVente  = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id));
                            NouvelleFactureDeVente.PourcentageTva = int.Parse(numericUpDownTVA.Value.ToString());
                            double remise = 0;
                            if (double.TryParse(textBoxRemise.Text, out remise))
                            {
                                NouvelleFactureDeVente.RemiseSurReprise = remise;
                            }
                            else
                            {
                                NouvelleFactureDeVente.RemiseSurReprise = 0;
                            }
                            NouvelleFactureDeVente.DateVente     = DateTime.Now;
                            NouvelleFactureDeVente.NumeroFacture = string.Format("{0}-{1}", DateTime.Now.Year, DernierId + 1);
                            if ((NouvelleFactureDeVente.EstValide) && (Program.GMBD.AjouterNouvelleFactureVente(NouvelleFactureDeVente)))
                            {
                                if (listeDeroulanteClientVehicule1.ClientVehiculeSelectionne != null)
                                {
                                    ClientVehicule VehiculeADesactiver = listeDeroulanteClientVehicule1.ClientVehiculeSelectionne;
                                    VehiculeADesactiver.VehiculeActif = 0;
                                    if ((VehiculeADesactiver.EstValide) && (Program.GMBD.ModifierClientVehicule(VehiculeADesactiver)))
                                    {
                                        VehiculeExiste.StatutLivraison = Program.GMBD.EnumererStatut(null, null, new PDSGBD.MyDB.CodeSql("WHERE statut = \"Vendu\""), null).FirstOrDefault();
                                        if ((VehiculeExiste.EstValide) && (Program.GMBD.ModifierVehiculeVente(VehiculeExiste)))
                                        {
                                            GenerationFacturePDF NouvelleFacturePDF = new GenerationFacturePDF();
                                            NouvelleFacturePDF.GenerationFactureVente(NouvelleFactureDeVente);
                                            ValidationProvider.SetError(buttonAcheter, "Achat correctement effectué");
                                        }
                                    }

                                    ActualiserApresAchat();
                                    ActualiserListeVehiculeDispo();
                                }
                            }
                            else
                            {
                                Program.GMBD.SupprimerClientVehicule(VehiculeAcheterParLeClient);
                            }
                        }
                    }
                    // Sinon l'acheteur ne revend pas de véhicule à la concession donc un traitement simple sera effectué
                    else
                    {
                        int DernierId = -1;
                        IEnumerable <FactureVente> ListeDesFactures = Program.GMBD.EnumererFactureVente(null, null, null, null);
                        if (ListeDesFactures.Count() == 0)
                        {
                            DernierId = 1;
                        }
                        else
                        {
                            DernierId = ListeDesFactures.Last().Id;
                        }


                        ClientVehicule VehiculeAcheterParLeClient = new ClientVehicule();
                        VehiculeAcheterParLeClient.NumeroChassis   = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id)).NumeroChassis;
                        VehiculeAcheterParLeClient.VehiculeActif   = 1;
                        VehiculeAcheterParLeClient.Immatriculation = "";
                        VehiculeAcheterParLeClient.Vehicule        = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id)).Vehicule;
                        VehiculeAcheterParLeClient.Client          = formulaire_Client1.AccesALaListeClient.Client.FirstOrDefault();
                        if ((VehiculeAcheterParLeClient.EstValide) && (Program.GMBD.AjouterClientVehicule(VehiculeAcheterParLeClient)))
                        {
                            FactureVente NouvelleFactureDeVente = new FactureVente();
                            NouvelleFactureDeVente.Client           = formulaire_Client1.ClientEnCoursDeTraitement;
                            NouvelleFactureDeVente.Employe          = Form_Principal.Employe;
                            NouvelleFactureDeVente.VehiculeVente    = ListeVehiculeDispo.First(item => item.Id == int.Parse(m_Id));
                            NouvelleFactureDeVente.PourcentageTva   = int.Parse(numericUpDownTVA.Value.ToString());
                            NouvelleFactureDeVente.RemiseSurReprise = 0;
                            NouvelleFactureDeVente.DateVente        = DateTime.Now;
                            NouvelleFactureDeVente.NumeroFacture    = string.Format("{0}-{1}", DateTime.Now.Year, DernierId + 1);

                            if ((NouvelleFactureDeVente.EstValide) && (Program.GMBD.AjouterNouvelleFactureVente(NouvelleFactureDeVente)))
                            {
                                VehiculeExiste.StatutLivraison = Program.GMBD.EnumererStatut(null, null, new PDSGBD.MyDB.CodeSql("WHERE statut = \"Vendu\""), null).FirstOrDefault();
                                if ((VehiculeExiste.EstValide) && (Program.GMBD.ModifierVehiculeVente(VehiculeExiste)))
                                {
                                    ActualiserApresAchat();
                                    ActualiserListeVehiculeDispo();
                                    GenerationFacturePDF NouvelleFacturePDF = new GenerationFacturePDF();
                                    NouvelleFacturePDF.GenerationFactureVente(NouvelleFactureDeVente);
                                }
                            }
                            else
                            {
                                Program.GMBD.SupprimerClientVehicule(VehiculeAcheterParLeClient);
                            }
                        }
                    }
                }
                else
                {
                    errorProvider.SetError(buttonAcheter, "Veuillez choisir un client");
                }
            }
            else
            {
                errorProvider.SetError(buttonAcheter, "Ce véhicule n'existe plus, veuillez en choisir un autre");
            }
        }
        /// <summary>
        /// Se produit lors du click sur le bouton d'impression d'une facture
        /// </summary>
        private void buttonImprimerFacture_Click(object sender, EventArgs e)
        {
            errorProvider.Clear();
            FactureVente FactureAModifier = listeDeroulanteFactureVente1.FactureVenteSelectionne;

            FactureAModifier.SurErreur       += FactureVenteEnEdition_SurErreur;
            FactureAModifier.AvantChangement += FactureEnEdition_AvantChangement;
            int Remise = 0;

            if (listeDeroulanteClientVehicule1.ClientVehiculeSelectionne != null)
            {
                if (string.IsNullOrWhiteSpace(textBoxRemise.Text))
                {
                    FactureAModifier.RemiseSurReprise = 0;
                }
                else if (int.TryParse(textBoxRemise.Text, out Remise))
                {
                    if (Remise > 0)
                    {
                        FactureAModifier.RemiseSurReprise = Remise;
                    }
                }
                else
                {
                    FactureAModifier.RemiseSurReprise = double.MaxValue;
                }
            }
            else
            {
                FactureAModifier.RemiseSurReprise = 0;
            }
            FactureAModifier.Client         = listeDeroulanteFactureVente1.FactureVenteSelectionne.Client;
            FactureAModifier.DateVente      = DateTime.Now;
            FactureAModifier.PourcentageTva = int.Parse(numericUpDownTVA.Value.ToString());

            if (FactureAModifier.EstValide && Program.GMBD.ModifierFactureVente(FactureAModifier))
            {
                VehiculeVente VehiculeVenteAModifier = listeDeroulanteFactureVente1.FactureVenteSelectionne.VehiculeVente;
                VehiculeVenteAModifier.SurErreur            += VehiculeVenteEnEdition_SurErreur;
                VehiculeVenteAModifier.AvantChangement      += VehiculeVenteEnEdition_AvantChangement;
                VehiculeVenteAModifier.DateArrivee           = dateTimePickerDateReception.Value;
                VehiculeVenteAModifier.DateMiseEnCirculation = DateTime.Now;
                VehiculeVenteAModifier.Kilometrage           = int.Parse(numericUpDownKilometrage.Value.ToString());
                VehiculeVenteAModifier.NumeroChassis         = textBoxNumChassis.Text;
                VehiculeVenteAModifier.AnneeConstruction     = int.Parse(numericUpDownAnneeConstruction.Value.ToString());
                VehiculeVenteAModifier.StatutLivraison       = Program.GMBD.EnumererStatut(null, null, new PDSGBD.MyDB.CodeSql("WHERE statut = \"Vendu\""), null).FirstOrDefault();

                if (VehiculeVenteAModifier.EstValide && Program.GMBD.ModifierVehiculeVente(VehiculeVenteAModifier))
                {
                    ClientVehicule NouveauClientVehicule = new ClientVehicule();
                    NouveauClientVehicule.Client          = listeDeroulanteFactureVente1.FactureVenteSelectionne.Client;
                    NouveauClientVehicule.VehiculeActif   = 1;
                    NouveauClientVehicule.Vehicule        = listeDeroulanteFactureVente1.FactureVenteSelectionne.VehiculeVente.Vehicule;
                    NouveauClientVehicule.NumeroChassis   = listeDeroulanteFactureVente1.FactureVenteSelectionne.VehiculeVente.NumeroChassis;
                    NouveauClientVehicule.Immatriculation = "";
                    if (NouveauClientVehicule.EstValide && Program.GMBD.AjouterClientVehicule(NouveauClientVehicule))
                    {
                        if (listeDeroulanteClientVehicule1.ClientVehiculeSelectionne != null)
                        {
                            ClientVehicule VehiculeReprisParLaConcession = listeDeroulanteClientVehicule1.ClientVehiculeSelectionne;
                            VehiculeReprisParLaConcession.VehiculeActif = 0;
                            if ((VehiculeReprisParLaConcession.EstValide) && (Program.GMBD.ModifierClientVehicule(VehiculeReprisParLaConcession)))
                            {
                                RefreshPage();
                                GenerationFacturePDF FacturationPDF = new GenerationFacturePDF();
                                FacturationPDF.GenerationFactureVente(FactureAModifier);
                                listeDeroulanteFactureVente1.FactureVenteSelectionne = null;
                            }
                        }
                        else
                        {
                            RefreshPage();
                            GenerationFacturePDF FacturationPDF = new GenerationFacturePDF();
                            FacturationPDF.GenerationFactureVente(FactureAModifier);
                            listeDeroulanteFactureVente1.FactureVenteSelectionne = null;
                        }
                    }
                }
            }
        }
 private void formulaire_ClientVehicule1_Load(object sender, EventArgs e)
 {
     ClientVehicule.ChargerDonneesListView();
 }
        /// <summary>
        /// S'active au moment d'une nouvelle sélection ou d'une première sélection sur mon userControl de calendrier
        /// </summary>
        private void FormCalendrier_ChangementSelectionClient(object sender, EventArgs e)
        {
            if (CalendrierRdv.FactureSelectionnee != null)
            {
                if (!RechargementApresModification)
                {
                    errorProvider.Clear();
                    ValidationProvider.Clear();
                }
                ClientVehicule.DesactiverListeClient       = false;
                buttonReactualiser.Enabled                 = true;
                ClientVehicule.ClientSelectionneCalendrier = CalendrierRdv.FactureSelectionnee.RendezVous.ClientVehicule;
                ClientVehicule.ListeDeroulante_ChangementClient(sender, e);
                dateTimePickerArrivee.Value = CalendrierRdv.FactureSelectionnee.RendezVous.DateDebut;
                dateTimePickerFin.Value     = CalendrierRdv.FactureSelectionnee.RendezVous.DateFin;
                listeDeroulanteEntretien.EntretienSelectionne = Program.GMBD.EnumererEntretien(null, new MyDB.CodeSql("JOIN facture_entretien ON entretien.id_entretien = facture_entretien.fk_id_entretien"), new MyDB.CodeSql("WHERE fk_id_facture = {0}", CalendrierRdv.FactureSelectionnee.Id), null).FirstOrDefault();

                // Si mon statut correspond à "En attente" et est différent de "Terminé" et que la date de début du rendez-vous est supérieure à la date du jour
                if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "En attente") &&
                    (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") &&
                    (CalendrierRdv.FactureSelectionnee.RendezVous.DateDebut > DateTime.Now))
                {
                    buttonReactiveRdv.Enabled          = false;
                    buttonAnnulationRendezvous.Enabled = true;
                    buttonAjouter.Enabled           = false;
                    buttonModifier.Enabled          = true;
                    buttonImprimerLaFacture.Enabled = false;
                }
                // Si mon statut correspond à "Annuler" et est différent de "Terminé" et que la date de début du rendez-vous est supérieure à la date du jour
                else if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "Annuler") &&
                         (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") &&
                         (CalendrierRdv.FactureSelectionnee.RendezVous.DateDebut > DateTime.Now))
                {
                    buttonReactiveRdv.Enabled          = true;
                    buttonAnnulationRendezvous.Enabled = false;
                    buttonAjouter.Enabled           = false;
                    buttonModifier.Enabled          = true;
                    buttonImprimerLaFacture.Enabled = false;
                }
                // Si mon statut correspond à "Annuler" et que la date de début du rendez-vous est inférieure à la date du jour
                else if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "Annuler") && (CalendrierRdv.FactureSelectionnee.RendezVous.DateDebut < DateTime.Now))
                {
                    ClientVehicule.ButtonModifier      = false;
                    ClientVehicule.ButtonAjouter       = false;
                    buttonModifier.Enabled             = false;
                    buttonAjouter.Enabled              = false;
                    buttonAnnulationRendezvous.Enabled = false;
                    buttonImprimerLaFacture.Enabled    = false;
                }
                // Si la réparation et/ou l'entretien sont terminés
                else if (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "Terminé")
                {
                    ClientVehicule.ButtonModifier      = false;
                    ClientVehicule.ButtonAjouter       = false;
                    buttonModifier.Enabled             = false;
                    buttonAjouter.Enabled              = false;
                    buttonAnnulationRendezvous.Enabled = false;
                    buttonImprimerLaFacture.Enabled    = true;
                }
                else
                {
                    buttonImprimerLaFacture.Enabled = false;
                }
                if (CalendrierRdv.FactureSelectionnee.Informations != "")
                {
                    textBoxInfoReparation.Enabled = true;
                    checkBoxReparation.Checked    = true;
                    textBoxInfoReparation.Text    = CalendrierRdv.FactureSelectionnee.Informations;
                }
                else
                {
                    textBoxInfoReparation.Enabled = false;
                    checkBoxReparation.Checked    = false;
                    textBoxInfoReparation.Text    = "";
                }

                Facture ClientDejaReference = Program.GMBD.EnumererFacture(null, new MyDB.CodeSql(@"JOIN rendez_vous_entretien_reparation ON facture.fk_id_rdv = rendez_vous_entretien_reparation.id_rendez_vous_entretien_reparation
                                                                                                    JOIN statut ON rendez_vous_entretien_reparation.fk_id_statut = statut.id_statut"),
                                                                           new MyDB.CodeSql("WHERE rendez_vous_entretien_reparation.fk_id_client_vehicule = {0} AND (statut.statut = \"Terminé\" OR statut.statut != \"Annuler\")", ClientVehicule.ClientVehiculeEnCoursDeTraitement.Id), null).FirstOrDefault();
                if (ClientDejaReference != null)
                {
                    ClientVehicule.DesactiverTextBoxImmatriculation = false;
                    ClientVehicule.DesactiverTextBoxNumChassis      = false;
                    ClientVehicule.DesactiverListeModele            = false;
                }
                else
                {
                    ClientVehicule.DesactiverTextBoxImmatriculation = true;
                    ClientVehicule.DesactiverTextBoxNumChassis      = true;
                    ClientVehicule.DesactiverListeModele            = true;
                }

                RechargementApresModification = false;
            }
        }
        private void buttonAjouter_Click(object sender, EventArgs e)
        {
            errorProviderClient.Clear();
            ValidationProvider.Clear();
            if (listeDeroulanteClient.ClientSelectionne == null)
            {
                Client NouveauClient = new Client();
                NouveauClient.SurErreur       += ClientEnEdition_SurErreur;
                NouveauClient.AvantChangement += ClientEnEdition_AvantChangement;
                NouveauClient.Nom              = textBoxNom.Text;
                NouveauClient.Prenom           = textBoxPrenom.Text;
                NouveauClient.Email            = textBoxEmail.Text;
                NouveauClient.Civilite         = listeDeroulanteCivilite.CiviliteSelectionne;
                NouveauClient.Adresse          = listeDeroulanteLocaliteCP.AdresseSelectionne;
                NouveauClient.DateNaissance    = dateTimePickerDateNaissance.Value;
                NouveauClient.Rue              = textBoxAdresse.Text;
                NouveauClient.NumeroTelephone  = textBoxNumTel.Text;
                NouveauClient.NumeroHabitation = textBoxNumHabitation.Text;

                if ((NouveauClient.EstValide) && (Program.GMBD.AjouterClient(NouveauClient)))
                {
                    errorProviderClient.Clear();
                    ClientVehicule NouveauClientVehicule = new ClientVehicule();
                    NouveauClientVehicule.SurErreur       += ClientVehiculeEnEdition_SurErreur;
                    NouveauClientVehicule.AvantChangement += ClientVehiculeEnAjout_AvantChangement;
                    NouveauClientVehicule.NumeroChassis    = textBoxNumeroChassis.Text;
                    NouveauClientVehicule.Immatriculation  = textBoxImmatriculation.Text;
                    NouveauClientVehicule.Vehicule         = listeDeroulanteModele.VehiculeSelectionne;
                    NouveauClientVehicule.Client           = NouveauClient;
                    NouveauClientVehicule.VehiculeActif    = 1;

                    if ((NouveauClientVehicule.EstValide) && (Program.GMBD.AjouterClientVehicule(NouveauClientVehicule)))
                    {
                        ClientVehiculeEnCoursDeTraitement = NouveauClientVehicule;
                        RefreshListeClient();
                        listeDeroulanteClient.ClientSelectionne = NouveauClient;
                        listeDeroulanteClientVehicule.ClientVehiculeSelectionne = NouveauClientVehicule;
                        if (ActivationButtonSurChangementSelection != null)
                        {
                            ActivationButtonSurChangementSelection(this, EventArgs.Empty);
                        }
                        ValidationProvider.SetError(buttonAjouter, "Client correctement enregistré");
                    }
                    else
                    {
                        Program.GMBD.SupprimerClient(NouveauClient);
                    }
                }
            }
            else if (listeDeroulanteClient.ClientSelectionne != null)
            {
                ClientVehicule NouveauClientVehicule = new ClientVehicule();
                NouveauClientVehicule.SurErreur       += ClientVehiculeEnEdition_SurErreur;
                NouveauClientVehicule.AvantChangement += ClientVehiculeEnAjout_AvantChangement;
                NouveauClientVehicule.NumeroChassis    = textBoxNumeroChassis.Text;
                NouveauClientVehicule.Immatriculation  = textBoxImmatriculation.Text;
                NouveauClientVehicule.Vehicule         = listeDeroulanteModele.VehiculeSelectionne;
                NouveauClientVehicule.Client           = listeDeroulanteClient.ClientSelectionne;
                NouveauClientVehicule.VehiculeActif    = 1;

                if ((NouveauClientVehicule.EstValide) && (Program.GMBD.AjouterClientVehicule(NouveauClientVehicule)))
                {
                    buttonAjouter.Enabled = true;
                    ValidationProvider.SetError(buttonAjouter, "Client correctement enregistré");
                    RefreshListeClientVehicule();
                    listeDeroulanteClientVehicule.ClientVehiculeSelectionne = NouveauClientVehicule;
                }
            }
        }