using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DALL { public class DALLConvenioBoletos { private readonly string connectionString; public DALLConvenioBoletos(string conexao) { connectionString = conexao; } #region CRUD public bool Inserir(ModeloConvenioBoletos modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" INSERT INTO Convenio_boletos ( BANCO, CARTEIRA, CONVENIO, AGENCIA, CONTA, NOME_CEDENTE, LOCAL_PGTO, INSTRU_01, INSTRU_02, INSTRU_03, INSTRU_04, INSTRU_05, INSTRU_06, INSTRU_07, INSTRU_08, INSTRU_09, INSTRU_10, DIAS_PROTESTO, TIPO_DOC_COB, TIPO_ESP_DOC ) VALUES ( @BANCO, @CARTEIRA, @CONVENIO, @AGENCIA, @CONTA, @NOME_CEDENTE, @LOCAL_PGTO, @INSTRU_01, @INSTRU_02, @INSTRU_03, @INSTRU_04, @INSTRU_05, @INSTRU_06, @INSTRU_07, @INSTRU_08, @INSTRU_09, @INSTRU_10, @DIAS_PROTESTO, @TIPO_DOC_COB, @TIPO_ESP_DOC )"; using SqlCommand cmd = new(sql, conn); PreencherParametros( cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Alterar(ModeloConvenioBoletos modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" UPDATE Convenio_boletos SET CODIGO = @CODIGO, BANCO = @BANCO, CARTEIRA = @CARTEIRA, CONVENIO = @CONVENIO, AGENCIA = @AGENCIA, CONTA = @CONTA, NOME_CEDENTE = @NOME_CEDENTE, LOCAL_PGTO = @LOCAL_PGTO, INSTRU_01 = @INSTRU_01, INSTRU_02 = @INSTRU_02, INSTRU_03 = @INSTRU_03, INSTRU_04 = @INSTRU_04, INSTRU_05 = @INSTRU_05, INSTRU_06 = @INSTRU_06, INSTRU_07 = @INSTRU_07, INSTRU_08 = @INSTRU_08, INSTRU_09 = @INSTRU_09, INSTRU_10 = @INSTRU_10, DIAS_PROTESTO = @DIAS_PROTESTO, TIPO_DOC_COB = @TIPO_DOC_COB, TIPO_ESP_DOC = @TIPO_ESP_DOC WHERE ID_CONVENIO_BOLETOS = @ID_CONVENIO_BOLETOS"; using SqlCommand cmd = new(sql, conn); PreencherParametros( cmd, modelo); cmd.Parameters.AddWithValue( "@CODIGO", modelo.CODIGO); cmd.Parameters.AddWithValue( "@ID_CONVENIO_BOLETOS", modelo.ID_CONVENIO_BOLETOS); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Excluir(int id) { try { using SqlConnection conn = new(connectionString); string sql = @" DELETE FROM Convenio_boletos WHERE ID_CONVENIO_BOLETOS = @ID_CONVENIO_BOLETOS"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_CONVENIO_BOLETOS", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public ModeloConvenioBoletos? Carregar( int id) { using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Convenio_boletos WHERE ID_CONVENIO_BOLETOS = @ID_CONVENIO_BOLETOS"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_CONVENIO_BOLETOS", id); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { return PreencherModelo(dr); } return null; } public List ListarOtimizado( string? banco = null, string? carteira = null, string? convenio = null, string? agencia = null, string? conta = null, string? nomeCedente = null, string? tipoDoc = null) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Convenio_boletos WHERE 1 = 1"; using SqlCommand cmd = new(); cmd.Connection = conn; if (!string.IsNullOrWhiteSpace( banco)) { sql += @" AND BANCO LIKE @BANCO"; cmd.Parameters.AddWithValue( "@BANCO", "%" + banco + "%"); } if (!string.IsNullOrWhiteSpace( carteira)) { sql += @" AND CARTEIRA LIKE @CARTEIRA"; cmd.Parameters.AddWithValue( "@CARTEIRA", "%" + carteira + "%"); } if (!string.IsNullOrWhiteSpace( convenio)) { sql += @" AND CONVENIO LIKE @CONVENIO"; cmd.Parameters.AddWithValue( "@CONVENIO", "%" + convenio + "%"); } if (!string.IsNullOrWhiteSpace( agencia)) { sql += @" AND AGENCIA LIKE @AGENCIA"; cmd.Parameters.AddWithValue( "@AGENCIA", "%" + agencia + "%"); } if (!string.IsNullOrWhiteSpace( conta)) { sql += @" AND CONTA LIKE @CONTA"; cmd.Parameters.AddWithValue( "@CONTA", "%" + conta + "%"); } if (!string.IsNullOrWhiteSpace( nomeCedente)) { sql += @" AND NOME_CEDENTE LIKE @NOME_CEDENTE"; cmd.Parameters.AddWithValue( "@NOME_CEDENTE", "%" + nomeCedente + "%"); } if (!string.IsNullOrWhiteSpace( tipoDoc)) { sql += @" AND TIPO_DOC_COB LIKE @TIPO_DOC_COB"; cmd.Parameters.AddWithValue( "@TIPO_DOC_COB", "%" + tipoDoc + "%"); } sql += @" ORDER BY ID_CONVENIO_BOLETOS DESC"; cmd.CommandText = sql; 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_CONVENIOS FROM Convenio_boletos"; using SqlCommand cmd = new(sql, conn); using SqlDataAdapter da = new(cmd); DataTable dt = new(); da.Fill(dt); return dt; } #endregion #region HELPERS private static ModeloConvenioBoletos PreencherModelo( SqlDataReader dr) { return new ModeloConvenioBoletos { ID_CONVENIO_BOLETOS = Convert.ToInt32( dr["ID_CONVENIO_BOLETOS"]), CODIGO = Convert.ToString( dr["CODIGO"]) ?? string.Empty, BANCO = Convert.ToString( dr["BANCO"]) ?? string.Empty, CARTEIRA = Convert.ToString( dr["CARTEIRA"]) ?? string.Empty, CONVENIO = Convert.ToString( dr["CONVENIO"]) ?? string.Empty, AGENCIA = Convert.ToString( dr["AGENCIA"]) ?? string.Empty, CONTA = Convert.ToString( dr["CONTA"]) ?? string.Empty, NOME_CEDENTE = Convert.ToString( dr["NOME_CEDENTE"]) ?? string.Empty, LOCAL_PGTO = Convert.ToString( dr["LOCAL_PGTO"]) ?? string.Empty, INSTRU_01 = Convert.ToString( dr["INSTRU_01"]) ?? string.Empty, INSTRU_02 = Convert.ToString( dr["INSTRU_02"]) ?? string.Empty, INSTRU_03 = Convert.ToString( dr["INSTRU_03"]) ?? string.Empty, INSTRU_04 = Convert.ToString( dr["INSTRU_04"]) ?? string.Empty, INSTRU_05 = Convert.ToString( dr["INSTRU_05"]) ?? string.Empty, INSTRU_06 = Convert.ToString( dr["INSTRU_06"]) ?? string.Empty, INSTRU_07 = Convert.ToString( dr["INSTRU_07"]) ?? string.Empty, INSTRU_08 = Convert.ToString( dr["INSTRU_08"]) ?? string.Empty, INSTRU_09 = Convert.ToString( dr["INSTRU_09"]) ?? string.Empty, INSTRU_10 = Convert.ToString( dr["INSTRU_10"]) ?? string.Empty, DIAS_PROTESTO = Convert.ToString( dr["DIAS_PROTESTO"]) ?? string.Empty, TIPO_DOC_COB = Convert.ToString( dr["TIPO_DOC_COB"]) ?? string.Empty, TIPO_ESP_DOC = Convert.ToString( dr["TIPO_ESP_DOC"]) ?? string.Empty }; } private static void PreencherParametros( SqlCommand cmd, ModeloConvenioBoletos modelo) { cmd.Parameters.AddWithValue( "@BANCO", string.IsNullOrWhiteSpace( modelo.BANCO) ? DBNull.Value : modelo.BANCO); cmd.Parameters.AddWithValue( "@CARTEIRA", string.IsNullOrWhiteSpace( modelo.CARTEIRA) ? DBNull.Value : modelo.CARTEIRA); cmd.Parameters.AddWithValue( "@CONVENIO", string.IsNullOrWhiteSpace( modelo.CONVENIO) ? DBNull.Value : modelo.CONVENIO); cmd.Parameters.AddWithValue( "@AGENCIA", string.IsNullOrWhiteSpace( modelo.AGENCIA) ? DBNull.Value : modelo.AGENCIA); cmd.Parameters.AddWithValue( "@CONTA", string.IsNullOrWhiteSpace( modelo.CONTA) ? DBNull.Value : modelo.CONTA); cmd.Parameters.AddWithValue( "@NOME_CEDENTE", string.IsNullOrWhiteSpace( modelo.NOME_CEDENTE) ? DBNull.Value : modelo.NOME_CEDENTE); cmd.Parameters.AddWithValue( "@LOCAL_PGTO", string.IsNullOrWhiteSpace( modelo.LOCAL_PGTO) ? DBNull.Value : modelo.LOCAL_PGTO); cmd.Parameters.AddWithValue( "@INSTRU_01", string.IsNullOrWhiteSpace( modelo.INSTRU_01) ? DBNull.Value : modelo.INSTRU_01); cmd.Parameters.AddWithValue( "@INSTRU_02", string.IsNullOrWhiteSpace( modelo.INSTRU_02) ? DBNull.Value : modelo.INSTRU_02); cmd.Parameters.AddWithValue( "@INSTRU_03", string.IsNullOrWhiteSpace( modelo.INSTRU_03) ? DBNull.Value : modelo.INSTRU_03); cmd.Parameters.AddWithValue( "@INSTRU_04", string.IsNullOrWhiteSpace( modelo.INSTRU_04) ? DBNull.Value : modelo.INSTRU_04); cmd.Parameters.AddWithValue( "@INSTRU_05", string.IsNullOrWhiteSpace( modelo.INSTRU_05) ? DBNull.Value : modelo.INSTRU_05); cmd.Parameters.AddWithValue( "@INSTRU_06", string.IsNullOrWhiteSpace( modelo.INSTRU_06) ? DBNull.Value : modelo.INSTRU_06); cmd.Parameters.AddWithValue( "@INSTRU_07", string.IsNullOrWhiteSpace( modelo.INSTRU_07) ? DBNull.Value : modelo.INSTRU_07); cmd.Parameters.AddWithValue( "@INSTRU_08", string.IsNullOrWhiteSpace( modelo.INSTRU_08) ? DBNull.Value : modelo.INSTRU_08); cmd.Parameters.AddWithValue( "@INSTRU_09", string.IsNullOrWhiteSpace( modelo.INSTRU_09) ? DBNull.Value : modelo.INSTRU_09); cmd.Parameters.AddWithValue( "@INSTRU_10", string.IsNullOrWhiteSpace( modelo.INSTRU_10) ? DBNull.Value : modelo.INSTRU_10); cmd.Parameters.AddWithValue( "@DIAS_PROTESTO", string.IsNullOrWhiteSpace( modelo.DIAS_PROTESTO) ? DBNull.Value : modelo.DIAS_PROTESTO); cmd.Parameters.AddWithValue( "@TIPO_DOC_COB", string.IsNullOrWhiteSpace( modelo.TIPO_DOC_COB) ? DBNull.Value : modelo.TIPO_DOC_COB); cmd.Parameters.AddWithValue( "@TIPO_ESP_DOC", string.IsNullOrWhiteSpace( modelo.TIPO_ESP_DOC) ? DBNull.Value : modelo.TIPO_ESP_DOC); } #endregion } }