예제 #1
0
 public IEnumerable <Facture> EnumererFacture()
 {
     return(Facture.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM facture 
                                                         JOIN reparation ON facture.id_facture = reparation.fk_id_facture
                                                         JOIN article ON reparation.fk_id_article = article.id_article
                                                         JOIN facture_entretien ON facture.id_facture = facture_entretien.id_facture_entretien
                                                         JOIN entretien ON facture_entretien.fk_id_entretien = entretien.id_entretien
                                                         JOIN rendez_vous_entretien_reparation ON facture.fk_id_rdv = rendez_vous_entretien_reparation.id_rendez_vous_entretien_reparation
                                                         JOIN client_vehicule ON rendez_vous_entretien_reparation.fk_id_client_vehicule = client_vehicule.id_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 facture.fk_id_rdv = {0}", Id)));
 }
예제 #2
0
 private void pictureBoxRetirerH_Click(object sender, EventArgs e)
 {
     if ((CalendrierRdv.FactureSelectionnee != null) &&
         (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") &&
         (CalendrierRdv.FactureSelectionnee.RendezVous.DateFin >= DateTime.Now))
     {
         Facture FactureExiste = 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"), new MyDB.CodeSql("WHERE id_facture = {0}", CalendrierRdv.FactureSelectionnee.Id), null).FirstOrDefault();
         if (FactureExiste != null)
         {
             FactureExiste.HeurePrestation = FactureExiste.HeurePrestation - 1;
             if ((FactureExiste.EstValide) && (Program.GMBD.ModifierFacture(FactureExiste)))
             {
                 numericUpDownH.Value = FactureExiste.HeurePrestation;
                 double x = double.Parse(textBoxPrixTotal.Text.Remove(textBoxPrixTotal.Text.Length - 1)) - c_PrixParHeure;
                 textBoxPrixTotal.Text = string.Format("{0} €", x);
             }
         }
     }
 }
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 public FactureEntretien()
     : base()
 {
     m_FactureLiee = null;
     m_Entretien   = null;
 }
 public Element(Facture Facture)
 {
     this.Facture = Facture;
 }
예제 #5
0
        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 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");
            }
        }
        /// <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;
            }
        }
예제 #9
0
        /// <summary>
        /// Met à jour la listview des Factures et y insére les elements
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Entites"></param>
        /// <returns></returns>
        private bool MettreAJourListe <T>(IEnumerable <T> Entites)
            where T : class, IEntiteMySQL
        {
            bool EstFacture = typeof(T).Equals(typeof(Facture));

            if (!EstFacture)
            {
                return(false);
            }
            listViewFacture.Items.Clear();
            if (Entites == null)
            {
                return(false);
            }
            if (EstFacture && (listViewFacture.Columns.Count != 2))
            {
                listViewFacture.Columns.Clear();

                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "Prenom",
                    Text      = "Prénom",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "Nom",
                    Text      = "Nom",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "NumeroFacture",
                    Text      = "Numéro de facture",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "Modele",
                    Text      = "Modèle du véhicule",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "Immatriculation",
                    Text      = "Immatriculation",
                    TextAlign = HorizontalAlignment.Center,
                });
                listViewFacture.Columns.Add(new ColumnHeader()
                {
                    Name      = "Statut",
                    Text      = "Statut",
                    TextAlign = HorizontalAlignment.Center,
                });
            }

            foreach (T Entite in Entites)
            {
                Facture Facture = Entite as Facture;

                ListViewItem NouvelElement = new ListViewItem()
                {
                    Tag  = Entite,
                    Text = Facture.RendezVous.ClientVehicule.Client.Prenom,
                };
                NouvelElement.SubItems.Add(Facture.RendezVous.ClientVehicule.Client.Nom);
                NouvelElement.SubItems.Add(Facture.NumeroFacture);
                NouvelElement.SubItems.Add(Facture.RendezVous.ClientVehicule.Vehicule.Modele);
                NouvelElement.SubItems.Add(Facture.RendezVous.ClientVehicule.Immatriculation);
                NouvelElement.SubItems.Add(Facture.RendezVous.Statut.StatutOperation);
                listViewFacture.Items.Add(NouvelElement);
            }

            listViewFacture.Visible = false;
            foreach (ColumnHeader Colonne in listViewFacture.Columns)
            {
                Colonne.Width = listViewFacture.Width / listViewFacture.Columns.Count;
            }

            listViewFacture.Visible = true;
            listViewFacture_SelectedIndexChanged(listViewFacture, EventArgs.Empty);
            return(true);
        }