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 Listar() { return ExecutarViewLista("SELECT * FROM VW_Chegues"); } #endregion #region VIEWS public List ListarCompensados() { return ExecutarViewLista("SELECT * FROM VW_CheguesCompensados"); } public List ListarPendentes() { return ExecutarViewLista("SELECT * FROM VW_CheguesPendentes"); } public List ListarClientes() { return ExecutarViewLista("SELECT * FROM VW_CheguesClientes"); } public List ListarFornecedores() { return ExecutarViewLista("SELECT * FROM VW_CheguesFornecedores"); } public List ListarReceber() { return ExecutarViewLista("SELECT * FROM VW_CheguesReceber"); } public List ListarPagar() { return ExecutarViewLista("SELECT * FROM VW_CheguesPagar"); } public List ListarHoje() { return ExecutarViewLista("SELECT * FROM VW_CheguesHoje"); } public DataTable ObterDashboard() { return ExecutarViewDataTable("SELECT * FROM VW_CheguesDashboard"); } #endregion #region HELPERS private List ExecutarViewLista(string query) { List 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 } }