LevelOS-Core/DAL/DALContasDeposito.cs

380 lines
9.0 KiB
C#

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<ModeloContasDeposito> Listar()
{
List<ModeloContasDeposito> 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<ModeloContasDeposito> ListarPorConta(
string codCorrente)
{
List<ModeloContasDeposito> 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<ModeloContasDeposito> ListarPorLancamento(
string codLancto)
{
List<ModeloContasDeposito> 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
}
}