Atualizar o estoque em um datatable após venda
28/11/2008
0
Pessoal possui uma rotina de venda usando c# e dataset tipado.
No datagridview lanço os itens da venda , onde busco pelo código do produto a descrição e o valor. Ao digitar a quantidade do produto ou modificar o valor, o campo subtotal também é modificado. Em seguida salvo a venda e o itens da venda. Ou seja a minha venda é um mestre detalhe. Até aí tudo bem, agora preciso atualizar o estoque de outro datatable. Como faço isso. Verifiquem o código de minha aplicação abaixo:
A parte de cima tudo bem, para baixar o estoque estou utilizando o método abaixo, mas não está dando certo, alguem tem alguma sugestão?
No datagridview lanço os itens da venda , onde busco pelo código do produto a descrição e o valor. Ao digitar a quantidade do produto ou modificar o valor, o campo subtotal também é modificado. Em seguida salvo a venda e o itens da venda. Ou seja a minha venda é um mestre detalhe. Até aí tudo bem, agora preciso atualizar o estoque de outro datatable. Como faço isso. Verifiquem o código de minha aplicação abaixo:
namespace VendaVideoAula { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void vendaBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.vendaBindingSource.EndEdit(); this.vendaTableAdapter.Update(this.vendaVideoDataSet.Venda); this.itensVendaTableAdapter.Update(this.vendaVideoDataSet.ItensVenda); } private void Form1_Load(object sender, EventArgs e) { this.itensVendaTableAdapter.Fill(this.vendaVideoDataSet.ItensVenda); this.produtoTableAdapter.Fill(this.vendaVideoDataSet.Produto); this.clienteTableAdapter.Fill(this.vendaVideoDataSet.Cliente); this.vendaTableAdapter.Fill(this.vendaVideoDataSet.Venda); } private void itensVendaDataGridView_CellValidated(object sender, DataGridViewCellEventArgs e) { string preco; double subtotal; if ((itensVendaDataGridView.CurrentCell.ColumnIndex == 1)) { itensVendaDataGridView.CurrentRow.Cells[2].Value = "0"; itensVendaDataGridView.CurrentRow.Cells[3].Value = "1"; this.produto1TableAdapter.Fill(this.vendaVideoDataSet.Produto1, Convert.ToInt32(itensVendaDataGridView.CurrentRow.Cells[1].Value)); foreach (DataRow dr in vendaVideoDataSet.Tables[4].Rows) { preco = dr[1].ToString(); itensVendaDataGridView.CurrentRow.Cells[2].Value = preco; } } if ((itensVendaDataGridView.CurrentCell.ColumnIndex == 2) || (itensVendaDataGridView.CurrentCell.ColumnIndex == 3)) { double n1 = Convert.ToDouble(itensVendaDataGridView.CurrentRow.Cells[2].Value); double n2 = Convert.ToDouble(itensVendaDataGridView.CurrentRow.Cells[3].Value); subtotal = n1 * n2; itensVendaDataGridView.CurrentRow.Cells[4].Value = subtotal; double total; total = 0; foreach (DataGridViewRow data in itensVendaDataGridView.Rows) { total = total + Convert.ToDouble(data.Cells[4].Value); } totalTextBox.Text = total.ToString(); } }
A parte de cima tudo bem, para baixar o estoque estou utilizando o método abaixo, mas não está dando certo, alguem tem alguma sugestão?
private void button1_Click(object sender, EventArgs e) //atualizar estoque { foreach (DataGridViewRow data in itensVendaDataGridView.Rows) { this.produto1TableAdapter.Fill(this.vendaVideoDataSet.Produto1, Convert.ToInt32(itensVendaDataGridView.CurrentRow.Cells[1].Value)); DataRow drCurrent = vendaVideoDataSet.Tables["produto1"].Rows[0]; drCurrent.BeginEdit(); drCurrent["Qtde"] = "130"; drCurrent.EndEdit(); this.produto1TableAdapter.Update(this.vendaVideoDataSet.Produto1); this.vendaVideoDataSet.Produto1.Clear(); } this.produto1TableAdapter.Update(this.vendaVideoDataSet.Produto1); }
Frostlost
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)