/// <summary>
        /// Augmenter ou diminuer tous les prix
        /// </summary>
        /// <param name="pourcentage"></param>
        public static void ModifierPrix(String pourcentage)
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                /*
                 * Code SQL de création de la procédure stockée :
                 
                 CREATE PROCEDURE `modifier_prix` ( IN `pourcentage` INT )
                 COMMENT 'Augmenter ou diminuer les prix d''un pourcentage.' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY DEFINER
                 BEGIN
                    UPDATE articles SET prix_art = prix_art * ( 1 + pourcentage /100 );
                 END
                 
                */
                // appel de la procédure stockée
                mysql = "CALL modifier_prix(" + pourcentage + ");";
                dt = DbInterface.Lecture(mysql, err);
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #2
0
 public List<Commande> getLesCommandes(String tri, String ordre)
 {
     DataTable dt;
     String mysql = "SELECT NO_COMMAND, NO_VENDEUR, NO_CLIENT, DATE_CDE, FACTURE ";
     mysql += "FROM COMMANDES ";
     mysql += "ORDER BY " + tri + " " + ordre;
     sErreurs er = new sErreurs("Erreur sur lecture des commandes", "Commande.getLesCommandes()");
     try
     {
         dt = DbInterface.Lecture(mysql, er);
         List<Commande> mesCdes = new List<Commande>();
         foreach (DataRow dataRow in dt.Rows)
         {
             Vendeur unvd = new Vendeur();
             unvd.NoVendeur = dataRow[1].ToString();
             Clientel uncli = new Clientel();
             uncli.NoCl = dataRow[2].ToString();
             Commande unecde = new Commande(dataRow[0].ToString(),
                                             ((DateTime)dataRow[3]),
                                            dataRow[4].ToString(), unvd, uncli);
             mesCdes.Add(unecde);
         }
         return mesCdes;
     }
     catch (MonException erreur)
     {
         throw erreur;
     }
 }
        public List<DetailsCde> getDetailsCde(String noCmd)
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");
            //MySqlConnection cnx = Connexion.getInstance().getConnexion();

            String mysql = "SELECT articles.*, detail_cde.QTE_CDEE, detail_cde.LIVREE "
                +"FROM articles, detail_cde "+"WHERE detail_cde.NO_COMMAND = " 
                + noCmd 
                + " AND articles.NO_ARTICLE = detail_cde.NO_ARTICLE "
                + "ORDER BY NO_ARTICLE ASC";
            Console.Write(mysql);
            try
            {
                dt = DbInterface.Lecture(mysql, err);
                List<DetailsCde> mesDetails = new List<DetailsCde>();
                foreach (DataRow dataRow in dt.Rows)
                {
                    Article unart = new Article();
                    unart.No_article = dataRow[0].ToString();
                    unart.Lib_article = dataRow[1].ToString();
                    unart.Qte_dispo = dataRow[2].ToString();
                    unart.Ville_art = dataRow[3].ToString();
                    unart.Prix_art = dataRow[4].ToString();
                    unart.Interrompu = dataRow[5].ToString();
                    DetailsCde unDetail = new DetailsCde(unart, dataRow[6].ToString(), dataRow[7].ToString());
                    mesDetails.Add(unDetail);
                }
                return mesDetails;
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #4
0
        private static bool ModifierPrixHelper(String pourcentage, bool procedure_ok)
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {

                /*
                 * Code SQL de création de la procédure stockée :
                 
                 CREATE PROCEDURE `modifier_prix` ( IN `pourcentage` INT )
                 COMMENT 'Augmenter ou diminuer les prix d''un pourcentage.' NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY DEFINER
                 BEGIN
                    UPDATE articles SET prix_art = prix_art * ( 1 + pourcentage /100 );
                 END
                 
                */
                
                if (procedure_ok)
                {
                    // appel de la procédure stockée
                    mysql = "CALL modifier_prix(" + pourcentage + ");";
                }
                else
                {
                    // mais si la procédure n'existe pas ...
                    mysql = "UPDATE articles SET prix_art = prix_art * ( 1 + "+pourcentage+" /100 );";
                }

                dt = DbInterface.Lecture(mysql, err);
            }
            catch (MonException erreur)
            {
                if (procedure_ok)
                {
                    return ModifierPrixHelper(pourcentage, false); // On réessaie sans la procédure stockée
                }
                // Une erreur ne concernant pas la procedure stockée a été rencontrée
                erreur.MsgUtilisateur += "Une erreur est intervenue lors de la mise à jour des prix des articles ";
                throw erreur;
            }

            return true;
        }
        /// <summary>
        /// Exécution de la requête demandée en paramètre, req, 
        /// et retour du resultat : un DataTable
        /// Si tout se passe bien la connexion est prête à être fermée
        /// par le client qui utilisera cette connexion
        /// </summary>
        /// <param name="req">RequêteMySql à exécuter</param>
        /// <returns></returns>
        public static DataTable Lecture(String req, sErreurs er)
        {
            MySqlConnection cnx = null;
            try
            {
                cnx = Connexion.getInstance().getConnexion();
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = cnx;
                cmd.CommandText = req;
                MySqlDataAdapter da = new MySqlDataAdapter();
                da.SelectCommand = cmd;

                // Construire le DataSet
                DataSet ds = new DataSet();
                da.Fill(ds, "resultat");
                cnx.Close();

                // Retourner la table
                return (ds.Tables["resultat"]);
            }
            catch (MonException me)
            {
                throw (me);
            }
            catch (Exception e)
            {

                throw new MonException(er.MessageUtilisateur(), er.MessageApplication(), e.Message);
            }
            finally
            {
                // S'il y a eu un problème, la connexion
                // peut être encore ouverte, dans ce cas
                // il faut la fermer.                 
                if (cnx != null)
                    cnx.Close();
            }
        }
Example #6
0
        public void suppCmd(int[] noCmd)
        {
            DataTable dt;

            sErreurs err = new sErreurs("", "");

            try
            {
                    for (int i= 0;i < noCmd.Length; i++)
                    {
                        String mysql1 = "DELETE FROM detail_cde WHERE NO_COMMAND = " + noCmd[i];
                        dt = DbInterface.Lecture(mysql1, err);
                        String mysql2 = "DELETE FROM commandes WHERE NO_COMMAND = " + noCmd[i];
                        dt = DbInterface.Lecture(mysql2, err);

                    }
                
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #7
0
        public void ajouterCommande()
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                // enregistrer les détails de l'article
                mysql = "INSERT INTO COMMANDES (NO_COMMAND, NO_CLIENT, NO_VENDEUR, FACTURE, DATE_CDE) VALUES ('";
                mysql += this.noCommande;
                mysql += "', '";
                mysql += this.client.NoCl;
                mysql += "', '";
                mysql += this.vendeur.NoVendeur;
                mysql += "', '";
                mysql += this.facture;
                mysql += "', '";
                mysql += this.dateCommande.ToString("yyyy-MM-dd");
                mysql += "');";
                dt = DbInterface.Lecture(mysql, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #8
0
        /// <summary>
        /// Modifier les informations de la commande dans la base de données
        /// </summary>
        public void modifierCommande()
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                // actualiser les infoamtions dans la base
                mysql = "UPDATE COMMANDES SET NO_VENDEUR = '";
                mysql += this.Vendeur.NoVendeur;
                mysql += "', NO_CLIENT = '";
                mysql += this.Client.NoCl;
                mysql += "', DATE_CDE = '";
                mysql += this.dateCommande.ToString("yyyy-MM-dd");
                 mysql += "', FACTURE = '";
                mysql += this.facture;
                mysql += "' WHERE NO_COMMAND = '" + this.noCommande + "';";
                dt = DbInterface.Lecture(mysql, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #9
0
        /// <summary>
        /// Cherhcer les informations d'un vendeur d'après son numéro
        /// </summary>
        /// <param name="numVen"></param>
        /// <returns></returns>
        public Vendeur RechercheUnVendeur(String numVen)
        {

            String mysql;
            DataTable dt;
            sErreurs er = new sErreurs("Erreur sur recherche d'un vendeur.", "Vendeur.RechercheUnVendeur()");
            try
            {

                mysql = "SELECT NO_VEND_CHEF_EQ, NOM_VEND, PRENOM_VEND,";
                mysql += "DATE_EMBAU, VILLE_VEND, SALAIRE_VEND, COMMISSION ";
                mysql += "FROM VENDEUR WHERE NO_VENDEUR='" + numVen + "'";
                dt = DbInterface.Lecture(mysql, er);

                if (dt.IsInitialized)
                {
                    DataRow dataRow = dt.Rows[0];
                    this.noVendeur = numVen;
                    this.noChef = dataRow[0].ToString();
                    this.nomVend = dataRow[1].ToString();
                    this.prenomVend = dataRow[2].ToString();
                    this.dateEmbau = Fonctions.StringToDate(dataRow[3].ToString());
                    this.villeVend = dataRow[4].ToString();
                    this.salaireVend = double.Parse(dataRow[5].ToString());
                    this.commission = double.Parse(dataRow[6].ToString());

                    return this;
                }
                else
                    return null;
            }
            catch (MySqlException e)
            {
                throw new MonException(er.MessageUtilisateur(), er.MessageApplication(), e.Message);
            }

        }
Example #10
0
        /// <summary>
        /// Ajouter l'article courant dans la base de données
        /// </summary>
        public void ajouterArticle()
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                // enregistrer les détails de l'article
                mysql = "INSERT INTO ARTICLES (NO_ARTICLE, LIB_ARTICLE, QTE_DISPO, VILLE_ART, PRIX_ART, INTERROMPU) VALUES ('";
                mysql += this.no_article;
                mysql += "', '";
                mysql += this.lib_article;
                mysql += "', '";
                mysql += this.qte_dispo;
                mysql += "', '";
                mysql += this.ville_art;
                mysql += "', '";
                mysql += this.prix_art;
                mysql += "', '";
                mysql += this.interrompu;
                mysql += "');";
                dt = DbInterface.Lecture(mysql, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #11
0
        /// <summary>
        /// Lire un utilisateur sur son ID
        /// </summary>
        /// <param name="numCli">N° de l'utilisateur à lire</param>
        public Clientel RechercheUnClient(String numCli)
        {

            String mysql;
            DataTable dt;
            sErreurs er = new sErreurs("Erreur sur recherche d'un client.", "Client.RechercheUnClient()");
            try
            {

                mysql = "SELECT SOCIETE, NOM_CL, PRENOM_CL,";
                mysql += "ADRESSE_CL, VILLE_CL, CODE_POST_CL ";
                mysql += "FROM CLIENTEL WHERE NO_CLIENT='" + numCli + "'";
                dt = DbInterface.Lecture(mysql, er);

                if (dt.IsInitialized)
                {
                    DataRow dataRow = dt.Rows[0];
                    this.noClient = numCli;
                    this.nomCl = dataRow[1].ToString();
                    this.societe = dataRow[0].ToString();
                    this.prenomCl = dataRow[2].ToString();
                    this.adresseCl = dataRow[3].ToString();
                    this.villeCl = dataRow[4].ToString();
                    this.codePostCl = dataRow[5].ToString();

                    return this;
                }
                else
                    return null;
            }
            catch (MySqlException e)
            {
                throw new MonException(er.MessageUtilisateur(), er.MessageApplication(), e.Message);
            }

        }
        /// <summary>
        /// Rechercher un article d'après son numéro
        /// </summary>
        /// <param name="no_cmd">Numéro de l'article</param>
        /// <returns>article courante</returns>
        public Article RechercheArticle(String no_art)
        {

            String mysql;
            DataTable dt;
            sErreurs er = new sErreurs("Erreur sur recherche d'un article.", "Article.RechercheArticle()");
            try
            {

                mysql = "SELECT NO_ARTICLE, LIB_ARTICLE, QTE_DISPO, VILLE_ART, PRIX_ART, INTERROMPU ";
                mysql += "FROM ARTICLES ";
                mysql += "WHERE NO_ARTICLE = '" + no_art + "'";
                dt = DbInterface.Lecture(mysql, er);

                if (dt.IsInitialized)
                {
                    DataRow dataRow = dt.Rows[0];
                   
                    this.no_article = dataRow[0].ToString();
                    this.lib_article = dataRow[1].ToString();
                    this.qte_dispo = dataRow[2].ToString();
                    this.ville_art = dataRow[3].ToString();
                    this.prix_art = dataRow[4].ToString();
                    this.interrompu = dataRow[5].ToString();

                    return this;
                }
                else
                    return null;
            }
            catch (MySqlException e)
            {
                throw new MonException(er.MessageUtilisateur(), er.MessageApplication(), e.Message);
            }

        }
        /// <summary>
        /// Modifier les informations de l'article courant dans la base de données
        /// </summary>
        public void modifierArticle()
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                // actualiser les infoamtions dans la base
                mysql = "UPDATE ARTICLES SET LIB_ARTICLE = '";
                mysql += this.lib_article;
                mysql += "', QTE_DISPO = '";
                mysql += this.qte_dispo;
                mysql += "', VILLE_ART = '";
                mysql += this.ville_art;
                mysql += "', PRIX_ART = '";
                mysql += this.prix_art;
                mysql += "', INTERROMPU = '";
                mysql += this.interrompu;
                mysql += "' WHERE NO_ARTICLE = '" + this.no_article + "';";
                dt = DbInterface.Lecture(mysql, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
        /// <summary>
        /// Ajouter l'article courant dans la base de données
        /// </summary>
        public void ajouterArticle()
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {
                mysql = "INSERT INTO ARTICLES (NO_ARTICLE, LIB_ARTICLE, QTE_DISPO, VILLE_ART, PRIX_ART, INTERROMPU) VALUES ('" 
                    + "', '" + this.lib_article+"', '"+this.qte_dispo+ "', '"+this.ville_art+"', '"+this.prix_art+"', '"+this.interrompu
                    +"');";
                dt = DbInterface.Lecture(mysql, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
        /// <summary>
        /// Récupérer la liste des articles
        /// </summary>
        /// <param name="tri">champ de tri</param>
        /// <param name="ordre">sens du tri</param>
        /// <returns>lste d'articles</returns>
        public List<Article> getLesArticles(String tri = "NO_ARTICLE", String ordre = "ASC")
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");
            //MySqlConnection cnx = Connexion.getInstance().getConnexion();

            String mysql = "SELECT NO_ARTICLE, LIB_ARTICLE, QTE_DISPO, VILLE_ART, PRIX_ART, INTERROMPU ";
            mysql += "FROM ARTICLES ";
            mysql += "ORDER BY " + tri + " " + ordre;
            try
            {
                dt = DbInterface.Lecture(mysql, err);
                List<Article> mesArt = new List<Article>();
                foreach (DataRow dataRow in dt.Rows)
                {
                    Article unart = new Article();
                    unart.no_article = dataRow[0].ToString();
                    unart.lib_article = dataRow[1].ToString();
                    unart.qte_dispo = dataRow[2].ToString();
                    unart.ville_art = dataRow[3].ToString();
                    unart.prix_art = dataRow[4].ToString();
                    unart.interrompu = dataRow[5].ToString();

                    mesArt.Add(unart);
                }
                return mesArt;
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
Example #16
0
        /// <summary>
        /// Lister les clients de la base
        /// </summary>
        /// <returns>Liste de numéros de clients</returns>
        public List<String> LectureNoClient()
        {
            List<String> mesNumeros = new List<String>();
            DataTable dt;
            sErreurs er = new sErreurs("Erreur sur lecture du client.", "Clientel.LectureNoClient()");
            try
            {

                String mysql = "SELECT DISTINCT NO_CLIENT FROM CLIENTEL ORDER BY NO_CLIENT";
                dt = DbInterface.Lecture(mysql, er);

                foreach (DataRow dataRow in dt.Rows)
                {
                    mesNumeros.Add((dataRow[0]).ToString());
                }

                return mesNumeros;
            }
            catch (MySqlException e)
            {
                throw new MonException(er.MessageUtilisateur(), er.MessageApplication(), e.Message);
            }
        }
        public void ajouterCommande()
        {
            DataTable dataTable;
            sErreurs err = new sErreurs("", "");
            String mysqlInsertion;
            try
            {
                // enregistrer les détails de l'article
                mysqlInsertion = "insert into commandes (NO_COMMAND, NO_CLIENT, NO_VENDEUR, FACTURE, DATE_CDE) values ('";
                mysqlInsertion += this.noCommande + "','";
                mysqlInsertion += this.client.NoCl + "','";
                mysqlInsertion += this.vendeur.NoVendeur + "','";
                mysqlInsertion += this.facture + "','";
                mysqlInsertion += this.dateCommande.ToString("yyyy-MM-dd") + "');";
                dataTable = DbInterface.Lecture(mysqlInsertion, err);

            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
 public void supprimerCommande(int numeroCommande)
 {
     DataTable dataTable;
     sErreurs err = new sErreurs("" , "");
     try
     {
         String mysql1 = "delete from detail_cde where NO_COMMAND=" + numeroCommande;
         String mysql2 = "delete from commandes where NO_COMMAND=" + numeroCommande;
         dataTable = DbInterface.Lecture(mysql1, err);
         dataTable = DbInterface.Lecture(mysql2, err);
     }
     catch (MonException erreur)
     {
         throw erreur;
     }
 }
Example #19
0
        /// <summary>
        /// Utilitaire permettant d'augmenter ou de diminuer tous les prix des articles
        /// </summary>
        /// <param name="pourcentage"></param>
        /// <param name="procedure_ok">Indique si une erreur est intervenue ou non lors de l'execution de la requète</param>
        private static bool AugmenterPrixHelper(String pourcentage, bool procedure_ok)
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");

            String mysql;
            try
            {

                /*
                 * Code SQL de création de la procédure stockée :
                 
                 CREATE DEFINER=`root`@`localhost` PROCEDURE articles_augm_prix(IN augmente DOUBLE)
                BEGIN
	                DECLARE done INT DEFAULT 0; #Permet de controler si on est arrivé à la fin du curseur
                        DECLARE var_no CHAR(6);
                        DECLARE var_prix DECIMAL(8,2);
                        DECLARE curseur1 CURSOR FOR SELECT NO_ARTICLE, PRIX_ART FROM ARTICLES;
	                DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
                        OPEN curseur1; # ouverture du curseur1
                        REPEAT
                                FETCH curseur1 INTO var_no, var_prix;
                
                                IF done = 0 THEN
                	                SET var_prix:= var_prix * augmente;
                                        UPDATE ARTICLES SET PRIX_ART = var_prix WHERE NO_ARTICLE = var_no;
                                END IF;
                        UNTIL done
                        END REPEAT;
 
                        CLOSE curseur1; # fermeture du curseur1
                END

                 
                */

                if (procedure_ok)
                {
                    // appel de la procédure stockée
                    mysql = "CALL articles_augm_prix(1 + " + pourcentage + " / 100 );";
                }
                else
                {
                    // mais si la procédure n'existe pas 
                    mysql = "UPDATE articles SET prix_art = prix_art * ( 1 + "+pourcentage+" /100 );";
                }
                
                dt = DbInterface.Lecture(mysql, err);
            }
            catch (MonException erreur)
            {
                if (procedure_ok)
                {
                    return AugmenterPrixHelper(pourcentage, false); // On réessaie sans la procédure stockée
                }
                // Une erreur ne concernant pas la procedure stockée a été rencontrée
                erreur.MsgUtilisateur += "Une erreur est intervenue lors de la mise à jour des prix des articles ";
                throw erreur;
            }
            return true;
        }