using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DALL { public class DALContasDeposito { private readonly string connectionString; public DALContasDeposito(string conexao) { connectionString = conexao; } #region CRUD public bool Inserir(ModeloContasDeposito modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" INSERT INTO Contas_depositos ( COD_CORRENTE, COD_LANCTO, VALOR, DATA_CADASTRO ) VALUES ( @COD_CORRENTE, @COD_LANCTO, @VALOR, @DATA_CADASTRO )"; using SqlCommand cmd = new(sql, conn); PreencherParametrosInserir( cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Alterar(ModeloContasDeposito modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" UPDATE Contas_depositos SET CODIGO = @CODIGO, COD_CORRENTE = @COD_CORRENTE, COD_LANCTO = @COD_LANCTO, VALOR = @VALOR, DATA_CADASTRO = @DATA_CADASTRO WHERE ID_COD_CONTA_DEPO = @ID_COD_CONTA_DEPO"; using SqlCommand cmd = new(sql, conn); PreencherParametrosAlterar( cmd, modelo); cmd.Parameters.AddWithValue( "@ID_COD_CONTA_DEPO", modelo.ID_COD_CONTA_DEPO); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Excluir(int id) { try { using SqlConnection conn = new(connectionString); string sql = @" DELETE FROM Contas_depositos WHERE ID_COD_CONTA_DEPO = @ID_COD_CONTA_DEPO"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_COD_CONTA_DEPO", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public ModeloContasDeposito? Carregar(int id) { using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Contas_depositos WHERE ID_COD_CONTA_DEPO = @ID_COD_CONTA_DEPO"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_COD_CONTA_DEPO", id); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { return PreencherModelo(dr); } return null; } public List Listar() { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Contas_depositos ORDER BY ID_COD_CONTA_DEPO DESC"; using SqlCommand cmd = new(sql, conn); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add( PreencherModelo(dr)); } return lista; } #endregion #region VIEWS public List ListarPorConta( string codCorrente) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Contas_depositos WHERE COD_CORRENTE = @COD_CORRENTE"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@COD_CORRENTE", codCorrente); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add( PreencherModelo(dr)); } return lista; } public List ListarPorLancamento( string codLancto) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Contas_depositos WHERE COD_LANCTO = @COD_LANCTO"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@COD_LANCTO", codLancto); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add( PreencherModelo(dr)); } return lista; } #endregion #region DASHBOARD public DataTable Dashboard() { using SqlConnection conn = new(connectionString); string sql = @" SELECT COUNT(*) AS TOTAL_DEPOSITOS FROM Contas_depositos"; using SqlCommand cmd = new(sql, conn); using SqlDataAdapter da = new(cmd); DataTable dt = new(); da.Fill(dt); return dt; } #endregion #region HELPERS private static ModeloContasDeposito PreencherModelo( SqlDataReader dr) { return new ModeloContasDeposito { ID_COD_CONTA_DEPO = Convert.ToInt32( dr["ID_COD_CONTA_DEPO"]), CODIGO = Convert.ToString( dr["CODIGO"]) ?? string.Empty, COD_CORRENTE = Convert.ToString( dr["COD_CORRENTE"]) ?? string.Empty, COD_LANCTO = Convert.ToString( dr["COD_LANCTO"]) ?? string.Empty, VALOR = Convert.ToString( dr["VALOR"]) ?? string.Empty, DATA_CADASTRO = Convert.ToString( dr["DATA_CADASTRO"]) ?? string.Empty }; } private static void PreencherParametrosInserir( SqlCommand cmd, ModeloContasDeposito modelo) { cmd.Parameters.AddWithValue( "@COD_CORRENTE", string.IsNullOrWhiteSpace( modelo.COD_CORRENTE) ? DBNull.Value : modelo.COD_CORRENTE); cmd.Parameters.AddWithValue( "@COD_LANCTO", string.IsNullOrWhiteSpace( modelo.COD_LANCTO) ? DBNull.Value : modelo.COD_LANCTO); cmd.Parameters.AddWithValue( "@VALOR", string.IsNullOrWhiteSpace( modelo.VALOR) ? DBNull.Value : modelo.VALOR); cmd.Parameters.AddWithValue( "@DATA_CADASTRO", string.IsNullOrWhiteSpace( modelo.DATA_CADASTRO) ? DBNull.Value : modelo.DATA_CADASTRO); } private static void PreencherParametrosAlterar( SqlCommand cmd, ModeloContasDeposito modelo) { cmd.Parameters.AddWithValue( "@CODIGO", string.IsNullOrWhiteSpace( modelo.CODIGO) ? DBNull.Value : modelo.CODIGO); PreencherParametrosInserir( cmd, modelo); } #endregion } }