Пример #1
0
        /// <summary>
        /// Recharge la liste de sous-famille de la comboBox correspondante lorsque la famille sélectionnée change.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FamilleComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();

            SousFamilleComboBox.Items.Clear();
            LoadSousFamilleComboBox(daoFamille.GetRefFamille(FamilleComboBox.SelectedItem.ToString()));
            //Si on modifie un article et qu'on resélectionne sa famille initiale, on initialise l'index de la comboBox à celui de la sous famille initiale.
            if (Mode == ModeEnum.Edit && string.Compare(article.Famille, FamilleComboBox.SelectedItem.ToString()) == 0)
            {
                int index = GetIndexOfItem(daoSousFamille.GetNomSousFamille(article.RefSousFamille), SousFamilleComboBox.Items);
                if (index != -1)
                {
                    SousFamilleComboBox.SelectedIndex = index;
                }
                else
                {
                    Console.WriteLine("Erreur sur l'indice de la sous famille de l'article dans la SousFamilleComboBox");
                }
            }
            //Sinon, on met juste la valeur de l'indice de la combo box à 0
            else
            {
                SousFamilleComboBox.SelectedIndex = 0;
            }

            CheckFields();
        }
Пример #2
0
        /// <summary>
        /// Valide la création ou la modification d'un article dans la BDD.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConfirmButton_Click(object sender, EventArgs e)
        {
            DAOArticle     daoArticle     = new DAOArticle();
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();
            DAOMarque      daoMarque      = new DAOMarque();

            article.RefArticle  = RefTextBox.Text;
            article.Description = DescTextBox.Text;

            article.Famille    = FamilleComboBox.SelectedItem.ToString();
            article.RefFamille = daoFamille.GetRefFamille(article.Famille);

            article.SousFamille    = SousFamilleComboBox.SelectedItem.ToString();
            article.RefSousFamille = daoSousFamille.GetRefSousFamille(article.RefFamille, article.SousFamille);

            article.Marque    = MarqueComboBox.SelectedItem.ToString();
            article.RefMarque = daoMarque.GetRefMarque(article.Marque);

            article.PrixHT   = float.Parse(PrixTextBox.Text);
            article.Quantite = (int)QuantiteNumericUpDown.Value;

            daoArticle.AddOrUpdateArticle(article);
            Close();
        }
Пример #3
0
        /// <summary>
        /// Charge les données de chaque ComboBox (ie : La liste des familles, La liste des sous familles de cette famille et la liste des marques)
        /// </summary>
        public void InitializeComboBox()
        {
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();
            DAOMarque      daoMarque      = new DAOMarque();

            //On charge la liste des familles
            FamilleComboBox.Items.AddRange(daoFamille.GetAllFamilles().ToArray <object>());
            //Si on modifie un article, on initialise la valeur de la comboBox correspondante à la famille originale de l'article
            if (Mode == ModeEnum.Edit)
            {
                int index = GetIndexOfItem(article.Famille, FamilleComboBox.Items);
                if (index != -1)
                {
                    FamilleComboBox.SelectedIndex = index;
                }
                else
                {
                    Console.WriteLine("Erreur sur l'indice de la famille de l'article dans la FamilleComboBox");
                }

                //On charge la liste des sous-familles de la famille sélectionnée
                LoadSousFamilleComboBox(article.RefFamille);
                //Si la famille actuellement sélectionnée est celle de l'article pré-modification (originale), alors on initialise la valeur de la comboBox correspondante à la sous-famille
                //originale de l'article
                index = GetIndexOfItem(daoSousFamille.GetNomSousFamille(article.RefSousFamille), SousFamilleComboBox.Items);
                if (index != -1)
                {
                    SousFamilleComboBox.SelectedIndex = index;
                }
                else
                {
                    Console.WriteLine("Erreur sur l'indice de la sous famille de l'article dans la SousFamilleComboBox");
                }
            }

            //On charge la liste des marques
            MarqueComboBox.Items.AddRange(daoMarque.GetAllMarques().ToArray <object>());
            //Si on modifie un article, on initialise la valeur de la comboBox correspondante à la marque originale de l'article
            if (Mode == ModeEnum.Edit)
            {
                int index = GetIndexOfItem(article.Marque, MarqueComboBox.Items);
                if (index != -1)
                {
                    MarqueComboBox.SelectedIndex = index;
                }
                else
                {
                    Console.WriteLine("Erreur sur l'indice de la marque de l'article dans la MarqueComboBox");
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Actualise le contenu de la StatusStrip.
        /// </summary>
        private void RefreshStatusStrip()
        {
            DAOArticle     daoArticle     = new DAOArticle();
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();
            DAOMarque      daoMarque      = new DAOMarque();

            // ### TODO : créer des méthodes "GetCount" dans le DAO, elles seront plus rapides
            int NombreArticles = daoArticle.GetAllArticles().Count;
            int NombreFamilles = daoFamille.GetAllFamilles().Count;
            int NombreMarques  = daoMarque.GetAllMarques().Count;

            StripStatusLabel.Text = NombreArticles + " articles répartis en " + NombreFamilles + " familles / " + NombreMarques + " marques";
        }
Пример #5
0
        /// <summary>
        /// Event déclenché lors d'un clic sur le bouton de confirmation.
        /// Ajoute ou modifie la sous-famille.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConfirmButton_Click(object sender, EventArgs e)
        {
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();

            // Si on veut créer une sous-famille
            if (SousFamille == "")
            {
                string SelectedItem = FamilleComboBox.Items[FamilleComboBox.SelectedIndex].ToString();
                daoSousFamille.AddSousFamille(daoFamille.GetRefFamille(SelectedItem), NameTextBox.Text);
                Close();
            }
            // Si on veut modifier une sous-famille existante
            else
            {
                int RefFamille = daoFamille.GetRefFamille(FamilleComboBox.Items[FamilleComboBox.SelectedIndex].ToString());
                daoSousFamille.UpdateSousFamille(daoSousFamille.GetRefSousFamille(RefFamille, SousFamille), NameTextBox.Text);
                Close();
            }
        }
Пример #6
0
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="Famille"></param>
        /// <param name="SousFamille"></param>
        public SousFamilleForm(string Famille = "", string SousFamille = "")
        {
            InitializeComponent();

            this.Famille     = Famille;
            this.SousFamille = SousFamille;

            // On remplit la combo box
            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();
            List <string>  ListeFamilles  = daoFamille.GetAllFamilles();

            foreach (string Nom in ListeFamilles)
            {
                FamilleComboBox.Items.Add(Nom);
            }
            FamilleComboBox.SelectedIndex = 0;

            // Si on veut créer une nouvelle famille
            if (SousFamille == "")
            {
                Text = "Créer une nouvelle sous-famille";
                ConfirmButton.Text = "Ajouter la sous-famille";
                RefTextBox.Text    = "Réference générée automatiquement";
            }
            // Si on veut modifier une sous-famille existante
            else
            {
                Text = "Modifier la sous-famille [" + SousFamille + "]";
                ConfirmButton.Text      = "Modifier la sous-famille";
                FamilleComboBox.Enabled = false;

                FamilleComboBox.SelectedIndex = FamilleComboBox.FindString(Famille);

                RefTextBox.Text  = daoSousFamille.GetRefSousFamille(daoFamille.GetRefFamille(Famille), SousFamille).ToString();
                NameTextBox.Text = SousFamille;
            }

            UpdateConfirmButton();
        }
Пример #7
0
        /// <summary>
        /// Actualise le contenu de la TreeView.
        /// </summary>
        private void RefreshTreeView()
        {
            TreeView.BeginUpdate();

            // On vide les noeuds "Familles" et "Marques"
            TreeView.Nodes[1].Nodes.Clear();
            TreeView.Nodes[2].Nodes.Clear();

            DAOFamille     daoFamille     = new DAOFamille();
            DAOSousFamille daoSousFamille = new DAOSousFamille();
            DAOMarque      daoMarque      = new DAOMarque();

            // Ajout des noeuds "Familles"
            List <string> ListeFamilles = daoFamille.GetAllFamilles();

            foreach (string Famille in ListeFamilles)
            {
                TreeNode NodeFamille = new TreeNode(Famille);
                TreeView.Nodes[1].Nodes.Add(NodeFamille);

                // Ajout des noeuds "Sous-Famille"
                List <string> ListeSousFamilles = daoSousFamille.GetAllSousFamilles(daoFamille.GetRefFamille(Famille));
                foreach (string SousFamille in ListeSousFamilles)
                {
                    NodeFamille.Nodes.Add(SousFamille);
                }
            }

            // Ajout des noeuds "Marques"
            List <string> ListeMarques = daoMarque.GetAllMarques();

            foreach (string Marque in ListeMarques)
            {
                TreeView.Nodes[2].Nodes.Add(Marque);
            }

            TreeView.EndUpdate();
        }
Пример #8
0
        /// <summary>
        /// Actualise le contenu de la ListView.
        /// </summary>
        private void RefreshListView()
        {
            // Paramètres de la ListView
            ListView.GridLines     = true;
            ListView.FullRowSelect = true;                // Sélection d'une ligne tout entière
            ListView.MultiSelect   = false;               // Pas possible de sélectionner plusieurs lignes
            ListView.Sorting       = SortOrder.Ascending; // Mode de tri par défaut

            //ListView.ContextMenu = ??? aller voir ListView.ContextMenu sur la doc

            // On nettoie la ListView
            ListView.Columns.Clear();
            ListView.Items.Clear();

            // ----------- AFFICHAGE DES COLONNES -----------
            // Si on veut afficher des articles
            if (ListViewDisplay == "ARTICLES")
            {
                ListView.Columns.Add("Réference", 75, HorizontalAlignment.Center);
                ListView.Columns.Add("Description", 150, HorizontalAlignment.Left);
                ListView.Columns.Add("Famille", 150, HorizontalAlignment.Left);
                ListView.Columns.Add("Sous-Famille", 150, HorizontalAlignment.Left);
                ListView.Columns.Add("Marque", 100, HorizontalAlignment.Left);
                ListView.Columns.Add("PrixHT", 75, HorizontalAlignment.Center);
                ListView.Columns.Add("Quantité", 75, HorizontalAlignment.Center);
            }
            // Si on veut afficher des marques, des familles ou des sous-familles
            else
            {
                ListView.Columns.Add("Description", -2, HorizontalAlignment.Left);
            }

            // ----------- AFFICHAGE DES ELEMENTS -----------
            // Si on veut afficher des articles
            if (ListViewDisplay == "ARTICLES")
            {
                DAOArticle daoArticle = new DAOArticle();

                List <Article> ListeArticles = new List <Article>();

                // Tous les articles
                if (ListViewCondition == "")
                {
                    ListeArticles = daoArticle.GetAllArticles();
                }
                // Les articles d'une certaine marque
                else if (ListViewCondition == "MARQUE")
                {
                    ListeArticles = daoArticle.GetArticlesWhereMarque(ListViewValue);
                }
                // Les articles d'une certaine sous-famille
                else if (ListViewCondition == "SOUSFAMILLE")
                {
                    ListeArticles = daoArticle.GetArticlesWhereSousFamille(ListViewValue2, ListViewValue);
                }

                // On ajoute tous les articles à la ListView
                foreach (Article NewArticle in ListeArticles)
                {
                    ListViewItem Item = new ListViewItem(NewArticle.RefArticle);
                    Item.SubItems.Add(NewArticle.Description);
                    Item.SubItems.Add(NewArticle.Famille);
                    Item.SubItems.Add(NewArticle.SousFamille);
                    Item.SubItems.Add(NewArticle.Marque);
                    Item.SubItems.Add(NewArticle.PrixHT.ToString());
                    Item.SubItems.Add(NewArticle.Quantite.ToString());
                    ListView.Items.Add(Item);
                }
            }
            // Si on veut afficher toutes les marques
            else if (ListViewDisplay == "MARQUES")
            {
                DAOMarque daoMarque = new DAOMarque();

                List <string> ListeMarques = daoMarque.GetAllMarques();
                foreach (string Marque in ListeMarques)
                {
                    ListView.Items.Add(new ListViewItem(Marque));
                }
            }
            // Si on veut afficher toutes les familles
            else if (ListViewDisplay == "FAMILLES")
            {
                DAOFamille daoFamille = new DAOFamille();

                List <string> ListeFamilles = daoFamille.GetAllFamilles();
                foreach (string Famille in ListeFamilles)
                {
                    ListView.Items.Add(new ListViewItem(Famille));
                }
            }
            // Si on veut afficher les sous-familles d'une famille
            else if (ListViewDisplay == "SOUSFAMILLES")
            {
                DAOSousFamille daoSousFamille = new DAOSousFamille();
                DAOFamille     daoFamille     = new DAOFamille();

                List <string> ListeSousFamilles = daoSousFamille.GetAllSousFamilles(daoFamille.GetRefFamille(ListViewValue));
                foreach (string SousFamille in ListeSousFamilles)
                {
                    ListView.Items.Add(new ListViewItem(SousFamille));
                }
            }
            else
            {
                Console.WriteLine("Erreur in RefreshListView");
            }
        }
Пример #9
0
        /// <summary>
        /// Ouvre un MessageBox affichant un message relatif à la suppression d'un élément (article, marque, famille...).
        /// En fonction de l'action de l'utilisateur, supprime on non l'élément.
        /// </summary>
        private void OpenDeleteMenu()
        {
            string            Message = "Default Message";          // Message affiché dans la TextBox
            MessageBoxButtons Buttons = MessageBoxButtons.YesNo;    // Boutons de la TextBox

            // Si aucun élément n'est sélectionné, on s'arrête là
            if (ListView.SelectedItems.Count == 0)
            {
                return;
            }

            string SelectedItem = ListView.SelectedItems[0].Text;   // Element selectionné dans la ListView

            /* CHOIX DU MESSAGE ET DES BOUTONS A AFFICHER */
            // On veut supprimer un article
            if (ListViewDisplay == "ARTICLES")
            {
                Message = "Êtes vous sur de supprimer l'article [" + SelectedItem + "] ? \n" +
                          "Cette action est irréversible.";
            }
            // On veut supprimer une famille
            else if (ListViewDisplay == "FAMILLES")
            {
                DAOArticle     daoArticle    = new DAOArticle();
                List <Article> ListeArticles = daoArticle.GetAllArticles();
                bool           Found         = false;
                for (int Index = 0; Index < ListeArticles.Count && !Found; Index++)
                {
                    if (ListeArticles[Index].Famille == SelectedItem)
                    {
                        Found = true;
                    }
                }
                if (!Found)
                {
                    Message = "Êtes vous sur de supprimer la famille [" + SelectedItem + "] ? \n" +
                              "Toutes les sous-familles seront supprimées. Cette action est irréversible.";
                }
                else
                {
                    Message = "La famille [" + SelectedItem + "] est déjà assignée à plusieurs articles." +
                              "Si vous voulez vraiment supprimer cette famille, modifiez ou supprimez ces articles au préalable.";
                    Buttons = MessageBoxButtons.OK;
                }
            }
            // On veut supprimer une marque
            else if (ListViewDisplay == "MARQUES")
            {
                DAOArticle     daoArticle    = new DAOArticle();
                List <Article> ListeArticles = daoArticle.GetArticlesWhereMarque(SelectedItem);
                if (ListeArticles.Count == 0)
                {
                    Message = "Êtes vous sur de supprimer la marque [" + SelectedItem + "] ? \n" +
                              "Cette action est irréversible.";
                }
                else
                {
                    Message = "La marque [" + SelectedItem + "] est déjà assignée à plusieurs articles." +
                              "Si vous voulez vraiment supprimer cette marque, modifiez ou supprimez ces articles au préalable.";
                    Buttons = MessageBoxButtons.OK;
                }
            }
            // On veut supprimer une sous-familles
            else if (ListViewDisplay == "SOUSFAMILLES")
            {
                DAOArticle     daoArticle    = new DAOArticle();
                List <Article> ListeArticles = daoArticle.GetArticlesWhereSousFamille(ListViewValue, SelectedItem);
                if (ListeArticles.Count == 0)
                {
                    Message = "Êtes vous sur de supprimer la sous-famille [" + SelectedItem + "] ? \n" +
                              "Cette action est irréversible.";
                }
                else
                {
                    Message = "La sous-famille [" + SelectedItem + "] est déjà assignée à plusieurs articles." +
                              "Si vous voulez vraiment supprimer cette sous-famille, modifiez ou supprimez ces articles au préalable.";
                    Buttons = MessageBoxButtons.OK;
                }
            }

            // Si l'utiliseur choisit "Oui" ---> On supprime l'élément
            if (MessageBox.Show(Message, "Attention", Buttons) == DialogResult.Yes)
            {
                if (ListViewDisplay == "ARTICLES")
                {
                    DAOArticle daoArticle = new DAOArticle();
                    daoArticle.DeleteArticle(SelectedItem);
                }
                else if (ListViewDisplay == "MARQUES")
                {
                    DAOMarque daoMarque = new DAOMarque();
                    int       RefMarque = daoMarque.GetRefMarque(SelectedItem);
                    daoMarque.DeleteMarque(RefMarque);
                }
                else if (ListViewDisplay == "FAMILLES")
                {
                    DAOFamille daoFamille = new DAOFamille();
                    int        RefFamille = daoFamille.GetRefFamille(SelectedItem);
                    daoFamille.DeleteFamille(RefFamille);
                }
                else if (ListViewDisplay == "SOUSFAMILLES")
                {
                    DAOFamille     daoFamille     = new DAOFamille();
                    DAOSousFamille daoSousFamille = new DAOSousFamille();
                    int            RefFamille     = daoFamille.GetRefFamille(ListViewValue);
                    int            RefSousFamille = daoSousFamille.GetRefSousFamille(RefFamille, SelectedItem);
                    daoSousFamille.DeleteSousFamille(RefSousFamille);
                }
                // On actualise l'affichage
                RefreshDisplay();
            }
        }
Пример #10
0
        /// <summary>
        /// On charge la liste des sous-famille d'une certaine famille (spécifiée par sa référence)
        /// </summary>
        /// <param name="RefFamille"></param>
        public void LoadSousFamilleComboBox(int RefFamille)
        {
            DAOSousFamille daoSousFamille = new DAOSousFamille();

            SousFamilleComboBox.Items.AddRange(daoSousFamille.GetAllSousFamilles(RefFamille).ToArray <object>());
        }