Пример #1
0
        /// <summary>
        /// Methode permettant de vérifier si les champs sont bien remplis avant la modification du véhicule
        /// </summary>
        private void VehiculeVenteEnEdition_AvantChangement(VehiculeVente Entite, VehiculeVente.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
        {
            switch (Champ)
            {
            case VehiculeVente.Champs.DateArrivee:
                if (DateTime.Parse(NouvelleValeur.ToString()) < Entite.DateCommande)
                {
                    AccumulateurErreur.NotifierErreur(string.Format("La date de réception ne peut pas être inférieure à la date de commande"));
                }
                break;

            case VehiculeVente.Champs.NumeroChassis:     // Dans ce cas particulier, le véhicule étant un nouveau véhicule, l'unicité de ce numéro doit être respecté
                VehiculeVente UniciteNumChassis = Program.GMBD.EnumererVehiculeVente(new PDSGBD.MyDB.CodeSql("numero_chassis"), null, new PDSGBD.MyDB.CodeSql("WHERE numero_chassis = {0}", NouvelleValeur), null).FirstOrDefault();
                if (string.IsNullOrWhiteSpace(NouvelleValeur.ToString()))
                {
                    AccumulateurErreur.NotifierErreur("Le numéro de châssis doit être indiqué afin de finaliser la vente");
                }
                else if (UniciteNumChassis != null)
                {
                    AccumulateurErreur.NotifierErreur("Ce numéro de châssis existe déjà pour un autre véhicule");
                }
                break;

            case VehiculeVente.Champs.AnneeConstruction:
                int AnneeTemp = 0;
                if (int.TryParse(NouvelleValeur.ToString(), out AnneeTemp) && (AnneeTemp < 1) || (AnneeTemp > 9999))
                {
                    AccumulateurErreur.NotifierErreur(string.Format("L'année de construction doit comprendre 4 chiffres"));
                }
                break;
            }
        }
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="VehiculeVente">Vehicule lié à cette option</param>
 /// <param name="OptionVehicule">Option lié à ce véhicule</param>
 public ChoixOptionVehicule(VehiculeVente VehiculeVente, OptionVehicule OptionVehicule)
     : this()
 {
     DefinirId(Id);
     this.VehiculeVente  = VehiculeVente;
     this.OptionVehicule = OptionVehicule;
 }
Пример #3
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="VehiculeVente">Vehicule lié à cette option</param>
 /// <param name="PackOptionPackVehicule">Pack lié à ce véhicule</param>
 public ChoixPackVehicule(VehiculeVente VehiculeVente, PackOptionPackVehicule PackOptionPackVehicule)
     : this()
 {
     DefinirId(Id);
     this.VehiculeVente          = VehiculeVente;
     this.PackOptionPackVehicule = PackOptionPackVehicule;
 }
Пример #4
0
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 public FactureVente()
     : base()
 {
     m_NumeroFacture    = null;
     m_DateVente        = DateTime.MaxValue;
     m_RemiseSurReprise = -1.0;
     m_PourcentageTva   = -1;
     m_VehiculeVente    = null;
     m_Client           = null;
     m_Employe          = null;
 }
Пример #5
0
        /// <summary>
        /// Methode permettant de réagir sur l'erreur d'une édition d'un véhicule en vente
        /// </summary>
        private void VehiculeVenteEnEdition_SurErreur(VehiculeVente Entite, VehiculeVente.Champs Champ, string MessageErreur)
        {
            switch (Champ)
            {
            case VehiculeVente.Champs.Kilometrage:
                errorProvider.SetError(numericUpDownKilometrage, MessageErreur);

                break;

            case VehiculeVente.Champs.NumeroChassis:
                errorProvider.SetError(textBoxNumChassis, MessageErreur);
                break;

            case VehiculeVente.Champs.DateArrivee:
                errorProvider.SetError(dateTimePickerDateReception, MessageErreur);
                break;
            }
        }
        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");
            }
        }
Пример #7
0
 /// <summary>
 /// Constructeur spécifique
 /// </summary>
 /// <param name="NumeroFacture">Numéro de facture</param>
 /// <param name="DateVente">Date de vente du véhicule</param>
 /// <param name="RemiseSurReprise">Remise sur la reprise d'un éventuel rachat par la concession d'un ancien véhicule</param>
 /// <param name="PourcentageTva">Pourcentage tva de la facture</param>
 /// <param name="VehiculeVente">Véhicule correspondant à cette facture</param>
 /// <param name="Client">Client lié à cette facture</param>
 /// <param name="Employe">Employé ayant vendu ce véhicule</param>
 public FactureVente(string NumeroFacture, DateTime DateVente, double RemiseSurReprise, int PourcentageTva, VehiculeVente VehiculeVente, Client Client, Employe Employe)
     : this()
 {
     DefinirId(Id);
     this.NumeroFacture    = NumeroFacture;
     this.DateVente        = DateVente;
     this.RemiseSurReprise = RemiseSurReprise;
     this.PourcentageTva   = PourcentageTva;
     this.VehiculeVente    = VehiculeVente;
     this.Client           = Client;
     this.Employe          = Employe;
 }
Пример #8
0
        /// <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;
                        }
                    }
                }
            }
        }
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 public ChoixOptionVehicule()
     : base()
 {
     m_VehiculeVente  = null;
     m_OptionVehicule = null;
 }
Пример #10
0
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 public ChoixPackVehicule()
     : base()
 {
     m_VehiculeVente          = null;
     m_PackOptionPackVehicule = null;
 }
        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");
                        }
                    }
                }
            }
        }
Пример #12
0
 public Element(VehiculeVente VehiculeVente)
 {
     this.VehiculeVente = VehiculeVente;
 }