public List<DetailsCde> getDetailsCde(String noCmd)
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");
            //MySqlConnection cnx = Connexion.getInstance().getConnexion();

            String mysql = "SELECT articles.*, detail_cde.QTE_CDEE, detail_cde.LIVREE "
                +"FROM articles, detail_cde "+"WHERE detail_cde.NO_COMMAND = " 
                + noCmd 
                + " AND articles.NO_ARTICLE = detail_cde.NO_ARTICLE "
                + "ORDER BY NO_ARTICLE ASC";
            Console.Write(mysql);
            try
            {
                dt = DbInterface.Lecture(mysql, err);
                List<DetailsCde> mesDetails = new List<DetailsCde>();
                foreach (DataRow dataRow in dt.Rows)
                {
                    Article unart = new Article();
                    unart.No_article = dataRow[0].ToString();
                    unart.Lib_article = dataRow[1].ToString();
                    unart.Qte_dispo = dataRow[2].ToString();
                    unart.Ville_art = dataRow[3].ToString();
                    unart.Prix_art = dataRow[4].ToString();
                    unart.Interrompu = dataRow[5].ToString();
                    DetailsCde unDetail = new DetailsCde(unart, dataRow[6].ToString(), dataRow[7].ToString());
                    mesDetails.Add(unDetail);
                }
                return mesDetails;
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }
        /// <summary>
        /// Initialiser avec une commande
        /// </summary>
        /// <param name="cmd">Commande initialisée qui sera modifiée</param>
        /// <param name="modifier">true si la fenêtre est une fenêtre de modification</param>
        public FajouteArticle(Article art, bool modifier = false)
        {
            InitializeComponent();
            _art = art;

            // Actions des boutons
            this.AcceptButton = submit_button;
            submit_button.DialogResult = DialogResult.OK;
            btn_cancel.DialogResult = DialogResult.Cancel;

            // copier les données s'il y en a pour les afficher
            tb_noart.Text = _art.No_article;
            tb_libelle.Text = _art.Lib_article;
            tb_quantite.Value = decimal.Parse(_art.Qte_dispo);
            tb_ville.Text = _art.Ville_art;
            tb_prix.Text = _art.Prix_art;
            if (_art.Interrompu == "F")
            {
                rb_f_non.Checked = true;
                rb_f_oui.Checked = false;
            }
            else
            {
                rb_f_oui.Checked = true;
                rb_f_non.Checked = false;
            }

            if (modifier)
            {
                tb_noart.Enabled = false;
                lbl_titre.Text = "Modifier un article";
                this.Text = "Modifier un article";
            }
            testSubmitPossible();
        }
 public DetailsCde(Article a, string qt, String liv)
 {
     art = a;
     this.qte_cdee = qt;
     this.livree = liv;
     total = (Convert.ToInt32(qte_cdee) * Convert.ToDouble(art.Prix_art)).ToString();
 }
        /// <summary>
        /// Initialiser
        /// </summary>
        public FajouteArticle()
        {
            InitializeComponent();
            _art = new Article();

            // Actions des boutons
            this.AcceptButton = submit_button;
            submit_button.DialogResult = DialogResult.OK;
            btn_cancel.DialogResult = DialogResult.Cancel;
        }
        /// <summary>
        /// Chargement de la liste des articles de la base
        /// </summary>
        private void AfficherListe()
        {
            Article unarticle = new Article();
            List<Article> mesArticles;
            ListViewItem lvitem_art;

            lvart.Items.Clear();
            lvart.Columns.Clear();
            lvart.View = View.Details;
            lvart.Columns.Add("0", "Numéro");
            lvart.Columns.Add("1", "Libellé");
            lvart.Columns.Add("2", "Qté");
            lvart.Columns[2].TextAlign = HorizontalAlignment.Right;
            lvart.Columns.Add("3", "Ville");
            lvart.Columns.Add("4", "Prix");
            lvart.Columns[4].TextAlign = HorizontalAlignment.Right;
            lvart.Columns.Add("5", "Int");
            try
            {
                mesArticles = unarticle.getLesArticles(tri,ordre);
                int i = 0;
                foreach (Article a in mesArticles)
                {
                    i++;
                    lvitem_art = new ListViewItem(new string[] { a.No_article, a.Lib_article, a.Qte_dispo, a.Ville_art, a.Prix_art, a.Interrompu }, -1, Color.Black, Color.White, null);
                    // couleur de fond alternée
                    if (i % 2 == 0)
                        lvitem_art.BackColor = Color.FromArgb(20, 240, 240, 255);
                    else
                        lvitem_art.BackColor = Color.FromArgb(20, 230, 230, 250);
                    lvart.Items.Add(lvitem_art);

                }
                lvart.FullRowSelect = true;

                lvart.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            }
            catch (MonException excep)
            {
                MessageBox.Show(excep.MessageSysteme(), "Erreur de listage.");
            }
        }
 /// <summary>
 /// Initialisation
 /// </summary>
 public DetailsCde()
 {
     art = new Article();
     total = qte_cdee = "0";
     livree = "F";
 }
 private void modifierToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lvart.SelectedIndices.Count == 1)
     {
         String no_cmd = lvart.Items[lvart.SelectedIndices[0]].Text;
         Article art = new Article();
         art.RechercheArticle(no_cmd);
         FajouteArticle modif = new FajouteArticle(art, true);
         DialogResult res = modif.ShowDialog();
         if (res == DialogResult.OK)
         {
             try
             {
                 art.modifierArticle();
                 AfficherListe();
             }
             catch (MonException excep)
             {
                 MessageBox.Show(excep.MessageSysteme(), "Erreur de modification");
             }
         }
     }
 }
 /// <summary>
 /// Fonction qui ouvre une fenêtre de saisie et qui récupère les données
 /// pour les insérer dans la base
 /// </summary>
 /// <param name="actualiser">actualiser la liste après l'ajout ?</param>
 private void nouvelleArticle(bool actualiser = false)
 {
     Article art = new Article();
     FajouteArticle artnew = new FajouteArticle(art);
     DialogResult res = artnew.ShowDialog();
     if (res == DialogResult.OK)
     {
         try
         {
             art.ajouterArticle();
             if (actualiser)
                 AfficherListe();
             else
                 MessageBox.Show("Article ajouté avec succès.");
         }
         catch (MonException excep)
         {
             MessageBox.Show(excep.MessageSysteme(), "Erreur d'ajout");
         }
     }
 }
 /// <summary>
 /// vérifier que le numéro de l'article est libre
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void tb_noart_verifier(object sender, EventArgs e)
 {
     Article art = new Article();
     bool test = art.NumeroLibre(tb_noart.Text);
     if (!test)
     {
         if (MessageBox.Show("Un article avec ce numéro existe déjà.", "Erreur", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information) == DialogResult.Cancel)
         {
             tb_noart.Text = "";
             tb_noart_verifier(sender, e);
         }
         else
         {
             tb_noart.Focus();
         }
     }
 }
        /// <summary>
        /// Récupérer la liste des articles
        /// </summary>
        /// <param name="tri">champ de tri</param>
        /// <param name="ordre">sens du tri</param>
        /// <returns>lste d'articles</returns>
        public List<Article> getLesArticles(String tri = "NO_ARTICLE", String ordre = "ASC")
        {
            DataTable dt;
            sErreurs err = new sErreurs("", "");
            //MySqlConnection cnx = Connexion.getInstance().getConnexion();

            String mysql = "SELECT NO_ARTICLE, LIB_ARTICLE, QTE_DISPO, VILLE_ART, PRIX_ART, INTERROMPU ";
            mysql += "FROM ARTICLES ";
            mysql += "ORDER BY " + tri + " " + ordre;
            try
            {
                dt = DbInterface.Lecture(mysql, err);
                List<Article> mesArt = new List<Article>();
                foreach (DataRow dataRow in dt.Rows)
                {
                    Article unart = new Article();
                    unart.no_article = dataRow[0].ToString();
                    unart.lib_article = dataRow[1].ToString();
                    unart.qte_dispo = dataRow[2].ToString();
                    unart.ville_art = dataRow[3].ToString();
                    unart.prix_art = dataRow[4].ToString();
                    unart.interrompu = dataRow[5].ToString();

                    mesArt.Add(unart);
                }
                return mesArt;
            }
            catch (MonException erreur)
            {
                throw erreur;
            }
        }