Ejemplo n.º 1
0
 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);
        }
Ejemplo n.º 5
0
 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);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 6
0
        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();
                                }
                            }
                        }
                    }
                }
            }
        }