コード例 #1
0
        public void DeleteTransaction(Produit produit)
        {
            List<Produit> produits = _produitData.ListToUpdateAfterDelete(produit.Code);

            BaseData.BeginTransaction();
            try
            {
                var isDeleted = _produitData.DeleteTransaction(produit);
                if (isDeleted)
                {
                    foreach (var p in produits)
                    {
                        if (p.Code-- < 0)
                            p.Code = 0;
                        isDeleted = _produitData.UpdateCodeTransaction(p);
                        if (!isDeleted)
                            throw new Exception("Impossible de mettre à jour le code");
                    }
                }
                else
                {
                    throw new Exception("Le produit n'a pas pu etre supprimer");
                }

                BaseData.Commit();
            }
            catch (Exception)
            {
                BaseData.RollBack();
                throw;
            }
        }
コード例 #2
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
 public Produit Get(int id)
 {
     var sb = new StringBuilder();
     sb.Append("SELECT p.Code, p.Libelle, f.Id famId, f.Libelle famLibelle");
     sb.Append("FROM produit p , famille f  WHERE p.familleId = f.id  AND p.Id = @id");
     Produit produit = null;
     using (var helper = new SqliteHelper(sb.ToString()))
     {
         helper.AddInParameter("id", DbType.Int32, id);
         using (var reader = helper.ExecuteQuery())
         {
             if (reader.Read())
             {
                 produit =
                     new Produit
                     {
                         Id = reader.GetIntFromReader("Id"),
                         Code = reader.GetIntFromReader("Code"),
                         Libelle = reader.GetStringFromReader("Libelle"),
                         Famille = new Famille
                         {
                             Id = reader.GetIntFromReader("famId"),
                             Libelle = reader.GetStringFromReader("famLibelle")
                         }
                     };
             }
         }
     }
     return produit;
 }
コード例 #3
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
        public Produit Create(Produit produit)
        {
            using (var helper = new SqliteHelper("INSERT INTO produit (Code, Libelle, familleId) VALUES(@code, @libelle, @familleId); Select last_insert_rowid(); "))
            {
                helper.AddInParameter("code", DbType.Int32, produit.Code);
                helper.AddInParameter("libelle", DbType.String, produit.Libelle);
                helper.AddInParameter("familleId", DbType.Int32, produit.Famille.Id);

                produit.Id = helper.ExecuteCreateQuery();
            }

            return produit;
        }
コード例 #4
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
        public bool DeleteTransaction(Produit produit)
        {
            bool isDeleted;

            using (Helper)
            {
                Helper.PrepareCommand("DELETE FROM produit WHERE Id = @Id");
                Helper.AddInParameter("Id", DbType.Int32, produit.Id);

                isDeleted = Helper.ExecuteNonQuery();
            }

            return isDeleted;
        }
コード例 #5
0
        private void SaveOrUpdate()
        {
            //test libelle

            if (string.IsNullOrEmpty(txtLibelle.Text.Trim()))
            {
                MessageBox.Show(@"Vous devez entrer un libelle", @"Gestion des produits", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return;
            }

            try
            {
                if (_produit == null)
                {
                    _produit = _produitService.Create(new Produit
                     {
                         Code = Convert.ToInt32(lblCode.Text),
                         Libelle = txtLibelle.Text,
                         Famille = _famille
                     });
                    txtLibelle.Text = string.Empty;
                    btnAnnuler.Visible = false;
                    grbListeDesProduits.Visible = false;
                    LoadAll();
                    grbListeDesProduits.Visible = true;
                    _produit = null;
                    _modeAffichage = forms.ModeAffichage.Insert;
                    ModeAffichage();

                }
                else //update
                {
                    if (_produit.Libelle.ToUpper().CompareTo(txtLibelle.Text.ToUpper()) == 0 &&
                        _produit.Famille.Libelle.CompareTo(cmbFamille.Text) == 0)
                    {
                        MessageBox.Show(@"Vous devez faire au moins un changement", @"Gestion des produits", MessageBoxButtons.OK,
                                 MessageBoxIcon.Information);
                        return;
                    }

                    _produit.Code = Convert.ToInt32(lblCode.Text);
                    _produit.Libelle = txtLibelle.Text;
                    _produit.Famille = cmbFamille.SelectedItem as Famille;
                    _produitService.Update(_produit);
                    txtLibelle.Text = string.Empty;
                    btnAnnuler.Visible = false;
                    LoadAll();
                }

            }
            catch (Exception exception)
            {
                GestionException.TraiterException(exception, @"Une erreur s'est produite lors de la sauvegarde des données", "Gestion des produits");
            }
        }
コード例 #6
0
 private void Modify()
 {
     try
     {
         //_isAjoutMode = true;
         _modeAffichage = forms.ModeAffichage.Update;
         _produit = dgvProduits.SelectedRows[0].DataBoundItem as Produit;
         ModeAffichage();
     }
     catch (Exception exception)
     {
         GestionException.TraiterException(exception, "Gestion des produits");
     }
 }
コード例 #7
0
        private void ModeAffichage()
        {
            try
            {
                if (_modeAffichage == forms.ModeAffichage.Browse)
                {
                    lstfamille.Enabled = true;
                    grbListeDesProduits.Top = 0;
                    grbListeDesProduits.Height = 467;
                    grbListeDesProduits.Visible = true;

                    btnAnnuler.Visible = false;
                    btnSave.Visible = false;
                    btnAdd.Visible = true;
                    btnDelete.Visible = dgvProduits.SelectedRows.Count > 0;
                    btnModifier.Visible = dgvProduits.SelectedRows.Count > 0;
                    txtLibelle.Enabled = false;
                    if (dgvProduits.SelectedRows.Count > 0)
                        _produit = dgvProduits.SelectedRows[0].DataBoundItem as Produit;
                    _famille = lstfamille.SelectedItem as Famille;
                    dgvProduits.Focus();
                }
                else if (_modeAffichage == forms.ModeAffichage.Insert)
                {
                    grbAddProduct.Text = @"Ajouter un produit";
                    grbAddProduct.Visible = true;
                    grbListeDesProduits.Visible = true;

                    btnModifier.Visible = false;
                    txtLibelle.Enabled = true;
                    if (dgvProduits.Rows.Count > 0)
                    {
                        grbListeDesProduits.Top = 144;
                        grbListeDesProduits.Height = 323;

                        btnAnnuler.Visible = true;
                        lstfamille.Enabled = false;
                    }
                    else
                    {
                        grbListeDesProduits.Visible = false;
                        btnAnnuler.Visible = false;
                        lstfamille.Enabled = true;
                    }

                    btnSave.Visible = true;
                    btnAdd.Visible = false;
                    btnDelete.Visible = false;

                    lblCode.Text = _produitService.GetNextCodeValue(_famille).ToString();
                    lblFamille.Text = _famille.Libelle;
                    lblFamille.Visible = true;
                    cmbFamille.Visible = false;

                    txtLibelle.Focus();
                }
                else //update
                {
                    grbAddProduct.Text = @"Modifier le produit";
                    grbListeDesProduits.Visible = true;
                    grbListeDesProduits.Top = 144;
                    grbListeDesProduits.Height = 323;

                    txtLibelle.Enabled = true;
                    btnModifier.Visible = false;
                    lstfamille.Enabled = false;
                    btnAnnuler.Visible = dgvProduits.Rows.Count > 0;
                    btnSave.Visible = true;
                    btnAdd.Visible = false;
                    btnDelete.Visible = false;

                    lblCode.Text = _produit.Code.ToString();
                    lblFamille.Visible = false;
                    cmbFamille.Visible = true;
                    cmbFamille.DataSource = _familleService.ListAll();
                    cmbFamille.SelectedIndex = lstfamille.SelectedIndex;
                    txtLibelle.Text = _produit.Libelle;
                    txtLibelle.Focus();
                }
            }
            catch (Exception exception)
            {
                GestionException.TraiterException(exception, "Gestion des produits");
            }
        }
コード例 #8
0
        private void lstfamille_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (lstfamille.SelectedValue != null)
                {
                    _famille = lstfamille.SelectedItem as Famille;

                    //chargement des produits
                    dgvProduits.DataSource = _produitService.GetByFamille(lstfamille.SelectedItem as Famille);

                    if (dgvProduits.RowCount == 0) // pas de donnée
                    {
                        _produit = null;
                        _modeAffichage = forms.ModeAffichage.Insert;
                        ModeAffichage();
                    }
                    else // on charge les produit et on met le premier dans la liste
                    {
                        dgvProduits.Rows[0].Selected = true;
                    }
                }
            }
            catch (Exception exception)
            {
                GestionException.TraiterException(exception, "Gestion des produits");
            }
        }
コード例 #9
0
 private void dgvProduits_SelectionChanged(object sender, EventArgs e)
 {
     try
     {
         if (dgvProduits.Rows.Count > 0)
         {
             if (dgvProduits.SelectedRows.Count > 0)
             {
                 _produit = dgvProduits.SelectedRows[0].DataBoundItem as Produit;
                 if (_isAjoutMode)
                     _modeAffichage = forms.ModeAffichage.Insert;
                 else
                     _modeAffichage = forms.ModeAffichage.Browse;
                 ModeAffichage();
             }
             else
             {
                 _produit = null;
                 _modeAffichage = forms.ModeAffichage.Insert;
                 ModeAffichage();
             }
         }
     }
     catch (Exception exception)
     {
         GestionException.TraiterException(exception, "Gestion des produits");
     }
 }
コード例 #10
0
 private void Add()
 {
     _isAjoutMode = true;
     _produit = null;
     _modeAffichage = forms.ModeAffichage.Insert;
     ModeAffichage();
 }
コード例 #11
0
 public bool Update(Produit produit)
 {
     return _produitData.Update(produit);
 }
コード例 #12
0
 public bool IsCanDelete(Produit produit)
 {
     return _produitData.IsCanDelete(produit);
 }
コード例 #13
0
 public Produit Create(Produit produit)
 {
     return _produitData.Create(produit);
 }
コード例 #14
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
        public bool UpdateCodeTransaction(Produit produit)
        {
            bool isUpdated;

            using (Helper)
            {
                Helper.PrepareCommand("Update produit set code = @code WHERE Id = @Id");

                Helper.AddInParameter("code", DbType.Int32, produit.Code);
                Helper.AddInParameter("Id", DbType.Int32, produit.Id);

                isUpdated = Helper.ExecuteNonQuery();
            }

            return isUpdated;
        }
コード例 #15
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
        public bool Update(Produit produit)
        {
            bool isUpdated;

            using (var helper = new SqliteHelper("UPDATE produit set Libelle = @Libelle, familleId = @familleId, Code = @Code  WHERE Id = @Id"))
            {
                helper.AddInParameter("Libelle", DbType.String, produit.Libelle);
                helper.AddInParameter("Code", DbType.Int32, produit.Code);
                helper.AddInParameter("familleId", DbType.Int32, produit.Famille.Id);
                helper.AddInParameter("Id", DbType.Int32, produit.Id);

                isUpdated = helper.ExecuteNonQuery();
            }

            return isUpdated;
        }
コード例 #16
0
ファイル: ProduitData.cs プロジェクト: ayassinov/GsCommande
 public bool IsCanDelete(Produit produit)
 {
     var isCanDelete = true;
     using (var helper = new SqliteHelper("SELECT ProduitId FROM LigneCommande Where ProduitId = @Id"))
     {
         helper.AddInParameter("Id", DbType.Int32, produit.Id);
         using (var reader = helper.ExecuteQuery())
         {
             if (reader.Read())
                 isCanDelete = false;
         }
     }
     return isCanDelete;
 }