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;
         }
     }
 }
示例#3
0
 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);
        }
示例#5
0
 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");
            }
        }