LevelOS-Core/DAL/DALLConvenioCartoes.cs

424 lines
11 KiB
C#

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<ModeloConvenioCartoes> ListarOtimizado(
string? nome = null,
string? bandeira = null,
string? operadoraCredito = null,
string? operadoraDebito = null,
string? cnpj = null)
{
List<ModeloConvenioCartoes> 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
}
}