LevelOS-Core/DAL/DALDespFixa.cs

332 lines
9.1 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DALL
{
public class DALDespFixa
{
private readonly string connectionString;
public DALDespFixa(string conexao)
{
connectionString = conexao;
}
#region CRUD
public bool Inserir(ModeloDespFixa modelo)
{
try
{
using SqlConnection conn = new(connectionString);
string sql = @"
INSERT INTO Desp_fixa
(
TIPO,
COD_CLIENTE,
VENCIMENTO,
PLANO_CONTAS,
OBSERVACAO,
VALOR
)
VALUES
(
@TIPO,
@COD_CLIENTE,
@VENCIMENTO,
@PLANO_CONTAS,
@OBSERVACAO,
@VALOR
)";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Alterar(ModeloDespFixa modelo)
{
try
{
using SqlConnection conn = new(connectionString);
string sql = @"
UPDATE Desp_fixa
SET
CODIGO=@CODIGO,
TIPO=@TIPO,
COD_CLIENTE=@COD_CLIENTE,
VENCIMENTO=@VENCIMENTO,
PLANO_CONTAS=@PLANO_CONTAS,
OBSERVACAO=@OBSERVACAO,
VALOR=@VALOR
WHERE ID_DESP_FIXA=@ID_DESP_FIXA";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO);
cmd.Parameters.AddWithValue("@ID_DESP_FIXA", modelo.ID_DESP_FIXA);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Excluir(int id)
{
try
{
using SqlConnection conn = new(connectionString);
string sql = @"
DELETE FROM Desp_fixa
WHERE ID_DESP_FIXA=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public ModeloDespFixa? Carregar(int id)
{
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Desp_fixa
WHERE ID_DESP_FIXA=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
return PreencherModelo(dr);
return null;
}
public List<ModeloDespFixa> Listar(
string? tipo = null,
string? codCliente = null,
string? vencimento = null,
string? planoContas = null)
{
List<ModeloDespFixa> lista = [];
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Desp_fixa
WHERE 1=1";
using SqlCommand cmd = new();
cmd.Connection = conn;
if (!string.IsNullOrWhiteSpace(tipo))
{
sql += " AND TIPO LIKE @TIPO";
cmd.Parameters.AddWithValue(
"@TIPO",
"%" + tipo + "%");
}
if (!string.IsNullOrWhiteSpace(codCliente))
{
sql += " AND COD_CLIENTE LIKE @COD_CLIENTE";
cmd.Parameters.AddWithValue(
"@COD_CLIENTE",
"%" + codCliente + "%");
}
if (!string.IsNullOrWhiteSpace(vencimento))
{
sql += " AND VENCIMENTO LIKE @VENCIMENTO";
cmd.Parameters.AddWithValue(
"@VENCIMENTO",
"%" + vencimento + "%");
}
if (!string.IsNullOrWhiteSpace(planoContas))
{
sql += " AND PLANO_CONTAS LIKE @PLANO_CONTAS";
cmd.Parameters.AddWithValue(
"@PLANO_CONTAS",
"%" + planoContas + "%");
}
sql += " ORDER BY ID_DESP_FIXA DESC";
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloDespFixa> ListarPorCliente(string codCliente)
{
List<ModeloDespFixa> lista = [];
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Desp_fixa
WHERE COD_CLIENTE=@COD_CLIENTE
ORDER BY ID_DESP_FIXA DESC";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@COD_CLIENTE", codCliente);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloDespFixa> ListarPorVencimento(string vencimento)
{
List<ModeloDespFixa> lista = [];
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Desp_fixa
WHERE VENCIMENTO=@VENCIMENTO
ORDER BY ID_DESP_FIXA DESC";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@VENCIMENTO", vencimento);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloDespFixa> ListarPorPlanoContas(string planoContas)
{
List<ModeloDespFixa> lista = [];
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Desp_fixa
WHERE PLANO_CONTAS=@PLANO_CONTAS
ORDER BY ID_DESP_FIXA DESC";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@PLANO_CONTAS", planoContas);
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(*) TOTAL_DESPESAS_FIXAS
FROM Desp_fixa";
using SqlDataAdapter da =
new(sql, conn);
DataTable dt = new();
da.Fill(dt);
return dt;
}
#endregion
#region Helpers
private static ModeloDespFixa PreencherModelo(SqlDataReader dr)
{
return new ModeloDespFixa
{
ID_DESP_FIXA = Convert.ToInt32(dr["ID_DESP_FIXA"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty,
TIPO = Convert.ToString(dr["TIPO"]) ?? string.Empty,
COD_CLIENTE = Convert.ToString(dr["COD_CLIENTE"]) ?? string.Empty,
VENCIMENTO = Convert.ToString(dr["VENCIMENTO"]) ?? string.Empty,
PLANO_CONTAS = Convert.ToString(dr["PLANO_CONTAS"]) ?? string.Empty,
OBSERVACAO = Convert.ToString(dr["OBSERVACAO"]) ?? string.Empty,
VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty
};
}
private static void PreencherParametros(
SqlCommand cmd,
ModeloDespFixa modelo)
{
cmd.Parameters.AddWithValue("@TIPO", modelo.TIPO);
cmd.Parameters.AddWithValue("@COD_CLIENTE", modelo.COD_CLIENTE);
cmd.Parameters.AddWithValue("@VENCIMENTO", modelo.VENCIMENTO);
cmd.Parameters.AddWithValue("@PLANO_CONTAS", modelo.PLANO_CONTAS);
cmd.Parameters.AddWithValue("@OBSERVACAO", modelo.OBSERVACAO);
cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR);
}
#endregion
}
}