private IEnumerable <Reparation> EnumererReparation() { return(Reparation.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * FROM reparation JOIN article ON reparation.fk_id_article = article.id_article JOIN facture ON reparation.fk_id_facture = facture.id_facture WHERE fk_id_facture = {0}", Id))); }
private void FicheArticle1_SurChangementSelection(object sender, EventArgs e) { if (ficheArticle1.ArticleSelectionnee != null) { errorProvider.Clear(); ValidationProvider.Clear(); textBoxNomArticle.Text = ficheArticle1.ArticleSelectionnee.NomArticle; numericUpDownPrixUnitaire.Value = decimal.Parse(ficheArticle1.ArticleSelectionnee.PrixUnite.ToString()); numericUpDownQuantite.Value = decimal.Parse(ficheArticle1.ArticleSelectionnee.Stock.ToString()); Reparation LiaisonExistante = Program.GMBD.EnumererReparation(null, null, new PDSGBD.MyDB.CodeSql("WHERE fk_id_article = {0}", ficheArticle1.ArticleSelectionnee.Id), null).FirstOrDefault(); if (LiaisonExistante != null) { numericUpDownPrixUnitaire.Enabled = false; textBoxNomArticle.Enabled = false; } else { numericUpDownPrixUnitaire.Enabled = true; textBoxNomArticle.Enabled = true; } buttonModifier.Enabled = true; buttonAjouter.Enabled = false; buttonSupprimer.Enabled = true; } else { numericUpDownPrixUnitaire.Enabled = true; } }
private void buttonSupprimer_Click(object sender, EventArgs e) { if (ficheArticle1.ArticleSelectionnee != null) { if (ficheArticle1.ArticleSelectionnee.Stock > 0) { errorProvider.SetError(buttonSupprimer, "Suppression impossible tant qu'il y a encore du stock pour cet article"); } else { Reparation ArticleReference = Program.GMBD.EnumererReparation(null, null, new PDSGBD.MyDB.CodeSql("WHERE fk_id_article = {0}", ficheArticle1.ArticleSelectionnee.Id), null).FirstOrDefault(); if (ArticleReference != null) { // Afin de garder la trace de cet article pour la facture, l'article deviendra indisponible et sera considéré comme supprimé Article ArticleIndisponible = ficheArticle1.ArticleSelectionnee; ArticleIndisponible.Disponible = 0; Program.GMBD.ModifierArticle(ArticleIndisponible); RefreshPage(); ValidationProvider.SetError(buttonSupprimer, "Article correctement supprimé"); } else { Program.GMBD.SupprimerArticle(ficheArticle1.ArticleSelectionnee); RefreshPage(); ValidationProvider.SetError(buttonSupprimer, "Article correctement supprimé"); } } } }
/// <summary> /// Met à jour la listview des articles et y insére les elements /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Entites"></param> /// <returns></returns> private bool MettreAJourListe <T>(IEnumerable <T> Entites) where T : class, IEntiteMySQL { bool EstArticle = typeof(T).Equals(typeof(Reparation)); if (!EstArticle) { return(false); } listViewArticleFacture.Items.Clear(); if (Entites == null) { return(false); } int NbLignes = 0; if (EstArticle && (listViewArticleFacture.Columns.Count != 2)) { listViewArticleFacture.Columns.Clear(); listViewArticleFacture.Columns.Add(new ColumnHeader() { Name = "NomArticle", Text = "Nom de l'Article", TextAlign = HorizontalAlignment.Center, }); listViewArticleFacture.Columns.Add(new ColumnHeader() { Name = "Quantite", Text = "Quantité", TextAlign = HorizontalAlignment.Center, }); listViewArticleFacture.Columns.Add(new ColumnHeader() { Name = "PrixUnitaire", Text = "PrixUnitaire", TextAlign = HorizontalAlignment.Center, }); } foreach (T Entite in Entites) { Reparation ArticleFacture = Entite as Reparation; ListViewItem NouvelElement = new ListViewItem() { Tag = Entite, Text = ArticleFacture.Article.NomArticle.ToString(), }; NouvelElement.SubItems.Add(ArticleFacture.QuantiteArticle.ToString()); NouvelElement.SubItems.Add(ArticleFacture.Article.PrixUnite.ToString()); listViewArticleFacture.Items.Add(NouvelElement); } listViewArticleFacture.Visible = false; foreach (ColumnHeader Colonne in listViewArticleFacture.Columns) { NbLignes++; Colonne.Width = listViewArticleFacture.Width / listViewArticleFacture.Columns.Count; } NombreDeLigne = NbLignes; listViewArticleFacture.Visible = true; listViewArticleFacture_SelectedIndexChanged(listViewArticleFacture, EventArgs.Empty); return(true); }
private void pictureBoxRetirerA_Click(object sender, EventArgs e) { // Si ce n'est pas égal à "terminé" ou "annuler" et que la date de fin n'est pas encore passée, alors c'est bon if ((CalendrierRdv.FactureSelectionnee != null) && (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") && (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Annuler") && (CalendrierRdv.FactureSelectionnee.RendezVous.DateFin > DateTime.Now)) { // Si c'est "en attente" et que la date de fin n'est pas encore passée, alors c'est bon if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "En attente") && (CalendrierRdv.FactureSelectionnee.RendezVous.DateFin > DateTime.Now)) { if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") && (ficheArticleFacture.ArticleSelectionnee != null)) { Reparation ArticleExistant = Program.GMBD.EnumererReparation(null, new MyDB.CodeSql("JOIN article ON reparation.fk_id_article = article.id_article JOIN facture ON reparation.fk_id_facture = facture.id_facture"), new MyDB.CodeSql("WHERE fk_id_article = {0} AND fk_id_facture = {1}", ficheArticleFacture.ArticleSelectionnee.Article.Id, CalendrierRdv.FactureSelectionnee.Id), null).FirstOrDefault(); // Si l'article n'existe pas encore pour cette facture dans la base de données if (ArticleExistant != null) { // Si la quantité facturée est strictement supérieure à 1 if (ArticleExistant.QuantiteArticle > 1) { ArticleExistant.QuantiteArticle = ArticleExistant.QuantiteArticle - 1; // Je modifie la facture en y retirant un article if ((ArticleExistant.EstValide) && (Program.GMBD.ModifierArticleFacture(ArticleExistant))) { Article Article = ArticleExistant.Article; Article.Stock = Article.Stock + 1; // Je modifie l'article pour modifié la quantité if ((Article.EstValide) && (Program.GMBD.ModifierArticle(Article))) { double x = double.Parse(textBoxPrixTotal.Text.Remove(textBoxPrixTotal.Text.Length - 1)) - ArticleExistant.Article.PrixUnite; textBoxPrixTotal.Text = string.Format("{0} €", x); ActualiserFicheArticleFacture(); ActualiserFicheArticle(); } else { ArticleExistant.QuantiteArticle = ArticleExistant.QuantiteArticle + 1; Program.GMBD.ModifierArticleFacture(ArticleExistant); } } } else { if ((ArticleExistant.EstValide) && (Program.GMBD.SupprimerArticleFacture(ArticleExistant))) { Article Article = ArticleExistant.Article; Article.Stock = Article.Stock + 1; // Je modifie l'article pour modifiié la quantité if ((Article.EstValide) && (Program.GMBD.ModifierArticle(Article))) { double x = double.Parse(textBoxPrixTotal.Text.Remove(textBoxPrixTotal.Text.Length - 1)) - ArticleExistant.Article.PrixUnite; textBoxPrixTotal.Text = string.Format("{0} €", x); ActualiserFicheArticleFacture(); ActualiserFicheArticle(); } else { ArticleExistant.QuantiteArticle = ArticleExistant.QuantiteArticle + 1; Program.GMBD.ModifierArticleFacture(ArticleExistant); } } } } } } } }
private void pictureBoxAjouterA_Click(object sender, EventArgs e) { // Si ce n'est pas égal à "terminé" ou "annuler" et que la date de fin n'est pas encore passée, alors c'est bon if ((CalendrierRdv.FactureSelectionnee != null) && (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") && (CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Annuler") && (CalendrierRdv.FactureSelectionnee.RendezVous.DateFin > DateTime.Now)) { // Si c'est "en attente" et que la date de fin n'est pas encore passée, alors c'est bon if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation == "En attente") && (CalendrierRdv.FactureSelectionnee.RendezVous.DateFin > DateTime.Now)) { if ((CalendrierRdv.FactureSelectionnee.RendezVous.Statut.StatutOperation != "Terminé") && (ficheArticlesComplet.ArticleSelectionnee != null)) { Reparation NouvelArticleFacture = new Reparation(); NouvelArticleFacture.Article = ficheArticlesComplet.ArticleSelectionnee; Reparation ArticleDejaCree = Program.GMBD.EnumererReparation(null, new MyDB.CodeSql("JOIN article ON reparation.fk_id_article = id_article"), new MyDB.CodeSql("WHERE fk_id_article = {0} AND fk_id_facture = {1}", NouvelArticleFacture.Article.Id, CalendrierRdv.FactureSelectionnee.Id), null).FirstOrDefault(); // Si l'article n'existe pas encore pour cette facture dans la base de données if (ArticleDejaCree == null) { NouvelArticleFacture.QuantiteArticle = 1; NouvelArticleFacture.FactureLiee = CalendrierRdv.FactureSelectionnee; if ((NouvelArticleFacture.EstValide) && (Program.GMBD.AjouterArticleFacture(NouvelArticleFacture))) { Article Article = NouvelArticleFacture.Article; Article.Stock = Article.Stock - 1; if ((Article.EstValide) && (Program.GMBD.ModifierArticle(Article))) { double x = double.Parse(textBoxPrixTotal.Text.Remove(textBoxPrixTotal.Text.Length - 1)) + NouvelArticleFacture.Article.PrixUnite; textBoxPrixTotal.Text = string.Format("{0} €", x); ActualiserFicheArticleFacture(); ActualiserFicheArticle(); } else { Program.GMBD.SupprimerArticleFacture(NouvelArticleFacture); ActualiserFicheArticle(); } } } // Si l'article est déjà existant pour cette facture dans la base de données else { ArticleDejaCree.FactureLiee = CalendrierRdv.FactureSelectionnee; ArticleDejaCree.QuantiteArticle = ArticleDejaCree.QuantiteArticle + 1; if ((ArticleDejaCree.EstValide) && (Program.GMBD.ModifierArticleFacture(ArticleDejaCree))) { Article Article = NouvelArticleFacture.Article; Article.Stock = Article.Stock - 1; if ((Article.EstValide) && (Program.GMBD.ModifierArticle(Article))) { double x = double.Parse(textBoxPrixTotal.Text.Remove(textBoxPrixTotal.Text.Length - 1)) + NouvelArticleFacture.Article.PrixUnite; textBoxPrixTotal.Text = string.Format("{0} €", x); ActualiserFicheArticleFacture(); ActualiserFicheArticle(); } else { Program.GMBD.SupprimerArticleFacture(NouvelArticleFacture); ActualiserFicheArticle(); } } } } } } }