/// <summary> /// Edit a famille (just its name) /// </summary> /// <param name="famille">Old object name to edit</param> /// <param name="nom">New name</param> internal void EditFamille(Famille famille, string nom) { sqlConn = new SQLiteConnection("Data Source=Mercure.SQLite;"); SQLiteCommand sqlCmd = new SQLiteCommand("UPDATE Familles SET RefFamille = @RefFamille, Nom = @Nom WHERE RefFamille = @RefFamille;", sqlConn); sqlCmd.Parameters.Add(new SQLiteParameter("@RefFamille", famille.RefFamille)); sqlCmd.Parameters.Add(new SQLiteParameter("@Nom", nom)); Console.WriteLine(sqlCmd.CommandText); sqlCmd.Connection = sqlConn; sqlConn.Open(); SQLiteTransaction trans = sqlConn.BeginTransaction(); try { Console.WriteLine(sqlCmd.ExecuteNonQuery() + " : " + sqlCmd.CommandText); } catch (SQLiteException e) { Console.WriteLine(sqlCmd.CommandText); Console.WriteLine(e.Message); } trans.Commit(); sqlConn.Close(); }
/** * Constructeur * Param: * Nom de la base de données * Famille à modifier */ public FormSaveFamille(String databaseFileName, Famille famille) { this.toUpdate = true; this.databaseFileName = databaseFileName; InitializeComponent(); InitializeTextBoxes(famille); }
private void supprimerToolStripMenuItem_Click(object sender, EventArgs e) { if (familleListview.SelectedIndices.Count == 1) { if (DialogResult.OK == MessageBox.Show("Attention, vous êtes sur le point de supprimer une famille, et tous les articles et sous familles associés à cette famille. \n Etes vous sur de vouloir continuer ?", "Attention", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)) { int SelectedIndex = familleListview.SelectedIndices[0]; String refFamilleToDelete = this.familleListview.Items[SelectedIndex].SubItems[0].Text; Famille famille = DBManager.GetInstance().GetFamilleByRef(refFamilleToDelete); List <SousFamille> sousFamilles = new List <SousFamille>(); //Supprimer tous les articles liées au sous-familles qui appartiennent à la famille sousFamilles = DBManager.GetInstance().GetListeSousFamillesByFamille(refFamilleToDelete); for (int i = 0; i < sousFamilles.Count; i++) //Pour chaque sous famille { DBManager.GetInstance().DeleteArticlesBySousFamille(sousFamilles[i].RefSousFamille); } //Supprimer toutes les sous familles associées à la famille DBManager.GetInstance().DeleteSousFamillesByFamille(refFamilleToDelete); //Supprimer la famille DBManager.GetInstance().DeleteFamille(famille); RefreshListView(); } } }
/// <summary> /// Initialise une nouvelle instance de <see cref="SousFamille"/>. /// </summary> /// <param name="Reference"> la référence de la sous-famille </param> /// <param name="Nom"> le nom de la sous-famille</param> public SousFamille(int Reference, string Nom, Famille Famille) { this.Reference = Reference; this.Nom = Nom; this.Famille = Famille; }
/// <summary> /// Ajoute un article dans la base de données. /// </summary> /// <returns>L'article ajouté</returns> public Article Ajouter_Article() { SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); Famille Famille = (Famille)Choix_Famille_Article.SelectedItem; SousFamille Sous_Famille = (SousFamille)Choix_Sous_Famille_Article.SelectedItem; Sous_Famille.Definir_Famille(Famille); Marque Marque = (Marque)Choix_Marque_Article.SelectedItem; string Reference = Reference_Article_Edition.Text; string Description = Description_Article_Edition.Text; string Prix = Prix_Unitaire_Article_Edition.Text; string Quantite = Quantite_Article_Edition.Text; double Prix_Converti = Convert.ToDouble(Prix); Data_Reader.Inserer_Sous_Famille(Sous_Famille.Recuperer_Nom(), Famille.Recuperer_Reference()); Data_Reader.Inserer_Article(Reference, Description, Sous_Famille.Recuperer_Reference(), Marque.Recuperer_Reference(), Prix_Converti, Int32.Parse(Quantite)); Data_Reader.Terminer_Connection(); Article Article = new Article(Reference, Description, Sous_Famille, Marque, Prix_Converti, Int32.Parse(Quantite)); return(Article); }
/// <summary> /// Lance une nouvelle instance de <see cref="Fenetre_Ajout_Famille"/> avec un objet <see cref="ListViewItem"/> de type <see cref="Famille"/>. /// </summary> /// <param name="sender"> l'objet envoyé </param> /// <param name="e"> l'évènement </param> private void Bouton_Modifier_Click(object sender, EventArgs e) { // On affiche la même fenêtre que celle pour l'ajout d'une famille, // mais avec les champs remplis avec les informations de l'objet. // On vérifie qu'un élément a bien été sélectionné. if (Familles_Liste.SelectedItems.Count > 0) { Fenetre_Ajout_Famille Fenetre_Ajout = new Fenetre_Ajout_Famille(Familles_Liste.SelectedItems[0]); DialogResult Resultat = Fenetre_Ajout.ShowDialog(); // On modifie les données de la ligne correspondant à la famille. if (Resultat == DialogResult.OK) { Famille Famille = Fenetre_Ajout.Mettre_A_Jour_Famille(); Familles_Liste.Items[Familles_Liste.SelectedIndices[0]] = new ListViewItem(Famille.Recuperer_Donnees()); ((Fenetre_Principale)Owner).Mise_A_Jour_Barre_De_Statut("Vous avez modifié une famille avec succès."); } } }
/* * @param databasefile famille * mettre a jours une famille * */ public static void UpdateFamille(String databaseFile, Famille famille) { SQLiteHelper helper = new SQLiteHelper(databaseFile); Dictionary <String, Object> data = new Dictionary <String, Object>(); data.Add("Nom", famille.Nom); helper.Update(Configuration.FAMILLE_TABLE_NAME, data, String.Format("RefFamille = {0}", famille.Ref_Famille)); }
/// <summary> /// Constructor used to edit a family /// </summary> /// <param name="familleToEdit">Family information with will fill the form</param> public AddFamilleForm(Famille familleToEdit) { InitializeComponent(); this.Text = "Modifier une famille"; famille = familleToEdit; FamilleTxtbox.Text = familleToEdit.Nom; }
/* * @param databasefile famille * inserer une famille dans la base * */ public static void InsertFamille(String databaseFile, Famille famille) { SQLiteHelper helper = new SQLiteHelper(databaseFile); Dictionary <String, Object> data = new Dictionary <String, Object>(); data.Add("RefFamille", famille.Ref_Famille); data.Add("Nom", famille.Nom); helper.Insert(Configuration.FAMILLE_TABLE_NAME, data); }
/** * Fonction privée pour initialiser les listes de sous-familles et marques */ private void InitializeLists() { //Chargement la liste des familles dans le combo-box familleList = Famille.GetAll(databaseFileName); foreach (Famille f in familleList) { familleComboBox.Items.Add(f.Nom); familleComboBox.SelectedIndex = 0; // Selection de la premiere famille par défaut } }
/// <summary> /// Ajoute la famille dans la base de données. /// </summary> /// <returns> La famille ajoutée </returns> public Famille Ajouter_Famille() { SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); int Reference = Data_Reader.Inserer_Famille(Nom_Famille_Edition.Text); Data_Reader.Terminer_Connection(); Famille Famille = new Famille(Reference, Nom_Famille_Edition.Text); return(Famille); }
private void modifierToolStripMenuItem_Click(object sender, EventArgs e) { if (familleListview.SelectedIndices.Count == 1) { int SelectedIndex = familleListview.SelectedIndices[0]; String refFamilleToEdit = this.familleListview.Items[SelectedIndex].SubItems[0].Text; Famille famille = DBManager.GetInstance().GetFamilleByRef(refFamilleToEdit); AddFamilleForm form = new AddFamilleForm(famille); form.ShowDialog(); RefreshListView(); } }
/* * @param databasefile * recuperer tous les informations sur une famille * @return list de famille * */ public static List <Famille> GetAll(String databaseFile) { SQLiteHelper helper = new SQLiteHelper(databaseFile); DataTable marquesTable = helper.GetDataTable(String.Format("SELECT * FROM {0}", Configuration.FAMILLE_TABLE_NAME)); List <Famille> familles = new List <Famille>(); foreach (DataRow r in marquesTable.Rows) { Famille famille = new Famille(Int32.Parse(r["RefFamille"].ToString()), r["Nom"].ToString()); familles.Add(famille); } return(familles); }
/// <summary> /// Get all sous-familles that belong to a family /// </summary> /// <param name="refFamille">Family name</param> /// <returns>A list of "sous-famille"</returns> public List <SousFamille> GetListeSousFamillesByFamille(string refFamille) { Famille famille = new Famille(); SousFamille sousFamille = new SousFamille(); List <SousFamille> listSousFamilles = new List <SousFamille>(); sqlConn.Open(); //Compter combien de résultat la requete retourne int nbResults = 0; SQLiteCommand sqlCmd = new SQLiteCommand("SELECT COUNT(*) FROM SousFamilles WHERE RefFamille = @RefFamille", sqlConn); sqlCmd.Parameters.Add(new SQLiteParameter("@RefFamille", refFamille)); SQLiteDataReader reader = sqlCmd.ExecuteReader(); if (reader.Read()) { nbResults = reader.GetInt16(0); } reader.Close(); reader.Dispose(); //Récupération des sous-familles sqlCmd = new SQLiteCommand("SELECT RefSousFamille, RefFamille, Nom FROM SousFamilles WHERE RefFamille = @RefFamille", sqlConn); sqlCmd.Parameters.Add(new SQLiteParameter("@RefFamille", refFamille)); reader = sqlCmd.ExecuteReader(); if (reader.Read()) { //On boucle sur le nombre de résultats obtenus for (int i = 0; i < nbResults; i++) { sousFamille.RefSousFamille = reader.GetInt32(0); sousFamille.RefFamille = reader.GetInt32(1); sousFamille.Nom = reader.GetString(2); listSousFamilles.Add(sousFamille); } } reader.Close(); reader.Dispose(); sqlConn.Close(); return(listSousFamilles); }
private void supprimerFamilleButton_Click(object sender, EventArgs e) { if (familleListView.SelectedIndices.Count > 0) { int aIndex = familleListView.SelectedIndices[0]; DialogResult result = MessageBox.Show("Are you sure you want to delete : " + familles[aIndex].Nom, "Delete famille", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { Famille.RemoveFamille(databaseFileName, familles[aIndex].Ref_Famille); LoadFamilles(); } } }
/** * Fonction privée pour gérer le fichier xml */ private void HandleXML() { //Efface la base de données si l'utilisateur a choisi nouvelle integration SQLiteHelper helper = new SQLiteHelper(databaseFileName); if (operation == OPERATION_CLEAR_INSERT) { helper.ClearDB(); RegisterMessage("Database is cleared."); } //Charge le fichier xml et affiche un message à l'utilisateur XmlDocument doc = new XmlDocument(); doc.Load(XmlFileName); RegisterMessage("Document is loaded."); //Prendre le noeud des articles XmlNode root = doc.ChildNodes[1]; //Nombre des articles dans le fichier int childCount = root.ChildNodes.Count; //Combien devrait augmenter la barre de progression int incrementor = (int)Math.Ceiling((double)(100 / childCount)); foreach (XmlNode node in root.ChildNodes) { //Insère la marque dans la base de données Marque marque = HandleMarque(node); //Insère la famille dans la base de données Famille famille = HandleFamille(node); //Insère le sous-famille dans la base de données SousFamille sousFamille = HandleSousFamille(node, famille); //Insère l'article dans la base de données Article article = HandleArticle(node, marque, sousFamille); //Incremente la barre de progression IncrementProgress(incrementor); } //Affiche un message de succés RegisterMessage("The integration was successful."); //Efface l'ancien nom de fichier setCurrentFileName(null); //Réinitialise la barre de progression ResetProgress(); }
/// <summary> /// Met à jour la famille sélectionnée avec le nouveau nom entré. /// </summary> /// <returns> La famille mise à jour </returns> public Famille Mettre_A_Jour_Famille() { SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); int Reference = Convert.ToInt32(this.Famille.SubItems[0].Text); Data_Reader.Mise_A_Jour_Famille(Reference, Nom_Famille_Edition.Text); Data_Reader.Terminer_Connection(); Famille Famille = new Famille(Reference, Nom_Famille_Edition.Text); return(Famille); }
private void familleListview_KeyDown(object sender, KeyEventArgs e) { //Si on appuie sur la touche "suppr" et qu'une famille et sélectionnée if (e.KeyCode == Keys.Delete && familleListview.SelectedIndices.Count == 1) { //Si on appuie sur OK sur la fenetre de warning if (DialogResult.OK == MessageBox.Show("Attention, vous êtes sur le point de supprimer une famille, et tous les articles et sous familles associés à cette famille. \n Etes vous sur de vouloir continuer ?", "Attention", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)) { int SelectedIndex = familleListview.SelectedIndices[0]; String refFamilleToDelete = this.familleListview.Items[SelectedIndex].SubItems[0].Text; Famille famille = DBManager.GetInstance().GetFamilleByRef(refFamilleToDelete); List <SousFamille> sousFamilles = new List <SousFamille>(); //Supprimer tous les articles liées au sous-familles qui appartiennent à la famille sousFamilles = DBManager.GetInstance().GetListeSousFamillesByFamille(refFamilleToDelete); for (int i = 0; i < sousFamilles.Count; i++) //Pour chaque sous famille { DBManager.GetInstance().DeleteArticlesBySousFamille(sousFamilles[i].RefSousFamille); } //Supprimer toutes les sous familles associées à la famille DBManager.GetInstance().DeleteSousFamillesByFamille(refFamilleToDelete); //Supprimer la famille DBManager.GetInstance().DeleteFamille(famille); RefreshListView(); } } else if (e.KeyCode == Keys.F5) { RefreshListView(); } //Si on appuie sur "entrer" pour modifier else if (e.KeyCode == Keys.Enter) { if (familleListview.SelectedIndices.Count == 1) { int SelectedIndex = familleListview.SelectedIndices[0]; String refFamilleToEdit = this.familleListview.Items[SelectedIndex].SubItems[0].Text; Famille famille = DBManager.GetInstance().GetFamilleByRef(refFamilleToEdit); AddFamilleForm form = new AddFamilleForm(famille); form.ShowDialog(); RefreshListView(); } } }
private void LoadFamilles() { familleListView.Items.Clear(); familles.Clear(); familles.AddRange(Famille.GetAll(databaseFileName)); foreach (Famille famille in familles) { ListViewItem item = new ListViewItem(Convert.ToString(famille.Ref_Famille)); ListViewItem.ListViewSubItem nomItem = new ListViewItem.ListViewSubItem(item, famille.Nom); item.SubItems.Add(nomItem); familleListView.Items.Add(item); } }
/// <summary> /// Delete an family from the DB /// </summary> internal void DeleteFamille(Famille famille) { sqlConn = new SQLiteConnection("Data Source=Mercure.SQLite;"); sqlConn.Open(); SQLiteCommand sqlCmd = sqlConn.CreateCommand(); sqlCmd.CommandText = "Delete From Familles Where RefFamille = '" + famille.RefFamille + "'"; SQLiteDataReader reader = sqlCmd.ExecuteReader(); Console.WriteLine(sqlCmd.CommandText); reader.Close(); reader.Dispose(); sqlConn.Close(); }
/** * Fonction privée pour sauvegarder une famille à partir les champs de l'interface */ private void SaveFamille() { //Reference de la famille String RefText = referenceFamilleTextBox.Text; //Nom de la famille String Nom = nomFamilleTextBox.Text; //L'utilisateur doit fournir le reference et le nom if (!RefText.Equals("") && !Nom.Equals("")) { try { int RefFamille = int.Parse(RefText); // converte string à int Famille famille = new Famille(RefFamille, Nom); // Reconstruction de la famille if (toUpdate) { //Modification de la famille Famille.UpdateFamille(databaseFileName, famille); MessageBox.Show("The family was updated.", "Famille info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Famille f = Famille.FindFamille(databaseFileName, RefFamille); if (f != null) { //Message de l'exception pour notifier l'utilisateur MessageBox.Show("This reference is already present", "Famille error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Insertion de la famille Famille.InsertFamille(databaseFileName, famille); MessageBox.Show("The family was added.", "Famille info", MessageBoxButtons.OK, MessageBoxIcon.Information); } //Ferme la fenetre Dispose(); } catch (FormatException e) { //Message de l'exception pour notifier l'utilisateur MessageBox.Show(e.Message, "Famille error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { //Message de remplir pour l'utilisateur MessageBox.Show("Please fill all the required fields...", "Famille error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Retourne une instance de <see cref="Famille"/>. /// </summary> /// <param name="Id_Famille"> la référence de la famille </param> /// <returns>Une instance de <see cref="Famille"/></returns> public Famille Recuperer_Famille(int Id_Famille) { SQLiteCommand Requete_Famille = new SQLiteCommand("SELECT * FROM Familles WHERE @Id_Famille == RefFamille;", Connection); Requete_Famille.Parameters.AddWithValue("@Id_Famille", Id_Famille); SQLiteDataReader Lecture_Table_Famille = Requete_Famille.ExecuteReader(); Lecture_Table_Famille.Read(); Famille Famille = new Famille(Convert.ToInt32(Lecture_Table_Famille[0]), Convert.ToString(Lecture_Table_Famille[1])); Lecture_Table_Famille.Close(); return(Famille); }
/// <summary> /// Affiche l'intégralité des familles disponibles dans une <see cref="ListView"/>. /// </summary> private void Charger_Familles() { Familles_Liste.Items.Clear(); SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); List <Famille> Familles = Data_Reader.Recuperer_Familles(); Data_Reader.Terminer_Connection(); foreach (Famille Famille in Familles) { ListViewItem Famille_Item = new ListViewItem(Famille.Recuperer_Donnees()); Familles_Liste.Items.Add(Famille_Item); } }
/// <summary> /// Affiche l'intégralité des familles disponibles dans un <see cref="ComboBox"/> et sélectionne celle correspondant à celle de l'article à modifier. /// </summary> /// <param name="Nom"> le nom de la famille de l'article à modifier </param> private void Charger_Familles(string Nom) { SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); List <Famille> Familles = Data_Reader.Recuperer_Familles(); Data_Reader.Terminer_Connection(); foreach (Famille Famille in Familles) { Choix_Famille_Article.Items.Add(Famille); if (Nom.Equals(Famille.Recuperer_Nom())) { Choix_Famille_Article.SelectedItem = Famille; } } }
/// <summary> /// Lance une nouvelle instance de <see cref="Fenetre_Ajout_Famille"/>. /// </summary> /// <param name="sender"> l'objet envoyé </param> /// <param name="e"> l'évènement </param> private void Bouton_Ajouter_Click(object sender, EventArgs e) { Fenetre_Ajout_Famille Fenetre_Ajout = new Fenetre_Ajout_Famille(); DialogResult Resultat = Fenetre_Ajout.ShowDialog(); // On affiche la nouvelle famille dans la liste. if (Resultat == DialogResult.OK) { Famille Famille = Fenetre_Ajout.Ajouter_Famille(); ListViewItem Famille_Dans_Liste = new ListViewItem(Famille.Recuperer_Donnees()); Familles_Liste.Items.Add(Famille_Dans_Liste); ((Fenetre_Principale)Owner).Mise_A_Jour_Barre_De_Statut("Vous avez ajouté une nouvelle famille avec succès."); } }
private void LoadSousFamilles() { sousFamillesListView.Items.Clear(); sousFamilles.Clear(); sousFamilles.AddRange(SousFamille.GetAll(databaseFileName)); foreach (SousFamille sousFamille in sousFamilles) { ListViewItem item = new ListViewItem(Convert.ToString(sousFamille.Ref_Sous_Famille)); ListViewItem.ListViewSubItem nomItem = new ListViewItem.ListViewSubItem(item, sousFamille.Nom); item.SubItems.Add(nomItem); Famille famille = Famille.FindFamille(databaseFileName, sousFamille.Ref_Famille); ListViewItem.ListViewSubItem familleItem = new ListViewItem.ListViewSubItem(item, famille != null ? famille.Nom : ""); item.SubItems.Add(familleItem); sousFamillesListView.Items.Add(item); } }
/** * Fonction privée pour gérer le sous-famille dans le noeud */ private SousFamille HandleSousFamille(XmlNode node, Famille famille) { //Npm de sous-famille String sousFamilleNom = node.ChildNodes[4].InnerText; //Recherche si le sous-famille est déjà dans la base de données SousFamille sousFamille = SousFamille.FindSousFamilleByNom(databaseFileName, sousFamilleNom); if (sousFamille == null) { //Insertion de sous-famille int Count = SousFamille.GetSize(databaseFileName); sousFamille = new SousFamille(Count, famille.Ref_Famille, sousFamilleNom); SousFamille.InsertSousFamille(databaseFileName, sousFamille); //Affiche d'un message de notification RegisterMessage("Sous-Famille : " + sousFamilleNom + " is added."); } return(sousFamille); }
/** * Fonction privée pour gérer la famille dans le noeud */ private Famille HandleFamille(XmlNode node) { //Nom de la Famille String familleNom = node.ChildNodes[3].InnerText; //Recherche si la famille est déjà dans la base de données Famille famille = Famille.FindFamilleByNom(databaseFileName, familleNom); if (famille == null) { //Insertion de la famille int Count = Famille.GetSize(databaseFileName); famille = new Famille(Count, familleNom); Famille.InsertFamille(databaseFileName, famille); //Affiche d'un message de notification RegisterMessage("Famille : " + familleNom + " is added."); } return(famille); }
/// <summary> /// Affiche l'intégralité des familles disponibles dans un <see cref="ComboBox"/> et sélectionne celle correspondant à celle de la sous-famille à modifier. /// </summary> private void Charger_Famille() { Choix_Famille_Selection.Items.Clear(); SqlDataReader Data_Reader = SqlDataReader.Ouvrir_Connection(); List <Famille> Familles = Data_Reader.Recuperer_Familles(); Data_Reader.Terminer_Connection(); foreach (Famille Famille in Familles) { Choix_Famille_Selection.Items.Add(Famille); if (Sous_Famille != null && Famille.ToString().Equals(Sous_Famille.SubItems[2].Text)) { Choix_Famille_Selection.SelectedItem = Famille; } } }
/// <summary> /// Retourne l'ensemble des sous-familles disponibles. /// </summary> /// <returns>La liste des sous-familles</returns> public List <SousFamille> Recuperer_Sous_Familles() { List <SousFamille> Sous_Familles = new List <SousFamille>(); SQLiteCommand Requete_Sous_Familles = new SQLiteCommand("SELECT * FROM SousFamilles ORDER BY Nom ASC;", Connection); SQLiteDataReader Lecture_Table_Sous_Famille = Requete_Sous_Familles.ExecuteReader(); while (Lecture_Table_Sous_Famille.Read()) { Famille Famille = Recuperer_Famille(Convert.ToInt32(Lecture_Table_Sous_Famille[1])); Sous_Familles.Add(new SousFamille(Convert.ToInt32(Lecture_Table_Sous_Famille[0]), Convert.ToString(Lecture_Table_Sous_Famille[2]), Famille)); } Lecture_Table_Sous_Famille.Close(); return(Sous_Familles); }