private void FicheOptionsAjouter_SurChangementSelection(object sender, EventArgs e)
        {
            if (ficheOptionsAjouter.OptionsSelectionnee != null)
            {
                ChoixOptionVehicule LiaisonExistante = Program.GMBD.EnumererChoixOptionVehicule(null, null, new PDSGBD.MyDB.CodeSql("WHERE fk_id_option_vehicule = {0}", ficheOptionsAjouter.OptionsSelectionnee.Id), null).FirstOrDefault();

                if (LiaisonExistante != null)
                {
                    numericUpDownPrixOption.Enabled = false;
                    textBoxNomOption.Enabled        = false;
                    buttonModifierO.Enabled         = false;
                }
                else
                {
                    numericUpDownPrixOption.Enabled = true;
                    buttonModifierO.Enabled         = true;
                    textBoxNomOption.Enabled        = true;
                }

                buttonAjouterO.Enabled         = false;
                buttonSupprimerOptions.Enabled = true;
                textBoxNomOption.Text          = ficheOptionsAjouter.OptionsSelectionnee.NomOption;
                listeDeroulanteTypeOptions1.TypeOptionsSelectionne = ficheOptionsAjouter.OptionsSelectionnee.TypeOption;
                numericUpDownPrixOption.Value = decimal.Parse(ficheOptionsAjouter.OptionsSelectionnee.Prix.ToString());
                ValidationProvider.Clear();
                errorProvider.Clear();
            }
            else
            {
                numericUpDownPrixOption.Enabled = true;
            }
        }
 private IEnumerable <ChoixOptionVehicule> EnumererChoixOptionVehicule()
 {
     if (Connexion == null)
     {
         Connexion = Program.GMBD.BD;
     }
     return(ChoixOptionVehicule.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM choix_option_vehicule
                                                                 JOIN option_vehicule ON option_vehicule.id_option_vehicule =  choix_option_vehicule.fk_id_option_vehicule
                                                                 JOIN type_option ON option_vehicule.fk_id_type_option = type_option.id_type_option
                                                                 WHERE choix_option_vehicule.fk_id_vehicule_vente = {0}", Id)));
 }
        private void buttonCommander_Click(object sender, EventArgs e)
        {
            if (formulaire_Client1.AccesALaListeClient.ClientSelectionne != null)
            {
                bool          CreationOptionSucces     = true;
                bool          CreationPackOptionSucces = true;
                VehiculeVente VehiculeCommande         = new VehiculeVente();
                VehiculeCommande.AnneeConstruction     = 0;
                VehiculeCommande.DateArrivee           = DateTime.MinValue;
                VehiculeCommande.DateCommande          = DateTime.Now;
                VehiculeCommande.DateMiseEnCirculation = DateTime.MinValue;
                VehiculeCommande.Kilometrage           = 0;
                VehiculeCommande.NumeroChassis         = "";
                VehiculeCommande.PrixTotal             = PrixEstimeApresChoix;
                VehiculeCommande.Vehicule        = VehiculeChoisi;
                VehiculeCommande.StatutLivraison = Program.GMBD.EnumererStatut(null, null, new PDSGBD.MyDB.CodeSql("WHERE statut = \"En livraison\""), null).FirstOrDefault();

                if ((VehiculeCommande.EstValide) && (Program.GMBD.AjouterVehiculeVente(VehiculeCommande)))
                {
                    for (int i = 0; i < OptionsChoisies.Count; i++)
                    {
                        ChoixOptionVehicule OV = new ChoixOptionVehicule();
                        OV.VehiculeVente  = VehiculeCommande;
                        OV.OptionVehicule = OptionsChoisies[i];
                        if ((OV.EstValide) && (Program.GMBD.AjouterChoixOptionVehicule(OV)))
                        {
                            //ne rien faire vu que la création a été validée
                        }
                        else
                        {
                            CreationOptionSucces = false;
                        }
                    }
                    if (CreationOptionSucces)
                    {
                        for (int i = 0; i < PackChoisis.Count; i++)
                        {
                            ChoixPackVehicule CPV = new ChoixPackVehicule();
                            CPV.VehiculeVente          = VehiculeCommande;
                            CPV.PackOptionPackVehicule = PackChoisis[i];
                            if ((CPV.EstValide) && (Program.GMBD.AjouterChoixPackVehicule(CPV)))
                            {
                                //ne rien faire vu que la création a été validée
                            }
                            else
                            {
                                CreationPackOptionSucces = false;
                            }
                        }
                    }
                    // Si un problème est déjà survenu à cet endroit, il n'y a aucun intérêt de poursuivre la création
                    if ((!CreationOptionSucces) && (!CreationPackOptionSucces))
                    {
                        Program.GMBD.SupprimerVehiculeVente(VehiculeCommande);
                        errorProvider.SetError(buttonCommander, "Une erreur interne s'est produite, veuillez recommencer");
                    }
                    else
                    {
                        FactureVente DernierId = Program.GMBD.EnumererFactureVente(null, null, null, null).LastOrDefault();
                        FactureVente NouvelleFactureDeCommande = new FactureVente();
                        NouvelleFactureDeCommande.Client           = formulaire_Client1.ClientEnCoursDeTraitement;
                        NouvelleFactureDeCommande.Employe          = Form_Principal.Employe;
                        NouvelleFactureDeCommande.VehiculeVente    = VehiculeCommande;
                        NouvelleFactureDeCommande.PourcentageTva   = 1;
                        NouvelleFactureDeCommande.RemiseSurReprise = 1000;
                        NouvelleFactureDeCommande.DateVente        = DateTime.MinValue;
                        if (DernierId == null)
                        {
                            NouvelleFactureDeCommande.NumeroFacture = string.Format("{0}-1", DateTime.Now.Year);
                        }
                        else
                        {
                            NouvelleFactureDeCommande.NumeroFacture = string.Format("{0}-{1}", DateTime.Now.Year, DernierId.Id + 1);
                        }

                        if ((NouvelleFactureDeCommande.EstValide) && (Program.GMBD.AjouterNouvelleFactureVente(NouvelleFactureDeCommande)))
                        {
                            GenerationFacturePDF NouveauBonDeCommande = new GenerationFacturePDF();
                            NouveauBonDeCommande.GenerationBonDeCommande(NouvelleFactureDeCommande);
                            ValidationProvider.Clear();
                            formulaire_Client1.ViderFormulaire();
                            ficheOptionsChoisies.Options        = null;
                            fichePackOptionsChoisis.PackOptions = null;
                        }
                        else
                        {
                            Program.GMBD.SupprimerVehiculeVente(VehiculeCommande);
                            errorProvider.SetError(buttonCommander, "Une erreur interne s'est produite, veuillez recommencer");
                        }
                    }
                }
            }
        }