using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DALL { public class DALLConvenioCartoes { private readonly string connectionString; public DALLConvenioCartoes(string conexao) { connectionString = conexao; } #region CRUD public bool Inserir(ModeloConvenioCartoes modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" INSERT INTO Convenio_cartoes ( NOME, COMIS_CRED, COMIS_DEBT, OP_CRED, OP_DEBT, LANCA_30, CNPJ_OPERADORA, tBand ) VALUES ( @NOME, @COMIS_CRED, @COMIS_DEBT, @OP_CRED, @OP_DEBT, @LANCA_30, @CNPJ_OPERADORA, @tBand )"; using SqlCommand cmd = new(sql, conn); PreencherParametros( cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Alterar(ModeloConvenioCartoes modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" UPDATE Convenio_cartoes SET CODIGO = @CODIGO, NOME = @NOME, COMIS_CRED = @COMIS_CRED, COMIS_DEBT = @COMIS_DEBT, OP_CRED = @OP_CRED, OP_DEBT = @OP_DEBT, LANCA_30 = @LANCA_30, CNPJ_OPERADORA = @CNPJ_OPERADORA, tBand = @tBand WHERE ID_CONV_CARTOES = @ID_CONV_CARTOES"; using SqlCommand cmd = new(sql, conn); PreencherParametros( cmd, modelo); cmd.Parameters.AddWithValue( "@CODIGO", modelo.CODIGO); cmd.Parameters.AddWithValue( "@ID_CONV_CARTOES", modelo.ID_CONV_CARTOES); 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_cartoes WHERE ID_CONV_CARTOES = @ID_CONV_CARTOES"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_CONV_CARTOES", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public ModeloConvenioCartoes? Carregar(int id) { using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Convenio_cartoes WHERE ID_CONV_CARTOES = @ID_CONV_CARTOES"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue( "@ID_CONV_CARTOES", id); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { return PreencherModelo(dr); } return null; } public List ListarOtimizado( string? nome = null, string? bandeira = null, string? operadoraCredito = null, string? operadoraDebito = null, string? cnpj = null) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM Convenio_cartoes WHERE 1 = 1"; using SqlCommand cmd = new(); cmd.Connection = conn; if (!string.IsNullOrWhiteSpace( nome)) { sql += @" AND NOME LIKE @NOME"; cmd.Parameters.AddWithValue( "@NOME", "%" + nome + "%"); } if (!string.IsNullOrWhiteSpace( bandeira)) { sql += @" AND tBand LIKE @tBand"; cmd.Parameters.AddWithValue( "@tBand", "%" + bandeira + "%"); } if (!string.IsNullOrWhiteSpace( operadoraCredito)) { sql += @" AND OP_CRED LIKE @OP_CRED"; cmd.Parameters.AddWithValue( "@OP_CRED", "%" + operadoraCredito + "%"); } if (!string.IsNullOrWhiteSpace( operadoraDebito)) { sql += @" AND OP_DEBT LIKE @OP_DEBT"; cmd.Parameters.AddWithValue( "@OP_DEBT", "%" + operadoraDebito + "%"); } if (!string.IsNullOrWhiteSpace( cnpj)) { sql += @" AND CNPJ_OPERADORA LIKE @CNPJ_OPERADORA"; cmd.Parameters.AddWithValue( "@CNPJ_OPERADORA", "%" + cnpj + "%"); } sql += @" ORDER BY ID_CONV_CARTOES 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_cartoes"; using SqlCommand cmd = new(sql, conn); using SqlDataAdapter da = new(cmd); DataTable dt = new(); da.Fill(dt); return dt; } #endregion #region HELPERS private static ModeloConvenioCartoes PreencherModelo( SqlDataReader dr) { return new ModeloConvenioCartoes { ID_CONV_CARTOES = Convert.ToInt32( dr["ID_CONV_CARTOES"]), CODIGO = Convert.ToString( dr["CODIGO"]) ?? string.Empty, NOME = Convert.ToString( dr["NOME"]) ?? string.Empty, COMIS_CRED = Convert.ToString( dr["COMIS_CRED"]) ?? string.Empty, COMIS_DEBT = Convert.ToString( dr["COMIS_DEBT"]) ?? string.Empty, OP_CRED = Convert.ToString( dr["OP_CRED"]) ?? string.Empty, OP_DEBT = Convert.ToString( dr["OP_DEBT"]) ?? string.Empty, LANCA_30 = Convert.ToString( dr["LANCA_30"]) ?? string.Empty, CNPJ_OPERADORA = Convert.ToString( dr["CNPJ_OPERADORA"]) ?? string.Empty, TBAND = Convert.ToString( dr["tBand"]) ?? string.Empty }; } private static void PreencherParametros( SqlCommand cmd, ModeloConvenioCartoes modelo) { cmd.Parameters.AddWithValue( "@NOME", string.IsNullOrWhiteSpace( modelo.NOME) ? DBNull.Value : modelo.NOME); cmd.Parameters.AddWithValue( "@COMIS_CRED", string.IsNullOrWhiteSpace( modelo.COMIS_CRED) ? DBNull.Value : modelo.COMIS_CRED); cmd.Parameters.AddWithValue( "@COMIS_DEBT", string.IsNullOrWhiteSpace( modelo.COMIS_DEBT) ? DBNull.Value : modelo.COMIS_DEBT); cmd.Parameters.AddWithValue( "@OP_CRED", string.IsNullOrWhiteSpace( modelo.OP_CRED) ? DBNull.Value : modelo.OP_CRED); cmd.Parameters.AddWithValue( "@OP_DEBT", string.IsNullOrWhiteSpace( modelo.OP_DEBT) ? DBNull.Value : modelo.OP_DEBT); cmd.Parameters.AddWithValue( "@LANCA_30", string.IsNullOrWhiteSpace( modelo.LANCA_30) ? DBNull.Value : modelo.LANCA_30); cmd.Parameters.AddWithValue( "@CNPJ_OPERADORA", string.IsNullOrWhiteSpace( modelo.CNPJ_OPERADORA) ? DBNull.Value : modelo.CNPJ_OPERADORA); cmd.Parameters.AddWithValue( "@tBand", string.IsNullOrWhiteSpace( modelo.TBAND) ? DBNull.Value : modelo.TBAND); } #endregion } }