/// <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(); }
/// <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(); }
/// <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"); } } }
/// <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"; }
/// <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(); } }
/// <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(); }
/// <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(); }
/// <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"); } }
/// <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(); } }
/// <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>()); }