public BindingList<Venda> RecuperarTodos() { using (var conn = CriarConexao()) { conn.Open(); var sql = "SELECT * FROM Venda WHERE Situacao = 1;"; var cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = sql; var leitor = cmd.ExecuteReader(); var colecao = new BindingList<Venda>(); while (leitor.Read()) { var novaVenda = new Venda(); novaVenda.ID = leitor.GetInt32(0); novaVenda.Data = leitor.GetDateTime(1); novaVenda.Valor = leitor.GetSqlMoney(2); novaVenda.Situacao = leitor.GetByte(3); colecao.Add(novaVenda); } return colecao; } }
public void ConfirmarVenda(Venda venda) { using (var conn = CriarConexao()) { conn.Open(); var transacao = conn.BeginTransaction(); var cmd1 = conn.CreateCommand(); cmd1.Transaction = transacao; cmd1.CommandText = @" UPDATE Venda SET Situacao = 2 WHERE ID = @id"; var pVendaID = new SqlParameter("@id", SqlDbType.Int); pVendaID.Value = venda.ID; cmd1.Parameters.Add(pVendaID); cmd1.ExecuteNonQuery(); var cmd2 = conn.CreateCommand(); cmd2.Transaction = transacao; cmd2.CommandText = @" UPDATE Caixa SET Saldo = Saldo + @valor WHERE DataAbertura IS NOT NULL AND DataFechamento IS NULL;"; var pVendaValor = new SqlParameter("@valor", SqlDbType.Money); pVendaValor.Value = venda.Valor; cmd2.Parameters.Add(pVendaValor); var linhasAfetadas = cmd2.ExecuteNonQuery(); if (linhasAfetadas == 1) transacao.Commit(); else transacao.Rollback(); } }