/// <summary> /// Constructeur par défaut /// </summary> public VehiculeCaracteristique() : base() { m_Valeur = null; m_Vehicule = null; m_Caracteristique = null; }
/// <summary> /// Constructeur spécifique /// </summary> /// <param name="Vehicule">Vehicule ayant cette option disponible</param> /// <param name="OptionVehicule">Option disponible par ce véhicule</param> public VehiculeOptionVehicule(Vehicule Vehicule, OptionVehicule OptionVehicule) : this() { DefinirId(Id); this.Vehicule = Vehicule; this.OptionVehicule = OptionVehicule; }
/// <summary> /// Se produit lors du clic sur le bouton d'ajout des informations propres du véhicule /// </summary> private void buttonAjouter_Click(object sender, EventArgs e) { errorProvider.Clear(); ValidationProvider.Clear(); Vehicule NouveauVehicule = new Vehicule(); NouveauVehicule.SurErreur += NouveauVehicule_SurErreur; NouveauVehicule.AvantChangement += NouveauVehicule_AvantChangement; NouveauVehicule.Modele = textBoxModele.Text; NouveauVehicule.PrixVehicule = double.Parse(numericUpDownPrix.Value.ToString()); NouveauVehicule.TempsLivraison = int.Parse(numericUpDownTempsLivraison.Value.ToString()); NouveauVehicule.TypeVehicule = Program.GMBD.EnumererTypeVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE type = {0}", (EstMoto) ? "Moto" : "Voiture"), null).FirstOrDefault(); NouveauVehicule.Disponible = 1; if (listeDeroulanteVehicule1.VehiculeSelectionne != null) { NouveauVehicule.NomImage = (ImageChangee) ? pictureBox1.Tag.ToString() : listeDeroulanteVehicule1.VehiculeSelectionne.NomImage; } else { NouveauVehicule.NomImage = (ImageChangee) ? pictureBox1.Tag.ToString() : null; } if ((NouveauVehicule.EstValide) && (Program.GMBD.AjouterVehicule(NouveauVehicule))) { listeDeroulanteVehicule1.Vehicule = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type"), new PDSGBD.MyDB.CodeSql("WHERE type = {0} AND disponible = 1", (EstVoiture) ? "Voiture" : "Moto"), null); listeDeroulanteVehicule1.VehiculeSelectionne = NouveauVehicule; if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Desktop).ToString() + "/ImagesVehicule/" + listeDeroulanteVehicule1.VehiculeSelectionne.NomImage + "")) { pictureBox1.Image = Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.Desktop).ToString() + "/ImagesVehicule/" + listeDeroulanteVehicule1.VehiculeSelectionne.NomImage + ""); } ImageChangee = false; ValidationProvider.SetError(buttonAjouter, (EstMoto) ? "Moto correctement sauvegardée" : "Voiture correctement sauvegardée"); } }
/// <summary> /// Constructeur spécifique /// </summary> /// <param name="Vehicule">Véhicule ayant ce pack disponible</param> /// <param name="PackOptionPackVehicule">Pack disponible pour ce véhicule</param> public PopvVehicule(Vehicule Vehicule, PackOptionPackVehicule PackOptionPackVehicule) : this() { DefinirId(Id); this.Vehicule = Vehicule; this.PackOptionPackVehicule = PackOptionPackVehicule; }
/// <summary> /// Constructeur spécifique /// </summary> /// <param name="Valeur">Valeur de cette caractéristique</param> /// <param name="Vehicule">Véhicule lié à cette caractéristique</param> /// <param name="Caracteristique">Caractéritique correspondant à cet enregistrement</param> public VehiculeCaracteristique(int Quantite, Vehicule Vehicule, Caracteristique Caracteristique) : this() { DefinirId(Id); this.Vehicule = Vehicule; this.Caracteristique = Caracteristique; }
/// <summary> /// Constructeur par défaut /// </summary> public ClientVehicule() : base() { m_Immatriculation = ""; m_NumeroChassis = null; m_VehiculeActif = -1; m_Client = null; m_Vehicule = null; }
/// <summary> /// Constructeur spécifique /// </summary> /// <param name="Immatriculation">Immatriculation du véhicule</param> /// <param name="NumeroChassis">Numéro de châssis du véhicule</param> /// <param name="VehiculeActif">Permet de savoir si ce véhicule appartient toujours à ce client</param> /// <param name="Client">Client à qui appartient le véhicule</param> /// <param name="Vehicule">Modèle du véhicule</param> public ClientVehicule(string Immatriculation, string NumeroChassis, int VehiculeActif, Client Client, Vehicule Vehicule) : this() { DefinirId(Id); this.Immatriculation = Immatriculation; this.NumeroChassis = NumeroChassis; this.VehiculeActif = VehiculeActif; this.Client = Client; this.Vehicule = Vehicule; }
/// <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 ClientVehicule(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this() { DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_client_vehicule")); this.Immatriculation = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "immatriculation"); this.NumeroChassis = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "numero_chassis"); this.VehiculeActif = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "vehicule_actif"); this.Client = new Client(Connexion, Enregistrement); this.Vehicule = new Vehicule(Connexion, Enregistrement); }
private void buttonSupprimer_Click(object sender, EventArgs e) { errorProvider.Clear(); ValidationProvider.Clear(); if (listeDeroulanteVehicule1.VehiculeSelectionne != null) { Vehicule VehiculeReference = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type") , new PDSGBD.MyDB.CodeSql(@"WHERE (vehicule.id_vehicule IN(SELECT client_vehicule.fk_id_vehicule FROM client_vehicule WHERE fk_id_vehicule = {0}) OR vehicule.id_vehicule IN(SELECT vehicule_vente.fk_id_vehicule FROM vehicule_vente WHERE fk_id_vehicule = {0})) AND id_vehicule = {0}", listeDeroulanteVehicule1.VehiculeSelectionne.Id), null).FirstOrDefault(); // Si le véhicule est référencé au moins une fois dans les tables désignées au dessus on ne supprime que fictivement if (VehiculeReference != null) { VehiculeReference.Disponible = 0; if ((VehiculeReference.EstValide) && (Program.GMBD.ModifierVehicule(VehiculeReference))) { ValidationProvider.SetError(buttonSupprimer, "Ce véhicule a été correctement supprimé"); textBoxModele.Text = ""; numericUpDownPrix.Value = 0; numericUpDownTempsLivraison.Value = 1; pictureBox1.Image = null; listeDeroulanteVehicule1.VehiculeSelectionne = null; listeDeroulanteVehicule1.Vehicule = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type"), new PDSGBD.MyDB.CodeSql("WHERE disponible = 1 AND type = {0}", (EstMoto) ? "Moto" : "Voiture"), null); ficheTechnique1.Caracteristique = null; panelAjouterCaract.BringToFront(); buttonAjouter.Enabled = true; buttonModifier.Enabled = false; buttonSupprimer.Enabled = false; buttonAnnulerModele.Enabled = true; } } // Sinon aucun problème pour une suppression en cascade des packs, options et caractéristiques else { if (Program.GMBD.SupprimerVehicule(listeDeroulanteVehicule1.VehiculeSelectionne)) { ValidationProvider.SetError(buttonSupprimer, "Ce véhicule a été correctement supprimé"); textBoxModele.Text = ""; numericUpDownPrix.Value = 0; numericUpDownTempsLivraison.Value = 1; pictureBox1.Image = null; listeDeroulanteVehicule1.VehiculeSelectionne = null; listeDeroulanteVehicule1.Vehicule = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type"), new PDSGBD.MyDB.CodeSql("WHERE disponible = 1 AND type = {0}", (EstMoto) ? "Moto" : "Voiture"), null); ficheTechnique1.Caracteristique = null; panelAjouterCaract.BringToFront(); buttonAjouter.Enabled = true; buttonModifier.Enabled = false; buttonSupprimer.Enabled = false; buttonAnnulerModele.Enabled = true; } } } }
/// <summary> /// Se produit lors d'un changement de sélection dans la liste déroulante /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListeDeroulanteVehicule_SurChangementSelection(object sender, EventArgs e) { if (listeDeroulanteVehicule1.VehiculeSelectionne != null) { errorProvider.Clear(); ValidationProvider.Clear(); // Permet de charger l'outils comprenant l'interface de liaison entre les packs et le véhicule choisi lierPack.Vehicule = listeDeroulanteVehicule1.VehiculeSelectionne; lierPack.ChargerPanelPack(); // Permet de charger l'outils comprenant l'interface de liaison entre les options et le véhicule choisi lierOptions.Vehicule = listeDeroulanteVehicule1.VehiculeSelectionne; lierOptions.ChargerPanelOptions(); Vehicule VehiculeReference = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type") , new PDSGBD.MyDB.CodeSql(@"WHERE (vehicule.id_vehicule IN(SELECT client_vehicule.fk_id_vehicule FROM client_vehicule WHERE fk_id_vehicule = {0}) OR vehicule.id_vehicule IN(SELECT vehicule_vente.fk_id_vehicule FROM vehicule_vente WHERE fk_id_vehicule = {0})) AND id_vehicule = {0}", listeDeroulanteVehicule1.VehiculeSelectionne.Id), null).FirstOrDefault(); if (VehiculeReference == null) { buttonModifier.Enabled = true; panelLier.Enabled = true; } else { buttonModifier.Enabled = false; panelLier.Enabled = false; } buttonLierOptions.Enabled = true; buttonAjouter.Enabled = false; buttonSupprimer.Enabled = true; buttonLierPack.Enabled = true; lierPack.Enabled = true; buttonPanelLierCaract.Enabled = true; ficheTechnique1.Caracteristique = listeDeroulanteVehicule1.VehiculeSelectionne.EnumVehiculeCaracteristique; textBoxModele.Text = listeDeroulanteVehicule1.VehiculeSelectionne.Modele; numericUpDownPrix.Value = decimal.Parse(listeDeroulanteVehicule1.VehiculeSelectionne.PrixVehicule.ToString()); numericUpDownTempsLivraison.Value = decimal.Parse(listeDeroulanteVehicule1.VehiculeSelectionne.TempsLivraison.ToString()); if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Desktop).ToString() + "/ImagesVehicule/" + listeDeroulanteVehicule1.VehiculeSelectionne.NomImage + "")) { pictureBox1.Image = Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.Desktop).ToString() + "/ImagesVehicule/" + listeDeroulanteVehicule1.VehiculeSelectionne.NomImage + ""); } } else if (listeDeroulanteVehicule1.VehiculeSelectionne == null) { buttonLierOptions.Enabled = false; buttonPanelLierCaract.Enabled = false; panelLier.Enabled = false; buttonLierPack.Enabled = false; lierPack.Enabled = false; } }
/// <summary> /// Constructeur spécifique /// </summary> /// <param name="AnneeConstruction">L'année de construction du véhicule</param> /// <param name="DateArrivee">La date d'arrivée du véhicule en concession</param> /// <param name="DateCommande">La date de commande du véhicule</param> /// <param name="DateMiseEnCirculation">La date de mise en circulation du véhicule</param> /// <param name="Kilometrage">Le kilomètrage du véhicule</param> /// <param name="NumeroChassis">Le numéro de châssis du véhicule</param> /// <param name="PrixTotal">Prix total du véhicule</param> /// <param name="StatutLivraison">Le statut de livraison du véhicule</param> /// <param name="Vehicule">Le modèle du véhicule</param> public VehiculeVente(int AnneeConstruction, DateTime DateArrivee, DateTime DateCommande, DateTime DateMiseEnCirculation, int Kilometrage, string NumeroChassis, double PrixTotal, Statut StatutLivraison, Vehicule Vehicule) : this() { DefinirId(Id); this.AnneeConstruction = AnneeConstruction; this.DateArrivee = DateArrivee; this.DateCommande = DateCommande; this.DateMiseEnCirculation = DateMiseEnCirculation; this.Kilometrage = Kilometrage; this.NumeroChassis = NumeroChassis; this.PrixTotal = PrixTotal; this.StatutLivraison = StatutLivraison; this.Vehicule = Vehicule; }
/// <summary> /// Se produit avant la modification en base de données /// </summary> private void VehiculeAModifier_AvantChangement(Vehicule Entite, Vehicule.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur) { switch (Champ) { case Vehicule.Champs.Modele: Vehicule ModeleExiste = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type_vehicule ON vehicule.fk_id_type = type.id_type"), new PDSGBD.MyDB.CodeSql("WHERE modele = {0} AND id_vehicule != {1} AND type = {2} AND disponible = 1", NouvelleValeur, Entite.Id, (EstMoto) ? "Moto" : "Voiture"), null).FirstOrDefault(); if (ModeleExiste != null) { ValidationProvider.Clear(); AccumulateurErreur.NotifierErreur("Ce modèle existe déjà"); } break; } }
/// <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 VehiculeVente(PDSGBD.MyDB Connexion, PDSGBD.MyDB.IEnregistrement Enregistrement) : this() { DefinirId(Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "id_vehicule_vente")); this.AnneeConstruction = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "annee_construction"); this.DateArrivee = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_arrivee"); this.DateCommande = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_commande"); this.DateMiseEnCirculation = Enregistrement.ValeurChampComplet <DateTime>(NomDeLaTablePrincipale, "date_mise_en_circulation"); this.Kilometrage = Enregistrement.ValeurChampComplet <int>(NomDeLaTablePrincipale, "kilometrage"); this.NumeroChassis = Enregistrement.ValeurChampComplet <string>(NomDeLaTablePrincipale, "numero_chassis"); this.PrixTotal = Enregistrement.ValeurChampComplet <double>(NomDeLaTablePrincipale, "prix_total"); this.StatutLivraison = new Statut(Connexion, Enregistrement); this.Vehicule = new Vehicule(Connexion, Enregistrement); }
/// <summary> /// Se produit avant le changement dans la base de données /// </summary> private void NouveauVehicule_AvantChangement(Vehicule Entite, Vehicule.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur) { switch (Champ) { case Vehicule.Champs.Modele: Vehicule ModeleExiste = Program.GMBD.EnumererVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE modele = {0} AND disponible = 1", NouvelleValeur) , null).FirstOrDefault(); if (ModeleExiste != null) { AccumulateurErreur.NotifierErreur("Ce nom de modèle existe déjà"); } break; } }
/// <summary> /// Constructeur par défaut /// </summary> public VehiculeVente() : base() { m_AnneeConstruction = -1; m_DateArrivee = DateTime.MaxValue; m_DateMiseEnCirculation = DateTime.MaxValue; m_DateCommande = DateTime.MaxValue; m_Kilometrage = -1; m_PrixTotal = -1.0; m_NumeroChassis = null; m_StatutLivraison = null; m_Vehicule = null; m_ChoixOptionVehicule = null; m_ChoixPackVehicule = null; m_FactureVente = null; }
/// <summary> /// Indique sur quel UserControl mettre le message d'erreur pour chacune des valeurs modifiables /// </summary> private void NouveauVehicule_SurErreur(Vehicule Entite, Vehicule.Champs Champ, string MessageErreur) { switch (Champ) { case Vehicule.Champs.Modele: errorProvider.SetError(textBoxModele, MessageErreur); break; case Vehicule.Champs.PrixVehicule: errorProvider.SetError(numericUpDownTempsLivraison, MessageErreur); break; case Vehicule.Champs.NomImage: errorProvider.SetError(buttonAjouterImage, MessageErreur); break; case Vehicule.Champs.TempsLivraison: errorProvider.SetError(numericUpDownTempsLivraison, MessageErreur); break; default: break; } }
/// <summary> /// Se produit lors du clic sur le bouton de modification des données du véhicule /// </summary> private void buttonModifier_Click(object sender, EventArgs e) { errorProvider.Clear(); ValidationProvider.Clear(); if (listeDeroulanteVehicule1.VehiculeSelectionne != null) { Vehicule VehiculeAModifier = listeDeroulanteVehicule1.VehiculeSelectionne; VehiculeAModifier.SurErreur += NouveauVehicule_SurErreur; VehiculeAModifier.AvantChangement += VehiculeAModifier_AvantChangement;; VehiculeAModifier.Modele = textBoxModele.Text; VehiculeAModifier.PrixVehicule = double.Parse(numericUpDownPrix.Value.ToString()); VehiculeAModifier.TempsLivraison = int.Parse(numericUpDownTempsLivraison.Value.ToString()); VehiculeAModifier.Disponible = listeDeroulanteVehicule1.VehiculeSelectionne.Disponible; VehiculeAModifier.NomImage = (ImageChangee) ? openFileDialog1.SafeFileName : listeDeroulanteVehicule1.VehiculeSelectionne.NomImage; VehiculeAModifier.TypeVehicule = Program.GMBD.EnumererTypeVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE type = {0}", (EstMoto) ? "Moto" : "Voiture"), null).FirstOrDefault(); if ((VehiculeAModifier.EstValide) && (Program.GMBD.ModifierVehicule(VehiculeAModifier))) { ValidationProvider.SetError(buttonModifier, "Modification correctement effectuée"); listeDeroulanteVehicule1.Vehicule = Program.GMBD.EnumererVehicule(null, new PDSGBD.MyDB.CodeSql("JOIN type ON vehicule.fk_id_type = type.id_type"), new PDSGBD.MyDB.CodeSql("WHERE disponible = 1 AND type = {0}", (EstMoto) ? "Moto" : "Voiture"), null); listeDeroulanteVehicule1.VehiculeSelectionne = VehiculeAModifier; ImageChangee = false; } } }
/// <summary> /// Constructeur par défaut /// </summary> public VehiculeOptionVehicule() : base() { m_Vehicule = null; m_OptionVehicule = null; }
/// <summary> /// Constructeur par défaut /// </summary> public PopvVehicule() : base() { m_Vehicule = null; m_PackOptionPackVehicule = null; }
public Element(Vehicule Vehicule) { this.Vehicule = Vehicule; }