LevelOS-Core/DAL/DALFcaixa.cs

220 lines
6.0 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAL
{
public class DALFcaixa
{
private readonly string connectionString;
public DALFcaixa(string conexao)
{
connectionString = conexao;
}
public bool Inserir(ModeloFcaixa modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
INSERT INTO Fcaixa
(
DIA,
RECEITA,
DESPESA,
OBS,
PLANO_CONTAS,
COD_CONTA,
FORMA
)
VALUES
(
@DIA,
@RECEITA,
@DESPESA,
@OBS,
@PLANO_CONTAS,
@COD_CONTA,
@FORMA
)";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Alterar(ModeloFcaixa modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
UPDATE Fcaixa
SET
DIA=@DIA,
RECEITA=@RECEITA,
DESPESA=@DESPESA,
OBS=@OBS,
PLANO_CONTAS=@PLANO_CONTAS,
COD_CONTA=@COD_CONTA,
FORMA=@FORMA
WHERE
ID_FCAIXA=@ID_FCAIXA";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue(
"@ID_FCAIXA",
modelo.ID_FCAIXA);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string sql =
@"DELETE FROM Fcaixa
WHERE ID_FCAIXA=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public ModeloFcaixa? Carregar(int id)
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM Fcaixa
WHERE ID_FCAIXA=@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<ModeloFcaixa> Listar(string? codigo = null,string? dia = null,string? receita = null,string? despesa = null,string? planoContas = null, string? codConta = null,string? forma = null)
{
List<ModeloFcaixa> lista = [];
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM Fcaixa
WHERE 1=1";
using SqlCommand cmd = new();
if (!string.IsNullOrWhiteSpace(codigo))
{
sql += " AND CODIGO LIKE @CODIGO";
cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%");
}
if (!string.IsNullOrWhiteSpace(dia))
{
sql += " AND DIA LIKE @DIA";
cmd.Parameters.AddWithValue("@DIA", "%" + dia + "%");
}
if (!string.IsNullOrWhiteSpace(receita))
{
sql += " AND RECEITA LIKE @RECEITA";
cmd.Parameters.AddWithValue("@RECEITA", "%" + receita + "%");
}
if (!string.IsNullOrWhiteSpace(despesa))
{
sql += " AND DESPESA LIKE @DESPESA";
cmd.Parameters.AddWithValue("@DESPESA", "%" + despesa + "%");
}
if (!string.IsNullOrWhiteSpace(planoContas))
{
sql += " AND PLANO_CONTAS LIKE @PLANO_CONTAS";
cmd.Parameters.AddWithValue("@PLANO_CONTAS", "%" + planoContas + "%");
}
if (!string.IsNullOrWhiteSpace(codConta))
{
sql += " AND COD_CONTA LIKE @COD_CONTA";
cmd.Parameters.AddWithValue("@COD_CONTA", "%" + codConta + "%");
}
if (!string.IsNullOrWhiteSpace(forma))
{
sql += " AND FORMA LIKE @FORMA";
cmd.Parameters.AddWithValue("@FORMA", "%" + forma + "%");
}
sql += " ORDER BY ID_FCAIXA DESC";
cmd.Connection = conn;
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
private ModeloFcaixa PreencherModelo(SqlDataReader dr)
{
return new ModeloFcaixa
{
ID_FCAIXA = Convert.ToInt32(dr["ID_FCAIXA"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? "",
DIA = Convert.ToString(dr["DIA"]) ?? "",
RECEITA = Convert.ToString(dr["RECEITA"]) ?? "",
DESPESA = Convert.ToString(dr["DESPESA"]) ?? "",
OBS = Convert.ToString(dr["OBS"]) ?? "",
PLANO_CONTAS = Convert.ToString(dr["PLANO_CONTAS"]) ?? "",
COD_CONTA = Convert.ToString(dr["COD_CONTA"]) ?? "",
FORMA = Convert.ToString(dr["FORMA"]) ?? ""
};
}
private void PreencherParametros(SqlCommand cmd,ModeloFcaixa modelo)
{
cmd.Parameters.AddWithValue("@DIA", modelo.DIA);
cmd.Parameters.AddWithValue("@RECEITA", modelo.RECEITA);
cmd.Parameters.AddWithValue("@DESPESA", modelo.DESPESA);
cmd.Parameters.AddWithValue("@OBS", modelo.OBS);
cmd.Parameters.AddWithValue("@PLANO_CONTAS", modelo.PLANO_CONTAS);
cmd.Parameters.AddWithValue("@COD_CONTA", modelo.COD_CONTA);
cmd.Parameters.AddWithValue("@FORMA", modelo.FORMA);
}
}
}