private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("Le nom doit remplir");
            }
            else
            {
                var         Nom         = textBox1.Text;
                var         Famille     = ((FormMain)Owner).BacchusModel.SearchFamille(comboBox1.Text);
                SousFamille SousFamille = new SousFamille(0, Famille, Nom);

                if (((FormMain)Owner).BacchusModel.SearchMarque(Nom) != null)
                {
                    MessageBox.Show("Ce famille existe");
                }
                else
                {
                    MainController.InsertElement(SousFamille);
                    ((FormMain)Owner).BacchusModel.SousFamilles.Add(SousFamille);
                    ((FormMain)Owner).UpdateListView();
                    Close();
                }
            }
        }
Beispiel #2
0
        /// <summary>
        ///  Cette methode permet d'ajout ou de modifier un article après avoir cliqué sur le bouton ajouter / modifier
        /// </summary>
        /// <param name="sender">object qui envoie l'action </param>
        /// <param name="e">Evenement envoyé </param>
        /// <remarks>
        ///     Cette methode vérifie que tous les champs sont saisie par l'utilisateur
        ///     et choisie en fonction de l'attribut <see cref="RefArticle"/> si on ajoute ou modifie l'article
        ///     puis on ferme la fenetre
        /// </remarks>
        private void Button_Ajouter_Modifier_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(TextBox_RefArticle.Text) || String.IsNullOrEmpty(ComboBox_SousFamille.Text) || String.IsNullOrEmpty(ComboBox_Marque.Text) || String.IsNullOrEmpty(TextBox_Description.Text))
            {
                MessageBox.Show(this, "Veillez remplir tous les champs !!!", "Erreur Insertion ", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
            else
            {
                InterfaceDB_Articles     inter        = new InterfaceDB_Articles();
                InterfaceDB_Sous_Famille intersousfam = new InterfaceDB_Sous_Famille();
                InterfaceDB_Marque       intermarque  = new InterfaceDB_Marque();

                string resultat;

                SousFamille sousfamille = intersousfam.GetSousFamille(ComboBox_SousFamille.Text);
                Marque      marque      = intermarque.GetMarque(ComboBox_Marque.Text);

                if (RefArticle == null)  //on ajoute
                {
                    Article article = new Article(TextBox_RefArticle.Text, TextBox_Description.Text, sousfamille, marque, double.Parse(NumericUpDown_PrixHT.Value.ToString()), Int32.Parse(NumericUpDown_Quantite.Value.ToString()));
                    resultat = inter.InsererArticle(article);
                }
                else // on modifie
                {
                    resultat = inter.ModifierArticle(RefArticle, TextBox_Description.Text, sousfamille.RefSousFamille, marque.RefMarque, double.Parse(NumericUpDown_PrixHT.Value.ToString()), Int32.Parse(NumericUpDown_Quantite.Value.ToString()));
                }
                MessageBox.Show(this, resultat, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                Reussi_ = true;
                this.Close();
            }
        }
Beispiel #3
0
        /// <summary>
        ///  Cette methode permet d'avoir toutes les informations d'une sous famille en fonction de son nom
        /// </summary>
        /// <param name="nom"> le nom de la sous famille </param>
        /// <returns>la sous famille correspondante </returns>
        public SousFamille GetSousFamille(string nom)
        {
            SousFamille         sousfamille = null;
            int                 reffamille;
            int                 refsousfamille;
            string              nomsousfamille;
            InterfaceDB_Famille interFamille = new InterfaceDB_Famille();

            RequeteDonneesSousFamilles = "select * from SousFamilles where SousFamilles.Nom like @nom";

            InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesSousFamilles, InterfaceDB.GetInstaneConnexion());
            InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nom", nom);

            try
            {
                Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader();

                while (Lecture_Donnee.Read())
                {
                    refsousfamille = Int32.Parse(Lecture_Donnee["RefSousFamille"].ToString());
                    reffamille     = Int32.Parse(Lecture_Donnee["RefFamille"].ToString());
                    nomsousfamille = Lecture_Donnee["Nom"].ToString();

                    sousfamille = new SousFamille(refsousfamille, interFamille.GetFamille(reffamille), nomsousfamille);
                }
            }
            catch (SQLiteException ex)
            {
                sousfamille = null;
                Console.WriteLine(" * Erreur de lecture dans la table Sous Famille : " + ex.Message);
            }

            return(sousfamille);
        }
Beispiel #4
0
        /// <summary>
        ///  Cette methode nous donne la liste de toutes les sous familles de la table SousFamilles appartenant à une famille
        /// </summary>
        /// <param name="refFamille"></param>
        /// <returns>liste des sous familles</returns>
        public List <SousFamille> GetToutesSousFamillebyFamille(int refFamille)
        {
            List <SousFamille> listsousfamille = null;
            SousFamille        sousfamille     = null;
            int    reffamille;
            int    refsousfamille;
            string nomsousfamille;
            InterfaceDB_Famille interFamille = new InterfaceDB_Famille();

            RequeteDonneesSousFamilles = "select * from SousFamilles where RefFamille = @ref";

            InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneesSousFamilles, InterfaceDB.GetInstaneConnexion());
            InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refFamille);
            try
            {
                SQLiteDataReader Lecture_donnee = InterfaceDB.Commande_sqlite.ExecuteReader();
                listsousfamille = new List <SousFamille>();
                while (Lecture_donnee.Read())
                {
                    refsousfamille = Int32.Parse(Lecture_donnee["RefSousFamille"].ToString());
                    reffamille     = Int32.Parse(Lecture_donnee["RefFamille"].ToString());
                    nomsousfamille = Lecture_donnee["Nom"].ToString();

                    sousfamille = new SousFamille(refsousfamille, interFamille.GetFamille(reffamille), nomsousfamille);
                    listsousfamille.Add(sousfamille);
                }
            }
            catch (SQLiteException ex)
            {
                listsousfamille = null;
                Console.WriteLine(" * Erreur de lecture dans la table Famille: " + ex.Message);
            }

            return(listsousfamille);
        }
Beispiel #5
0
        /// <summary>
        /// Modifier une sous famille
        /// </summary>
        /// <param name="SousFamille_obj">Une instance de la sous famille</param>
        public void Update_SousFamille(SousFamille SousFamille_obj)
        {
            using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
            {
                try
                {
                    My_Connection.Open();
                    String        SQL_String        = "UPDATE SousFamilles SET Nom = :Nom, RefFamille = :RefFamille WHERE RefSousFamille = :RefSousFamille";
                    SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("Nom", SousFamille_obj.Nom));
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("RefFamille", SousFamille_obj.RefFamille));
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("RefSousFamille", SousFamille_obj.RefSousFamille));

                    SQLiteCommand_obj.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    MessageBox.Show("ERREUR DANS LA MODIFICATION D'UNE SOUS FAMILLE : " + e.Message);
                }
                finally
                {
                    My_Connection.Close();
                }
            }
        }
Beispiel #6
0
        /// <summary>
        ///  Cette methode permet d'inserer une nouvelle sous famille dans la table SousFamilles
        /// </summary>
        /// <param name="refSousFamille">l'identifiant de la sous famille </param>
        /// <param name="refFamille">l'identifiant de la famille</param>
        /// <param name="nom">le nom de la sous famille </param>
        /// <returns>le resultat de l'operation </returns>
        /// <remarks>
        ///     L'insertion est faite si la sous famille n'existait pas sinon rien
        /// </remarks>
        public string InsererSousFamille(int refSousFamille, int refFamille, string nom)
        {
            string      resultat     = "";
            SousFamille sousfamille1 = GetSousFamille(nom);
            SousFamille sousfamille2 = GetSousFamille(refSousFamille);

            if (sousfamille2 != null || sousfamille1 != null)
            {
                resultat = " = Existe dejà dans la table SousFamille " + refSousFamille;
            }
            else
            {
                try
                {
                    RequeteInsererSousFamille = "INSERT INTO SousFamilles(RefSousFamille,RefFamille,Nom) VALUES"
                                                + "(@refsousfamille,@reffamille,@nom)";
                    InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteInsererSousFamille, InterfaceDB.GetInstaneConnexion());
                    InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@refsousfamille", refSousFamille);
                    InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@reffamille", refFamille);
                    InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@nom", nom);

                    InterfaceDB.Commande_sqlite.ExecuteNonQuery();
                    resultat = " + Insertion dans la Table Sous Famille : " + refSousFamille;
                }
                catch (SQLiteException ex)
                {
                    resultat = " * Erreur d'insertion dans la Table Sous Famille de " + refSousFamille + " : " + ex.Message;
                }
            }
            return(resultat);
        }
        /// <summary>
        /// Supprimer un sous-famille à la base de données
        /// </summary>
        /// <param name="SousFamille">Objet: SousFamille</param>
        public void Delete(SousFamille SousFamille)
        {
            var Command = new SQLiteCommand("DELETE FROM SousFamilles WHERE RefSousFamille = :refSousFamille",
                                            Connection);

            Command.Parameters.AddWithValue("refSousFamille", SousFamille.Ref_SousFamille);
            Command.ExecuteNonQuery();
        }
        /// <summary>
        /// Mise a jour les sous-familles de la base de données
        /// </summary>
        /// <param name="SousFamille">Objet: SousFamille</param>
        public void Update(SousFamille SousFamille)
        {
            var Command = new SQLiteCommand("UPDATE SousFamilles SET Nom = :nom, RefFamille = :refFamille WHERE RefSousFamille = :refSousFamille", Connection);

            Command.Parameters.AddWithValue("nom", SousFamille.Nom);
            Command.Parameters.AddWithValue("refFamille", SousFamille.Famille.Ref_Famille);
            Command.Parameters.AddWithValue("refSousFamille", SousFamille.Ref_SousFamille);
            Command.ExecuteNonQuery();
        }
Beispiel #9
0
        public void FillField(SousFamille SousFamille)
        {
            textBox1.Text = SousFamille.Nom;

            this.SousFamille = SousFamille;

            comboBox1.DataSource    = ((FormMain)Owner).BacchusModel.Familles;
            comboBox1.DisplayMember = "Nom";
            comboBox1.ValueMember   = "Ref_Famille";
            comboBox1.SelectedItem  = SousFamille.Famille;
        }
Beispiel #10
0
        /// <summary>
        /// Constructor for a modification window
        /// </summary>
        /// <param name="ChildFamily">Childfamily to modifie</param>
        public FormChildFamily(SousFamille ChildFamily)
        {
            InitializeComponent();
            InitBoxes();

            InitialName = ChildFamily.Nom;
            InitialRef  = ChildFamily.RefSousFamille;

            this.Text = "Gestion Sous-Famille";

            NameBox.Text         = ChildFamily.Nom;
            FamBox.SelectedIndex = FamBox.FindStringExact(ChildFamily.Famille.Nom);
        }
Beispiel #11
0
        /// //////////////////////////////////////////////////////ARTICLE////////////////////////////////////////////

        public Article addArticle(Article article)  //Nom de la famille doit être unique
        {
            //Controle de si reference existe (celle entrée doit être unique)
            //Seulement dans ce cas on ajoute l'objet en Bd et en local
            if (this.getArticle(article.RefArticle) != null)
            {
                throw new Exception("La RefArticle de l'objet article existe déjà");
            }
            //Controle de si  Sous famille existe   dans ce cas recuperation de tout l'objet sous famille et surtout l'id       Problème pour les articles qui ont le même nom mais Familles differente
            SousFamille sf = this.magasin.SousFamilleDao.getSousFamilleByNameRefFamille(article.RefSousFamille.RefFamille.RefFamille, article.RefSousFamille.Nom.ToString());  // Faire une nouvelle fonction qui controle les 2 infos

            if (sf == null)
            {
                throw new Exception("La RefSousFamille n'existe actuellement pas, veuillez changer la référence SousFamille");
            }

            article.RefSousFamille = sf;

            //Controle de si Marque existe  dans ce cas recuperation de tout l'objet marque et surtout id
            Marque mq = this.magasin.MarqueDao.getMarqueByName(article.RefMarque.Nom.ToString());

            //Console.WriteLine(mq.ToString());
            if (mq == null)
            {
                throw new Exception("La RefMarque n'existe actuellement pas, veuillez changer la référence Marque");
            }
            article.RefMarque = mq;

            Article art = null;

            sql_con.Open();
            string sql = "INSERT INTO Articles(RefArticle,Description,RefSousFamille,RefMarque,PrixHT,Quantite) VALUES(@refArticle,@description,@refSousFamille,@refMarque,@prixHT,@quantite)";

            using (SQLiteCommand cmd = new SQLiteCommand(sql, sql_con))
            {
                cmd.Parameters.AddWithValue("@refArticle", article.RefArticle);
                cmd.Parameters.AddWithValue("@description", article.Description);
                cmd.Parameters.AddWithValue("@refSousFamille", article.RefSousFamille.RefSousFamille);
                cmd.Parameters.AddWithValue("@refMarque", article.RefMarque.RefMarque);
                cmd.Parameters.AddWithValue("@prixHT", article.PrixHT);
                cmd.Parameters.AddWithValue("@quantite", article.Quantite);
                cmd.ExecuteNonQuery();
                art = article;
                //ajout à la liste en local de la nouvelle famille
                this.magasin.ListeArticles.Add(article);
            }
            this.sql_con.Close();

            return(art);
        }
Beispiel #12
0
        /// <summary>
        /// Trouver la sous famille à partir de son nom
        /// </summary>
        /// <param name="Name">Le nom de la sous famille</param>
        /// <returns>La sous famille portant le nom</returns>
        public SousFamille Search_SousFamille_From_Name(String Name)
        {
            SousFamille Resultat = new SousFamille();

            Resultat.Nom = Name;

            using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
            {
                try
                {
                    My_Connection.Open();
                    String        SQL_String        = "SELECT * FROM SousFamilles WHERE Nom = :Name";
                    SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("Name", Name));
                    using (SQLiteDataReader SQLiteDataReader_obj = SQLiteCommand_obj.ExecuteReader())
                    {
                        try
                        {
                            if (SQLiteDataReader_obj.Read())
                            {
                                Resultat.RefSousFamille = SQLiteDataReader_obj.GetInt32(0);
                                Resultat.RefFamille     = SQLiteDataReader_obj.GetInt32(1);
                            }
                            else
                            {
                                Resultat = null;
                            }
                        }
                        catch (Exception)
                        {
                            Resultat = null;
                        }
                        finally
                        {
                            // always call Close when done reading.
                            SQLiteDataReader_obj.Close();
                            // always call Close when done reading.
                            My_Connection.Close();
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("ERREUR DANS LA RECHERCHE DE LA SOUS FAMILLE : " + e.Message);
                }
            }

            return(Resultat);
        }
Beispiel #13
0
        /// <summary>
        /// Obtenir tout les articles d'une sous famille
        /// </summary>
        /// <param name="SousFamille_Obj">Une instance de la sous famille</param>
        /// <returns>les articles de la sous famille</returns>
        public List <Article> GetAll_Article_From_SousFamille(SousFamille SousFamille_Obj)
        {
            List <Article> Resultat = new List <Article>();

            using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
            {
                try
                {
                    My_Connection.Open();
                    String        SQL_String        = "SELECT Articles.RefArticle, Articles.Description, Articles.RefSousFamille, Articles.RefMarque, Articles.PrixHT, Articles.Quantite FROM Articles WHERE Articles.RefSousFamille = :RefSousFamille";
                    SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("RefSousFamille", SousFamille_Obj.RefSousFamille));
                    using (SQLiteDataReader SQLiteDataReader_obj = SQLiteCommand_obj.ExecuteReader())
                    {
                        try
                        {
                            while (SQLiteDataReader_obj.Read())
                            {
                                Article Article_Obj = new Article();
                                Article_Obj.RefArticle     = SQLiteDataReader_obj.GetString(0);
                                Article_Obj.Description    = SQLiteDataReader_obj.GetString(1);
                                Article_Obj.RefSousFamille = SQLiteDataReader_obj.GetInt32(2);
                                Article_Obj.RefMarque      = SQLiteDataReader_obj.GetInt32(3);
                                Article_Obj.PrixHT         = SQLiteDataReader_obj.GetFloat(4);
                                Article_Obj.Quantite       = SQLiteDataReader_obj.GetInt32(5);
                                Resultat.Add(Article_Obj);
                            }
                        }
                        catch (Exception)
                        {
                            Resultat = null;
                        }
                        finally
                        {
                            SQLiteDataReader_obj.Close();
                            My_Connection.Close();
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("ERREUR DANS LA RECUPERATION DES ARTICLES DE LA SOUS FAMILLES : " + e.Message);
                }
            }

            return(Resultat);
        }
Beispiel #14
0
        /// <summary>
        /// Check if the fields are ok
        /// </summary>
        /// <returns>True if ok</returns>
        public bool AreInputOK()
        {
            SousFamille Used = SFCont.GetByName(new SousFamille(NameBox.Text));

            if (Used != null && Used.Nom != InitialName)
            {
                MessageBoxes.DispError("Le nom est déjà utilisé.");
                return(false);
            }
            if (NameBox.Text.Replace(" ", "") == "" ||
                FamBox.SelectedItem == null)
            {
                MessageBoxes.DispError("Au moins un champs est vide");
                return(false);
            }
            return(true);
        }
 /// <summary>
 ///  Cette méthode permet d'initialiser l'interface graphique
 /// </summary>
 public void Init()
 {
     if (RefSousFamile == -1)
     {
         RemplirComboFamille();
     }
     else
     {
         // Initialise les champs correspondant à la reférence de la sous famille ( cas d'une modification)
         InterfaceDB_Sous_Famille inter = new InterfaceDB_Sous_Famille();
         SousFamille sousfammille       = inter.GetSousFamille(RefSousFamile);
         TextBox_NomSousFamille.Text  = sousfammille.NomSousFamille;
         Button_Ajouter_Modifier.Text = "Modifier";
         RemplirComboFamille();
         this.ComboBox_TypeFamille.SelectedIndex = this.ComboBox_TypeFamille.FindString(sousfammille.MaFamille.NomFamille);
     }
 }
Beispiel #16
0
        /// <summary>
        ///  Cette methode permet d'inserer une nouvelle sous famille dans la table SousFamilles
        /// </summary>
        /// <param name="nomFamille"> le nom de la famille </param>
        /// <param name="nom"> le nom de la sous famille </param>
        /// <returns>le resultat de l'operation </returns>
        /// <remarks>
        ///     - On cherche la famille correspondant au nom de la famille
        ///     - L'insertion est faite si la sous famille n'existait pas sinon rien
        ///     - Et l'identifiant correspond au dernier identifiant dans de la table
        /// </remarks>
        public string InsererSousFamille(string nomFamille, string nom)
        {
            string      resultat    = " = Existe dejà dans la table SousFamille : " + nom;
            SousFamille sousfamille = GetSousFamille(nom);

            if (sousfamille == null)
            {
                int refSousFamille = InterfaceDB.DernierIdTable("SousFamilles", "RefSousFamille") + 1;
                InterfaceDB_Famille Interfamille = new InterfaceDB_Famille();
                Famille             famille      = Interfamille.GetFamille(nomFamille);
                return(InsererSousFamille(refSousFamille, famille.RefFamille, nom));
            }
            else
            {
                return(resultat);
            }
        }
Beispiel #17
0
        /// <summary>
        /// Obtenir toute les sous familles de la BDD
        /// </summary>
        /// <returns>Toute les sous familles</returns>
        public List <SousFamille> GetAll_SousFamille()
        {
            List <SousFamille> Resultat = new List <SousFamille>();

            using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
            {
                try
                {
                    My_Connection.Open();
                    String        SQL_String        = "SELECT * FROM SousFamilles";
                    SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
                    using (SQLiteDataReader SQLiteDataReader_obj = SQLiteCommand_obj.ExecuteReader())
                    {
                        try
                        {
                            while (SQLiteDataReader_obj.Read())
                            {
                                SousFamille SousFamille_Obj = new SousFamille();
                                SousFamille_Obj.RefSousFamille = SQLiteDataReader_obj.GetInt32(0);
                                SousFamille_Obj.RefFamille     = SQLiteDataReader_obj.GetInt32(1);
                                SousFamille_Obj.Nom            = SQLiteDataReader_obj.GetString(2);
                                Resultat.Add(SousFamille_Obj);
                            }
                        }
                        catch (Exception)
                        {
                            Resultat = null;
                        }
                        finally
                        {
                            SQLiteDataReader_obj.Close();
                            My_Connection.Close();
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("ERREUR DANS LA RECUPERATION DES SOUSFAMILLES : " + e.Message);
                }
            }

            return(Resultat);
        }
        /// <summary>
        ///  Cette methode permet d'avoir tous les articles appartenant à une sous famille
        /// </summary>
        /// <param name="refSousFamille">l'identifiant de la sous famille</param>
        /// <returns>une liste d'article </returns>
        public List <Article> GetToutesArticlebySousFamille(int refSousFamille)
        {
            List <Article>           listarticle = null;
            string                   articleref, desc;
            int                      refsousfamille, refmarque, quan;
            double                   prix;
            InterfaceDB_Sous_Famille Intersousfamille = new InterfaceDB_Sous_Famille();
            InterfaceDB_Marque       InterMarque      = new InterfaceDB_Marque();

            RequeteDonneeArticle = "select * from Articles where RefSousFamille=@ref";

            InterfaceDB.Commande_sqlite = new SQLiteCommand(RequeteDonneeArticle, InterfaceDB.GetInstaneConnexion());
            InterfaceDB.Commande_sqlite.Parameters.AddWithValue("@ref", refSousFamille);

            try
            {
                Lecture_Donnee = InterfaceDB.Commande_sqlite.ExecuteReader();
                listarticle    = new List <Article>();
                while (Lecture_Donnee.Read())
                {
                    articleref     = Lecture_Donnee["RefArticle"].ToString();
                    desc           = Lecture_Donnee["Description"].ToString();
                    refsousfamille = Int32.Parse(Lecture_Donnee["RefSousFamille"].ToString());
                    refmarque      = Int32.Parse(Lecture_Donnee["RefMarque"].ToString());
                    prix           = Double.Parse(Lecture_Donnee["PrixHT"].ToString());
                    quan           = Int32.Parse(Lecture_Donnee["Quantite"].ToString());


                    SousFamille sousfamille = Intersousfamille.GetSousFamille(refsousfamille);
                    Marque      marque      = InterMarque.GetMarque(refmarque);

                    Article article = new Article(articleref, desc, sousfamille, marque, prix, quan);
                    listarticle.Add(article);
                }
            }
            catch (SQLiteException ex)
            {
                listarticle = null;
                Console.WriteLine(" * Erreur de lecture dans la table Article : " + ex.Message);
            }

            return(listarticle);
        }
Beispiel #19
0
        public SousFamille getSousFamilleByName(string name)
        {
            SQLiteCommand command = new SQLiteCommand("SELECT RefSousFamille,RefFamille,Nom FROM SousFamilles WHERE Nom =@nom", this.sql_con);

            command.Parameters.AddWithValue("@nom", name);

            sql_con.Open();
            SousFamille sousFamille = null;

            using (SQLiteDataReader sqReader = command.ExecuteReader())
            {
                if (sqReader.Read())
                {
                    Famille famille = this.magasin.getFamille(String.Format("{0}", sqReader["RefFamille"]));
                    sousFamille = new SousFamille(System.Convert.ToInt32(sqReader["RefSousFamille"]), famille, String.Format("{0}", sqReader["Nom"]));
                }
            }
            sql_con.Close();
            return(sousFamille);
        }
Beispiel #20
0
 /// <summary>
 /// Insérer unes sous famille dans la BDD
 /// </summary>
 /// <param name="SousFamille_obj">Une instance de la sous famille à insérer</param>
 public void Insert_SousFamille(SousFamille SousFamille_obj)
 {
     using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
     {
         try
         {
             My_Connection.Open();
             String        SQL_String        = "INSERT INTO SousFamilles (RefFamille,Nom) VALUES(:RefFamille,:Nom)";
             SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
             SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("RefFamille", SousFamille_obj.RefFamille));
             SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("Nom", SousFamille_obj.Nom));
             SQLiteCommand_obj.ExecuteNonQuery();
             My_Connection.Close();
         }
         catch (Exception e)
         {
             MessageBox.Show("IMPOSSIBLE D'AJOUTER LA SOUS FAMILLE A LA BASE DE DONNEES : " + e.Message);
         }
     }
 }
Beispiel #21
0
        /// <summary>
        /// Inserer les données dans la BDD depuis une ligne de CSV liée à un article
        /// </summary>
        /// <param name="Description">Description de l'article</param>
        /// <param name="Ref_Article">Reference de l'article</param>
        /// <param name="Marque">Marque de l'article</param>
        /// <param name="Famille">Famille de l'article</param>
        /// <param name="SousFamille">Sous famille de l'article et contenu dans la famille</param>
        /// <param name="Prix">Prix HT de l'article</param>
        public void Insert_Row_From_CSV(String Description, String Ref_Article, String Marque, String Famille, String SousFamille, String Prix)
        {
            Article Article_obj = new Article
            {
                Description = Description,
                RefArticle  = Ref_Article,
                PrixHT      = float.Parse(Prix)
            };

            Marque Marque_obj = Search_Marque_From_Name(Marque);

            if (Marque_obj == null)
            {
                Marque_obj = new Marque(Marque);
                Insert_Marque(Marque_obj);
                Marque_obj = Search_Marque_From_Name(Marque_obj.Nom);
            }

            Famille Famille_obj = Search_Famille_From_Name(Famille);

            if (Famille_obj == null)
            {
                Famille_obj = new Famille(Famille);
                Insert_Famille(Famille_obj);
                Famille_obj = Search_Famille_From_Name(Famille_obj.Nom);
            }

            SousFamille SousFamille_obj = Search_SousFamille_From_Name(SousFamille);

            if (SousFamille_obj == null)
            {
                SousFamille_obj = new SousFamille(Famille_obj.RefFamille, SousFamille);
                Insert_SousFamille(SousFamille_obj);
                SousFamille_obj = Search_SousFamille_From_Name(SousFamille_obj.Nom);
            }

            Article_obj.RefMarque      = Marque_obj.RefMarque;
            Article_obj.RefSousFamille = SousFamille_obj.RefSousFamille;

            Insert_Article(Article_obj);
        }
Beispiel #22
0
        /*private SousFamille getSousFamilleByNameId(string name)
         * {
         *  Famille fm = this.magasin.FamilleDao.getFamilleByName(nomFamille);
         *  if (fm == null) throw new Exception("La refFamille ne correspond à aucune famille existante dans la Base de données");
         *
         *  //Regarde si il existe deja une famille ayant la ref famille et le nom
         *
         *  SQLiteCommand command = new SQLiteCommand("SELECT RefSousFamille,RefFamille,Nom FROM SousFamilles WHERE Nom =@nom and RefFamille=@refFamille", this.sql_con);
         *  command.Parameters.AddWithValue("@nom", sousFamilleNom);
         *  command.Parameters.AddWithValue("@refFamille", fm.RefFamille);
         *
         *  this.sql_con.Open();
         *  SousFamille sousFamille = null;
         *  using (SQLiteDataReader sqReader = command.ExecuteReader())
         *  {
         *      if (sqReader.Read())
         *      {
         *          Famille famille = this.magasin.getFamille(String.Format("{0}", sqReader["RefFamille"]));
         *          sousFamille = new SousFamille(System.Convert.ToInt32(sqReader["RefSousFamille"]), famille, String.Format("{0}", sqReader["Nom"]));
         *      }
         *  }
         *  this.sql_con.Close();
         *  return sousFamille;
         * }*/

        public Article getArticle(string refArticle)
        {
            SQLiteCommand command = new SQLiteCommand("SELECT RefArticle,Description,RefSousFamille,RefMarque,PrixHT,Quantite FROM Articles WHERE RefArticle =@refArticle", this.sql_con);

            command.Parameters.AddWithValue("@refArticle", refArticle);

            sql_con.Open();
            Article article = null;

            using (SQLiteDataReader sqReader = command.ExecuteReader())
            {
                if (sqReader.Read())
                {
                    SousFamille sousFamille = this.magasin.getSousFamille(String.Format("{0}", sqReader["RefSousFamille"]));
                    Marque      marque      = this.magasin.getMarque(String.Format("{0}", sqReader["RefMarque"]));
                    article = new Article(String.Format("{0}", sqReader["RefArticle"]), String.Format("{0}", sqReader["Description"]), sousFamille, marque, System.Convert.ToDouble(sqReader["PrixHT"]), System.Convert.ToInt32(sqReader["Quantite"]));
                }
            }
            sql_con.Close();
            return(article);
        }
Beispiel #23
0
        public SousFamille addSousFamille(SousFamille sousFamille)  //Nom de la famille dpit être unique
        {
            //Regarder si ref de la famille existe
            //Regarder si par rapport à la ref il existe un objet contenant le même nom de sous Familles
            //SousFamille sfm = getSousFamilleByName(sousFamille.Nom);

            //Recherche de la famille correspondate avec les infos complètes et non juste le nom(besoin de l'id correspondant au nom)

            /*Famille fm = this.magasin.FamilleDao.getFamilleByName(sousFamille.RefFamille.Nom);                    // En commentaire pour le moment on suppose qu'on donne l'objet corect dès le début contenant l'id de celui-ci
             * if (fm != null)
             * {
             *  sousFamille.RefFamille = this.magasin.FamilleDao.getFamilleByName(sousFamille.RefFamille.Nom);
             *  //Console.WriteLine(fm.ToString());
             * }*/
            SousFamille sfm = getSousFamilleByName(sousFamille.Nom);

            if (!sousFamilleExisteFamille(sousFamille.RefFamille.Nom, sousFamille.Nom))              //problème lorsqu'on souhaite ajouter ne se met pas dans la bonne catégorie pourtant teste existe test la bonne catégorie
            {
                //init la refFamille correct de l'objet
                sousFamille.RefSousFamille = getLastIdSousFamilles() + 1;
                sql_con.Open();
                string sql = "INSERT INTO SousFamilles(RefSousFamille,RefFamille,Nom) VALUES(@refSousFamille,@refFamille,@nom)";
                using (SQLiteCommand cmd = new SQLiteCommand(sql, sql_con))
                {
                    cmd.Parameters.AddWithValue("@refSousFamille", sousFamille.RefSousFamille);
                    cmd.Parameters.AddWithValue("@refFamille", sousFamille.RefFamille.RefFamille);
                    cmd.Parameters.AddWithValue("@nom", sousFamille.Nom);
                    cmd.ExecuteNonQuery();
                    sfm = sousFamille;
                    //ajout à la liste en local de la nouvelle famille
                    this.magasin.ListeSousFamilles.Add(sousFamille);
                }
                this.sql_con.Close();
            }
            else
            {
                throw new Exception("Cette SousFamille existe déjà ou un paramètre de la sousFamille est incorrect (RefFamille.nom inexistant et RefSousFamille.nom existant)");
            }
            return(sfm);
        }
Beispiel #24
0
        /// <summary>
        /// Get the list of Articles linked to this "Sous-Famille" Object
        /// </summary>
        /// <param name="Objet"></param>
        /// <returns></returns>
        public HashSet <Article> FindBySousFamille(SousFamille Objet)
        {
            OpenConnection();
            HashSet <Article> Liste = new HashSet <Article>();
            var Result = ExecuteSelect("SELECT * FROM " + TableName + " Where RefSousFamille = " + Objet.RefSousFamille);
            SousFamilleControl SFCont = new SousFamilleControl();
            MarqueControl      MCont  = new MarqueControl();

            while (Result.Read())
            {
                Article Arti = new Article(
                    Result.GetString(0),
                    Result.GetString(1),
                    Result.GetFloat(4),
                    Result.GetInt16(5),
                    MCont.FindByRef(Result.GetInt16(3)),
                    SFCont.FindByRef(Result.GetInt16(2)));
                Liste.Add(Arti);
            }
            CloseConnection();
            return(Liste);
        }
Beispiel #25
0
        public bool sousFamilleExisteFamille(string nomFamille, string sousFamilleNom)
        {
            bool found = false;

            //Regarder si La famille existe dans la BD
            Famille fm = this.magasin.FamilleDao.getFamilleByName(nomFamille);

            if (fm == null)
            {
                throw new Exception("La refFamille ne correspond à aucune famille existante dans la Base de données");
            }

            //Regarde si il existe deja une famille ayant la ref famille et le nom

            SQLiteCommand command = new SQLiteCommand("SELECT RefSousFamille,RefFamille,Nom FROM SousFamilles WHERE Nom =@nom and RefFamille=@refFamille", this.sql_con);

            command.Parameters.AddWithValue("@nom", sousFamilleNom);
            command.Parameters.AddWithValue("@refFamille", fm.RefFamille);

            this.sql_con.Open();
            SousFamille sousFamille = null;

            using (SQLiteDataReader sqReader = command.ExecuteReader())
            {
                if (sqReader.Read())
                {
                    Famille famille = this.magasin.getFamille(String.Format("{0}", sqReader["RefFamille"]));
                    sousFamille = new SousFamille(System.Convert.ToInt32(sqReader["RefSousFamille"]), famille, String.Format("{0}", sqReader["Nom"]));
                }
            }
            this.sql_con.Close();

            if (sousFamille != null)
            {
                found = true;
            }

            return(found);
        }
        /// <summary>
        /// Obtenir la sous-famille correspondant à la ref en entrée
        /// </summary>
        /// <param name="Ref_SousFamille">int</param>
        /// <returns>
        /// SousFamille : Objet
        /// </returns>
        public SousFamille GetSousFamilleByID(int Ref_SousFamille)
        {
            var RefSousFamille = 0;
            var RefFamille     = 0;
            var Nom            = "";
            var Command        = new SQLiteCommand("SELECT * FROM SousFamilles WHERE RefSousFamille = :RefSousFamille", Connection);

            Command.Parameters.AddWithValue("RefSousFamille", Ref_SousFamille);
            var Reader = Command.ExecuteReader();

            while (Reader.Read())
            {
                RefSousFamille = Reader.GetInt32(0);
                RefFamille     = Reader.GetInt32(1);
                Nom            = Reader.GetString(2);
            }

            Reader.Close();
            var Famille     = FamilleDao.GetFamilleByID(RefFamille);
            var SousFamille = new SousFamille(RefFamille, Famille, Nom);

            return(SousFamille);
        }
Beispiel #27
0
        /// <summary>
        /// Récupere la sous famille à partir de sa reference ,null si la sous famille n'existe pas
        /// </summary>
        /// <param name="RefSousFamille">Reference de la sous famille</param>
        /// <returns>Retourne la sous famille</returns>
        public SousFamille GetSousFamille(int RefSousFamille)
        {

            // On met en place la commande Sql pour récuperer la sous famille
            String sql = "SELECT * FROM SousFamilles WHERE RefSousFamille = '" + RefSousFamille + "'";
            using (SQLiteConnection c = new SQLiteConnection(Connexion))
            {
                c.Open();
                using (SQLiteCommand cmd = new SQLiteCommand(sql, c))
                {
                    using (SQLiteDataReader rdr = cmd.ExecuteReader())
                    {
                        //On verifie si on a recuperé un résultat, si oui on retourne la sous famille
                        if (rdr.Read())
                        {
                            SousFamille SousFamille = new SousFamille(rdr.GetInt32(0), rdr.GetInt32(1), rdr.GetString(2));
                            return SousFamille;
                        }
                    }
                }
            }
            return null;
        }
Beispiel #28
0
        /// <summary>
        /// Supprimer une sous famille
        /// </summary>
        /// <param name="SousFamille_obj">Une instance de la sous famille</param>
        public void Delete_SousFamille(SousFamille SousFamille_obj)
        {
            using (SQLiteConnection My_Connection = new SQLiteConnection(Connection_String))
            {
                try
                {
                    My_Connection.Open();
                    String        SQL_String        = "DELETE FROM SousFamilles WHERE RefSousFamille = :RefSousFamille";
                    SQLiteCommand SQLiteCommand_obj = new SQLiteCommand(SQL_String, My_Connection);
                    SQLiteCommand_obj.Parameters.Add(new SQLiteParameter("RefSousFamille", SousFamille_obj.RefSousFamille));

                    SQLiteCommand_obj.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    MessageBox.Show("ERREUR DANS LA SUPPRESSION D'UNE SOUS FAMILLES : " + e.Message);
                }
                finally
                {
                    My_Connection.Close();
                }
            }
        }
        /// <summary>
        /// Ajoute un sous-famille à la base de données
        /// </summary>
        /// <param name="SousFamille">Objet: SousFamille</param>
        /// <returns>
        /// int : Compte le nombre de sous-familles dans la base de donéee
        /// </returns>
        public int Insert(SousFamille SousFamille)
        {
            int           Count         = 0;
            SQLiteCommand InsertCommand = new SQLiteCommand(Connection);

            InsertCommand.CommandText = "SELECT MAX(RefSousFamille) FROM SousFamilles";
            var Scalar = InsertCommand.ExecuteScalar();

            SousFamille.Ref_SousFamille = Scalar.ToString().Equals("") ? 0 : Convert.ToInt32(Scalar) + 1;

            using (SQLiteTransaction Transaction = Connection.BeginTransaction())
            {
                InsertCommand.CommandText = "INSERT INTO SousFamilles (RefSousFamille, RefFamille, Nom) VALUES (:RefSousFamille, :RefFamille, :Nom)";
                InsertCommand.Parameters.AddWithValue("RefSousFamille", SousFamille.Ref_SousFamille);
                InsertCommand.Parameters.AddWithValue("RefFamille", SousFamille.Famille.Ref_Famille);
                InsertCommand.Parameters.AddWithValue("Nom", SousFamille.Nom);

                Count = InsertCommand.ExecuteNonQuery();
                Transaction.Commit();
                InsertCommand.Dispose();
            }
            return(Count);
        }
Beispiel #30
0
        public SousFamille updateSousFamille(SousFamille sousFamille)
        {
            SousFamille sfm = null;

            //on cherche puis modifie l'objet en local
            for (int i = 0; i < this.magasin.ListeSousFamilles.Count(); i++)
            {
                if (this.magasin.ListeSousFamilles[i].RefSousFamille == sousFamille.RefSousFamille)
                {
                    this.magasin.ListeSousFamilles[i].RefFamille = sousFamille.RefFamille;
                    this.magasin.ListeSousFamilles[i].Nom        = sousFamille.Nom;
                }
            }

            //Update tous les articles locals correspondant à cette SousFamille
            for (int i = 0; i < this.magasin.ListeArticles.Count(); i++)
            {
                if (this.magasin.ListeArticles[i].RefSousFamille.RefSousFamille == sousFamille.RefSousFamille)
                {
                    this.magasin.ListeArticles[i].RefSousFamille.Nom = sousFamille.Nom;
                }
            }

            sql_con.Open();
            string sql = "UPDATE SousFamilles SET Nom = @nom, RefFamille = @refFamille  WHERE RefSousFamille=@refSousFamille";

            using (SQLiteCommand cmd = new SQLiteCommand(sql, sql_con))
            {
                cmd.Parameters.AddWithValue("@refFamille", sousFamille.RefFamille.RefFamille);
                cmd.Parameters.AddWithValue("@nom", sousFamille.Nom);
                cmd.Parameters.AddWithValue("@refSousFamille", sousFamille.RefSousFamille);
                cmd.ExecuteNonQuery();
                sfm = sousFamille;
            }
            this.sql_con.Close();
            return(sfm);
        }