using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; namespace DALL { public class DALFornecerDE { private readonly string connectionString; public DALFornecerDE(string conexao) { connectionString = conexao; } #region INSERT public bool Inserir(ModeloFornecerDE modelo) { using SqlConnection conn = new(connectionString); string sql = @" INSERT INTO Fornecer_DE ( COD_FOR, COD_ITEM, ULTIMA ) VALUES ( @COD_FOR, @COD_ITEM, @ULTIMA )"; using SqlCommand cmd = new(sql, conn); PreencherParametros(cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } #endregion #region UPDATE public bool Alterar(ModeloFornecerDE modelo) { using SqlConnection conn = new(connectionString); string sql = @" UPDATE Fornecer_DE SET COD_FOR=@COD_FOR, COD_ITEM=@COD_ITEM, ULTIMA=@ULTIMA WHERE ID_FORNECER_DE=@ID_FORNECER_DE"; using SqlCommand cmd = new(sql, conn); PreencherParametros(cmd, modelo); cmd.Parameters.AddWithValue("@ID_FORNECER_DE", modelo.ID_FORNECER_DE); conn.Open(); return cmd.ExecuteNonQuery() > 0; } #endregion #region DELETE public bool Excluir(int id) { using SqlConnection conn = new(connectionString); string sql = @"DELETE FROM Fornecer_DE WHERE ID_FORNECER_DE=@ID"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue("@ID", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } #endregion #region CARREGAR public ModeloFornecerDE? Carregar(int id) { using SqlConnection conn = new(connectionString); string sql = @"SELECT * FROM Fornecer_DE WHERE ID_FORNECER_DE=@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; } #endregion #region CARREGAR POR CÓDIGO public ModeloFornecerDE? CarregarPorCodigo(string codigo) { using SqlConnection conn = new(connectionString); string sql = @"SELECT * FROM Fornecer_DE WHERE CODIGO=@CODIGO"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue("@CODIGO", codigo); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) return PreencherModelo(dr); return null; } #endregion #region LISTAR public List Listar( string? codigo = null, string? codFornecedor = null, string? codItem = null) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @"SELECT * FROM Fornecer_DE WHERE 1=1"; using SqlCommand cmd = new(); if (!string.IsNullOrWhiteSpace(codigo)) { sql += " AND CODIGO LIKE @CODIGO"; cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); } if (!string.IsNullOrWhiteSpace(codFornecedor)) { sql += " AND COD_FOR LIKE @COD_FOR"; cmd.Parameters.AddWithValue("@COD_FOR", "%" + codFornecedor + "%"); } if (!string.IsNullOrWhiteSpace(codItem)) { sql += " AND COD_ITEM LIKE @COD_ITEM"; cmd.Parameters.AddWithValue("@COD_ITEM", "%" + codItem + "%"); } sql += " ORDER BY ID_FORNECER_DE DESC"; cmd.Connection = conn; cmd.CommandText = sql; conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add( PreencherModelo(dr)); } return lista; } #endregion #region PREENCHER MODELO private ModeloFornecerDE PreencherModelo(SqlDataReader dr) { return new ModeloFornecerDE { ID_FORNECER_DE = Convert.ToInt32(dr["ID_FORNECER_DE"]), CODIGO = Convert.ToString(dr["CODIGO"]) ?? "", COD_FOR = Convert.ToString(dr["COD_FOR"]) ?? "", COD_ITEM = Convert.ToString(dr["COD_ITEM"]) ?? "", ULTIMA = Convert.ToString(dr["ULTIMA"]) ?? "" }; } #endregion #region PREENCHER PARÂMETROS private void PreencherParametros( SqlCommand cmd, ModeloFornecerDE modelo) { cmd.Parameters.AddWithValue("@COD_FOR", modelo.COD_FOR); cmd.Parameters.AddWithValue("@COD_ITEM", modelo.COD_ITEM); cmd.Parameters.AddWithValue("@ULTIMA", modelo.ULTIMA); } #endregion } }