520 lines
13 KiB
C#
520 lines
13 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALContasContas
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALContasContas(string conexao)
|
|
{
|
|
connectionString = conexao;
|
|
}
|
|
|
|
#region CRUD
|
|
|
|
public bool Inserir(ModeloContasContas modelo)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
INSERT INTO Contas_contas
|
|
(
|
|
DESCRICAO,
|
|
SALDO_INI
|
|
)
|
|
VALUES
|
|
(
|
|
@DESCRICAO,
|
|
@SALDO_INI
|
|
)";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
PreencherParametrosInserir(
|
|
cmd,
|
|
modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool Alterar(ModeloContasContas modelo)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
UPDATE Contas_contas
|
|
SET
|
|
CODIGO = @CODIGO,
|
|
DESCRICAO = @DESCRICAO,
|
|
SALDO_INI = @SALDO_INI
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
PreencherParametrosAlterar(
|
|
cmd,
|
|
modelo);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
modelo.ID_CONTAS_CONTAS);
|
|
|
|
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_contas
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public ModeloContasContas? Carregar(int id)
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
id);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr =
|
|
cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
{
|
|
return PreencherModelo(dr);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public List<ModeloContasContas> Listar()
|
|
{
|
|
List<ModeloContasContas> lista = [];
|
|
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
ORDER BY ID_CONTAS_CONTAS DESC";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr =
|
|
cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
public List<ModeloContasContas> Listar(string filtro)
|
|
{
|
|
List<ModeloContasContas> lista = [];
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE DESCRICAO LIKE
|
|
@FILTRO
|
|
ORDER BY ID_CONTAS_CONTAS DESC";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@FILTRO",
|
|
$"%{filtro}%");
|
|
conn.Open();
|
|
using SqlDataReader dr =
|
|
cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}
|
|
public List<ModeloContasContas> Listar(int top)
|
|
{
|
|
List<ModeloContasContas> lista = [];
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = $@"
|
|
SELECT TOP {top} *
|
|
FROM Contas_contas
|
|
ORDER BY ID_CONTAS_CONTAS 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<ModeloContasContas> ListarComSaldo()
|
|
{
|
|
return ExecutarLista(@"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE
|
|
SALDO_INI IS NOT NULL
|
|
AND SALDO_INI <> ''
|
|
AND SALDO_INI <> '0'");
|
|
}
|
|
public List<ModeloContasContas> ListarSemSaldo()
|
|
{
|
|
return ExecutarLista(@"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE
|
|
SALDO_INI IS NULL
|
|
OR SALDO_INI = ''
|
|
OR SALDO_INI = '0'");
|
|
}
|
|
public List<ModeloContasContas> ListarComSaldoInicialMaiorQueZero()
|
|
{
|
|
return ExecutarLista(@"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE
|
|
ISNUMERIC(SALDO_INI) = 1
|
|
AND CAST(SALDO_INI AS DECIMAL(18, 2)) > 0");
|
|
}
|
|
public List<ModeloContasContas> ListarComSaldoInicialMenorQueZero()
|
|
{
|
|
return ExecutarLista(@"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE
|
|
ISNUMERIC(SALDO_INI) = 1
|
|
AND CAST(SALDO_INI AS DECIMAL(18, 2)) < 0");
|
|
}
|
|
public List<ModeloContasContas> ListarComSaldoInicialIgualAZero()
|
|
{
|
|
return ExecutarLista(@"
|
|
SELECT *
|
|
FROM Contas_contas
|
|
WHERE
|
|
ISNUMERIC(SALDO_INI) = 1
|
|
AND CAST(SALDO_INI AS DECIMAL(18, 2)) = 0");
|
|
}
|
|
public bool VerificarExistencia(int id)
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
SELECT COUNT(*) > 0
|
|
FROM Contas_contas
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
id);
|
|
conn.Open();
|
|
return (bool)cmd.ExecuteScalar();
|
|
}
|
|
public bool FecharContasContas(int id)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
UPDATE Contas_contas
|
|
SET SALDO_INI = '0'
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public bool ReabrirContasContas(int id)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
UPDATE Contas_contas
|
|
SET SALDO_INI = NULL
|
|
WHERE ID_CONTAS_CONTAS =
|
|
@ID_CONTAS_CONTAS";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@ID_CONTAS_CONTAS",
|
|
id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public bool ExcluirContasContasFechadas()
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
DELETE FROM Contas_contas
|
|
WHERE SALDO_INI = '0'";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public bool ExcluirContasContasReabertas()
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
DELETE FROM Contas_contas
|
|
WHERE SALDO_INI IS NULL";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
public bool VerificarContasComSaldo()
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
string sql = @"
|
|
SELECT COUNT(*) > 0
|
|
FROM Contas_contas
|
|
WHERE
|
|
SALDO_INI IS NOT NULL
|
|
AND SALDO_INI <> ''
|
|
AND SALDO_INI <> '0'";
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
conn.Open();
|
|
return (bool)cmd.ExecuteScalar();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DASHBOARD
|
|
|
|
public DataTable Dashboard()
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT
|
|
COUNT(*) AS TOTAL_CONTAS
|
|
FROM Contas_contas";
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
using SqlDataAdapter da =
|
|
new(cmd);
|
|
|
|
DataTable dt = new();
|
|
|
|
da.Fill(dt);
|
|
|
|
return dt;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region HELPERS
|
|
|
|
private List<ModeloContasContas> ExecutarLista(
|
|
string sql)
|
|
{
|
|
List<ModeloContasContas> lista = [];
|
|
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
using SqlCommand cmd =
|
|
new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr =
|
|
cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
|
|
private static ModeloContasContas PreencherModelo(
|
|
SqlDataReader dr)
|
|
{
|
|
return new ModeloContasContas
|
|
{
|
|
ID_CONTAS_CONTAS =
|
|
Convert.ToInt32(
|
|
dr["ID_CONTAS_CONTAS"]),
|
|
|
|
CODIGO =
|
|
Convert.ToString(
|
|
dr["CODIGO"])
|
|
?? string.Empty,
|
|
|
|
DESCRICAO =
|
|
Convert.ToString(
|
|
dr["DESCRICAO"])
|
|
?? string.Empty,
|
|
|
|
SALDO_INI =
|
|
Convert.ToString(
|
|
dr["SALDO_INI"])
|
|
?? string.Empty
|
|
};
|
|
}
|
|
|
|
private static void PreencherParametrosInserir(
|
|
SqlCommand cmd,
|
|
ModeloContasContas modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue(
|
|
"@DESCRICAO",
|
|
string.IsNullOrWhiteSpace(
|
|
modelo.DESCRICAO)
|
|
? DBNull.Value
|
|
: modelo.DESCRICAO);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@SALDO_INI",
|
|
string.IsNullOrWhiteSpace(
|
|
modelo.SALDO_INI)
|
|
? DBNull.Value
|
|
: modelo.SALDO_INI);
|
|
}
|
|
|
|
private static void PreencherParametrosAlterar(
|
|
SqlCommand cmd,
|
|
ModeloContasContas modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue(
|
|
"@CODIGO",
|
|
string.IsNullOrWhiteSpace(
|
|
modelo.CODIGO)
|
|
? DBNull.Value
|
|
: modelo.CODIGO);
|
|
|
|
PreencherParametrosInserir(
|
|
cmd,
|
|
modelo);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |