LevelOS-Core/DAL/DALLChegues.cs

280 lines
9.0 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DALL
{
public class DALLChegues
{
private readonly string connectionString;
public DALLChegues(string connectionString)
{
this.connectionString = connectionString;
}
#region CRUD
public bool Inserir(ModeloChegues modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
INSERT INTO Chegues
(
BANCO,
AGENCIA,
VALOR,
CLIENTE,
FORNECEDOR,
EMITIDO,
COMPENSAR,
OK,
TIPO,
CONTA,
NUMERO,
OBS,
COD_CONTA,
EMITENTE
)
VALUES
(
@BANCO,
@AGENCIA,
@VALOR,
@CLIENTE,
@FORNECEDOR,
@EMITIDO,
@COMPENSAR,
@OK,
@TIPO,
@CONTA,
@NUMERO,
@OBS,
@COD_CONTA,
@EMITENTE
)";
using SqlCommand cmd = new(query, conn);
PreencherParametrosInserir(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Alterar(ModeloChegues modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
UPDATE Chegues
SET
CODIGO = @CODIGO,
BANCO = @BANCO,
AGENCIA = @AGENCIA,
VALOR = @VALOR,
CLIENTE = @CLIENTE,
FORNECEDOR = @FORNECEDOR,
EMITIDO = @EMITIDO,
COMPENSAR = @COMPENSAR,
OK = @OK,
TIPO = @TIPO,
CONTA = @CONTA,
NUMERO = @NUMERO,
OBS = @OBS,
COD_CONTA = @COD_CONTA,
EMITENTE = @EMITENTE
WHERE ID_CHEGUES = @ID_CHEGUES";
using SqlCommand cmd = new(query, conn);
PreencherParametrosAlterar(cmd, modelo);
cmd.Parameters.AddWithValue("@ID_CHEGUES", modelo.ID_CHEGUES);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string query = "DELETE FROM Chegues WHERE ID_CHEGUES = @ID_CHEGUES";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_CHEGUES", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public ModeloChegues? ObterPorId(int id)
{
using SqlConnection conn = new(connectionString);
string query = "SELECT * FROM Chegues WHERE ID_CHEGUES = @ID_CHEGUES";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_CHEGUES", id);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
return PreencherModelo(dr);
}
return null;
}
public List<ModeloChegues> Listar()
{
return ExecutarViewLista("SELECT * FROM VW_Chegues");
}
#endregion
#region VIEWS
public List<ModeloChegues> ListarCompensados()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesCompensados");
}
public List<ModeloChegues> ListarPendentes()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesPendentes");
}
public List<ModeloChegues> ListarClientes()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesClientes");
}
public List<ModeloChegues> ListarFornecedores()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesFornecedores");
}
public List<ModeloChegues> ListarReceber()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesReceber");
}
public List<ModeloChegues> ListarPagar()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesPagar");
}
public List<ModeloChegues> ListarHoje()
{
return ExecutarViewLista("SELECT * FROM VW_CheguesHoje");
}
public DataTable ObterDashboard()
{
return ExecutarViewDataTable("SELECT * FROM VW_CheguesDashboard");
}
#endregion
#region HELPERS
private List<ModeloChegues> ExecutarViewLista(string query)
{
List<ModeloChegues> lista = [];
using SqlConnection conn = new(connectionString);
using SqlCommand cmd = new(query, conn);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
return lista;
}
private DataTable ExecutarViewDataTable(string query)
{
DataTable dt = new();
using SqlConnection conn = new(connectionString);
using SqlDataAdapter da = new(query, conn);
da.Fill(dt);
return dt;
}
private static ModeloChegues PreencherModelo(SqlDataReader dr)
{
return new ModeloChegues
{
ID_CHEGUES = Convert.ToInt32(dr["ID_CHEGUES"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty,
BANCO = Convert.ToString(dr["BANCO"]) ?? string.Empty,
AGENCIA = Convert.ToString(dr["AGENCIA"]) ?? string.Empty,
VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty,
CLIENTE = Convert.ToString(dr["CLIENTE"]) ?? string.Empty,
FORNECEDOR = Convert.ToString(dr["FORNECEDOR"]) ?? string.Empty,
EMITIDO = Convert.ToString(dr["EMITIDO"]) ?? string.Empty,
COMPENSAR = Convert.ToString(dr["COMPENSAR"]) ?? string.Empty,
OK = Convert.ToString(dr["OK"]) ?? string.Empty,
TIPO = Convert.ToString(dr["TIPO"]) ?? string.Empty,
CONTA = Convert.ToString(dr["CONTA"]) ?? string.Empty,
NUMERO = Convert.ToString(dr["NUMERO"]) ?? string.Empty,
OBS = Convert.ToString(dr["OBS"]) ?? string.Empty,
COD_CONTA = Convert.ToString(dr["COD_CONTA"]) ?? string.Empty,
EMITENTE = Convert.ToString(dr["EMITENTE"]) ?? string.Empty
};
}
private static void PreencherParametrosInserir(SqlCommand cmd, ModeloChegues modelo)
{
cmd.Parameters.AddWithValue("@BANCO", string.IsNullOrWhiteSpace(modelo.BANCO) ? DBNull.Value : modelo.BANCO);
cmd.Parameters.AddWithValue("@AGENCIA", string.IsNullOrWhiteSpace(modelo.AGENCIA) ? DBNull.Value : modelo.AGENCIA);
cmd.Parameters.AddWithValue("@VALOR", string.IsNullOrWhiteSpace(modelo.VALOR) ? DBNull.Value : modelo.VALOR);
cmd.Parameters.AddWithValue("@CLIENTE", string.IsNullOrWhiteSpace(modelo.CLIENTE) ? DBNull.Value : modelo.CLIENTE);
cmd.Parameters.AddWithValue("@FORNECEDOR", string.IsNullOrWhiteSpace(modelo.FORNECEDOR) ? DBNull.Value : modelo.FORNECEDOR);
cmd.Parameters.AddWithValue("@EMITIDO", string.IsNullOrWhiteSpace(modelo.EMITIDO) ? DBNull.Value : modelo.EMITIDO);
cmd.Parameters.AddWithValue("@COMPENSAR", string.IsNullOrWhiteSpace(modelo.COMPENSAR) ? DBNull.Value : modelo.COMPENSAR);
cmd.Parameters.AddWithValue("@OK", string.IsNullOrWhiteSpace(modelo.OK) ? DBNull.Value : modelo.OK);
cmd.Parameters.AddWithValue("@TIPO", string.IsNullOrWhiteSpace(modelo.TIPO) ? DBNull.Value : modelo.TIPO);
cmd.Parameters.AddWithValue("@CONTA", string.IsNullOrWhiteSpace(modelo.CONTA) ? DBNull.Value : modelo.CONTA);
cmd.Parameters.AddWithValue("@NUMERO", string.IsNullOrWhiteSpace(modelo.NUMERO) ? DBNull.Value : modelo.NUMERO);
cmd.Parameters.AddWithValue("@OBS", string.IsNullOrWhiteSpace(modelo.OBS) ? DBNull.Value : modelo.OBS);
cmd.Parameters.AddWithValue("@COD_CONTA", string.IsNullOrWhiteSpace(modelo.COD_CONTA) ? DBNull.Value : modelo.COD_CONTA);
cmd.Parameters.AddWithValue("@EMITENTE", string.IsNullOrWhiteSpace(modelo.EMITENTE) ? DBNull.Value : modelo.EMITENTE);
}
private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloChegues modelo)
{
cmd.Parameters.AddWithValue("@CODIGO",
string.IsNullOrWhiteSpace(modelo.CODIGO)
? DBNull.Value
: modelo.CODIGO);
PreencherParametrosInserir(cmd, modelo);
}
#endregion
}
}