LevelOS-Core/DAL/DALFornecerDE.cs

240 lines
5.7 KiB
C#

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<ModeloFornecerDE> Listar(
string? codigo = null,
string? codFornecedor = null,
string? codItem = null)
{
List<ModeloFornecerDE> 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
}
}