//cancelar venda public Boolean CancelarVenda(int codigo) { Boolean retorno = true; //atualizar a tabela de venda SqlCommand cmd = new SqlCommand(); cmd.Connection = conexao.ObjetoConexao; conexao.Conectar(); conexao.IniciarTransacao(); try { cmd.Transaction = conexao.ObejtoTransacao; cmd.CommandText = "update venda set ven_status = 'cancelada' where ven_cod = @codigo;"; cmd.Parameters.AddWithValue("@codigo", codigo); cmd.ExecuteNonQuery(); //susbtituir para metodo DAOItensVenda //incrementar o estoque com os itens da venda cancelada. //localizar os itens da venda DataTable tabela = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("Select itv_cod,pro_cod,itv_qtde" + " from itensvenda where ven_cod = " + codigo.ToString(), conexao.StringConexao); da.Fill(tabela); //alterar a quantidade do estoque ModeloProduto produto; // DAOConexao cxp = new DAOConexao(DAOBanco.StringDeConexao); //DAOProduto daoProduto1 = new DAOProduto(cxp); DAOProduto daoProduto = new DAOProduto(conexao); for (int i = 0; i < tabela.Rows.Count; i++) { produto = daoProduto.CarregaModeloProduto(Convert.ToInt32(tabela.Rows[i]["pro_cod"]), true); //utiliza o CarregaModeloProduto por transação produto.ProQtde = produto.ProQtde + Convert.ToDouble(tabela.Rows[i]["itv_qtde"]); daoProduto.Alterar(produto, true); //utiliza o Alterar por transação } conexao.TerminarTransacao(); conexao.Desconectar(); } catch { conexao.CancelarTransacao(); conexao.Desconectar(); retorno = false; } return(retorno); }