363 lines
9.7 KiB
C#
363 lines
9.7 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALDespesas
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALDespesas(string conexao)
|
|
{
|
|
connectionString = conexao;
|
|
}
|
|
|
|
#region CRUD
|
|
|
|
public bool Inserir(ModeloDespesas modelo)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
INSERT INTO Despesas
|
|
(
|
|
PROCESSO,
|
|
DESCRICAO,
|
|
VALOR,
|
|
PAGO,
|
|
DIA
|
|
)
|
|
VALUES
|
|
(
|
|
@PROCESSO,
|
|
@DESCRICAO,
|
|
@VALOR,
|
|
@PAGO,
|
|
@DIA
|
|
)";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool Alterar(ModeloDespesas modelo)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
UPDATE Despesas
|
|
SET
|
|
CODIGO=@CODIGO,
|
|
PROCESSO=@PROCESSO,
|
|
DESCRICAO=@DESCRICAO,
|
|
VALOR=@VALOR,
|
|
PAGO=@PAGO,
|
|
DIA=@DIA
|
|
WHERE ID_DESPESAS=@ID_DESPESAS";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO);
|
|
cmd.Parameters.AddWithValue("@ID_DESPESAS", modelo.ID_DESPESAS);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool Excluir(int id)
|
|
{
|
|
try
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"DELETE FROM Despesas
|
|
WHERE ID_DESPESAS=@ID";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@ID", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public ModeloDespesas? Carregar(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT *
|
|
FROM Despesas
|
|
WHERE ID_DESPESAS=@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<ModeloDespesas> Listar(
|
|
string? processo = null,
|
|
string? descricao = null,
|
|
string? pago = null,
|
|
string? dia = null)
|
|
{
|
|
List<ModeloDespesas> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Despesas
|
|
WHERE 1 = 1";
|
|
|
|
using SqlCommand cmd = new();
|
|
|
|
cmd.Connection = conn;
|
|
|
|
if (!string.IsNullOrWhiteSpace(processo))
|
|
{
|
|
sql += " AND PROCESSO LIKE @PROCESSO";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@PROCESSO",
|
|
"%" + processo + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(descricao))
|
|
{
|
|
sql += " AND DESCRICAO LIKE @DESCRICAO";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@DESCRICAO",
|
|
"%" + descricao + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(pago))
|
|
{
|
|
sql += " AND PAGO=@PAGO";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@PAGO",
|
|
pago);
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(dia))
|
|
{
|
|
sql += " AND DIA=@DIA";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@DIA",
|
|
dia);
|
|
}
|
|
|
|
sql += " ORDER BY ID_DESPESAS DESC";
|
|
|
|
cmd.CommandText = sql;
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
public List<ModeloDespesas> ListarAbertas()
|
|
{
|
|
List<ModeloDespesas> lista = [];
|
|
using SqlConnection conn = new(connectionString);
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Despesas
|
|
WHERE PAGO<>'SIM'
|
|
ORDER BY ID_DESPESAS DESC";
|
|
using SqlCommand cmd = new(sql, conn);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}//ListarAbertas
|
|
public List<ModeloDespesas> ListarPagas()
|
|
{
|
|
List<ModeloDespesas> lista = [];
|
|
using SqlConnection conn = new(connectionString);
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Despesas
|
|
WHERE PAGO='SIM'
|
|
ORDER BY ID_DESPESAS DESC";
|
|
using SqlCommand cmd = new(sql, conn);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}//ListarPagas
|
|
public List<ModeloDespesas> ListarPorProcesso(string processo)
|
|
{
|
|
List<ModeloDespesas> lista = [];
|
|
using SqlConnection conn = new(connectionString);
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Despesas
|
|
WHERE PROCESSO LIKE @PROCESSO
|
|
ORDER BY ID_DESPESAS DESC";
|
|
using SqlCommand cmd = new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@PROCESSO",
|
|
"%" + processo + "%");
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}//ListarPorProcesso
|
|
public List<ModeloDespesas> ListarPorDescricao(string descricao)
|
|
{
|
|
List<ModeloDespesas> lista = [];
|
|
using SqlConnection conn = new(connectionString);
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Despesas
|
|
WHERE DESCRICAO LIKE @DESCRICAO
|
|
ORDER BY ID_DESPESAS DESC";
|
|
using SqlCommand cmd = new(sql, conn);
|
|
cmd.Parameters.AddWithValue(
|
|
"@DESCRICAO",
|
|
"%" + descricao + "%");
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}//ListarPorDescricao
|
|
|
|
|
|
#endregion
|
|
|
|
#region Dashboard
|
|
|
|
public DataTable Dashboard()
|
|
{
|
|
using SqlConnection conn =
|
|
new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT
|
|
COUNT(*) TOTAL_DESPESAS,
|
|
SUM(
|
|
CASE
|
|
WHEN PAGO='SIM'
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) DESPESAS_PAGAS,
|
|
SUM(
|
|
CASE
|
|
WHEN PAGO<>'SIM'
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) DESPESAS_ABERTAS
|
|
FROM Despesas";
|
|
|
|
using SqlDataAdapter da =
|
|
new(sql, conn);
|
|
|
|
DataTable dt = new();
|
|
|
|
da.Fill(dt);
|
|
|
|
return dt;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Helpers
|
|
|
|
private static ModeloDespesas PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloDespesas
|
|
{
|
|
ID_DESPESAS = Convert.ToInt32(dr["ID_DESPESAS"]),
|
|
CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty,
|
|
PROCESSO = Convert.ToString(dr["PROCESSO"]) ?? string.Empty,
|
|
DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? string.Empty,
|
|
VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty,
|
|
PAGO = Convert.ToString(dr["PAGO"]) ?? string.Empty,
|
|
DIA = Convert.ToString(dr["DIA"]) ?? string.Empty
|
|
};
|
|
}
|
|
|
|
private static void PreencherParametros(
|
|
SqlCommand cmd,
|
|
ModeloDespesas modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue("@PROCESSO", modelo.PROCESSO);
|
|
cmd.Parameters.AddWithValue("@DESCRICAO", modelo.DESCRICAO);
|
|
cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR);
|
|
cmd.Parameters.AddWithValue("@PAGO", modelo.PAGO);
|
|
cmd.Parameters.AddWithValue("@DIA", modelo.DIA);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |