480 lines
11 KiB
C#
480 lines
11 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALIBPT
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALIBPT(string conexao)
|
|
{
|
|
connectionString = conexao;
|
|
}
|
|
|
|
#region INSERT
|
|
public bool Inserir(ModeloIBPT modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
INSERT INTO IBPT
|
|
(
|
|
NCM,
|
|
NacionalFederal,
|
|
ImportadosFederal,
|
|
Estadual,
|
|
Municipal,
|
|
Tipo
|
|
)
|
|
VALUES
|
|
(
|
|
@NCM,
|
|
@NacionalFederal,
|
|
@ImportadosFederal,
|
|
@Estadual,
|
|
@Municipal,
|
|
@Tipo
|
|
)";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
#endregion
|
|
#region UPDATE
|
|
|
|
public bool Alterar(ModeloIBPT modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
UPDATE IBPT SET
|
|
|
|
NCM=@NCM,
|
|
NacionalFederal=@NacionalFederal,
|
|
ImportadosFederal=@ImportadosFederal,
|
|
Estadual=@Estadual,
|
|
Municipal=@Municipal,
|
|
Tipo=@Tipo
|
|
|
|
WHERE ID_IBPT=@ID_IBPT";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
cmd.Parameters.AddWithValue("@ID_IBPT", modelo.ID_IBPT);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
|
|
#endregion
|
|
#region DELETE
|
|
|
|
public bool Excluir(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"DELETE FROM IBPT
|
|
WHERE ID_IBPT=@ID";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@ID", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
|
|
#endregion
|
|
#region CARREGAR
|
|
|
|
public ModeloIBPT? Carregar(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT *
|
|
FROM IBPT
|
|
WHERE ID_IBPT=@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 NCM
|
|
|
|
public ModeloIBPT? CarregarPorNCM(string ncm)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT *
|
|
FROM IBPT
|
|
WHERE NCM=@NCM";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@NCM", ncm);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
return PreencherModelo(dr);
|
|
|
|
return null;
|
|
}
|
|
|
|
#endregion
|
|
#region LISTAR
|
|
|
|
public List<ModeloIBPT> Listar(
|
|
string? codigo = null,
|
|
string? ncm = null,
|
|
string? tipo = null)
|
|
{
|
|
List<ModeloIBPT> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT *
|
|
FROM IBPT
|
|
WHERE 1=1";
|
|
|
|
using SqlCommand cmd = new();
|
|
|
|
if (!string.IsNullOrWhiteSpace(codigo))
|
|
{
|
|
sql += " AND CODIGO LIKE @CODIGO";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@CODIGO",
|
|
"%" + codigo + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(ncm))
|
|
{
|
|
sql += " AND NCM LIKE @NCM";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@NCM",
|
|
"%" + ncm + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(tipo))
|
|
{
|
|
sql += " AND Tipo=@Tipo";
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@Tipo",
|
|
tipo);
|
|
}
|
|
|
|
sql += " ORDER BY NCM";
|
|
|
|
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 ModeloIBPT PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloIBPT
|
|
{
|
|
ID_IBPT = Convert.ToInt32(dr["ID_IBPT"]),
|
|
CODIGO = Convert.ToString(dr["CODIGO"]) ?? "",
|
|
NCM = Convert.ToString(dr["NCM"]) ?? "",
|
|
NacionalFederal = Convert.ToString(dr["NacionalFederal"]) ?? "",
|
|
ImportadosFederal = Convert.ToString(dr["ImportadosFederal"]) ?? "",
|
|
Estadual = Convert.ToString(dr["Estadual"]) ?? "",
|
|
Municipal = Convert.ToString(dr["Municipal"]) ?? "",
|
|
Tipo = Convert.ToString(dr["Tipo"]) ?? ""
|
|
};
|
|
}
|
|
|
|
#endregion
|
|
#region PREENCHER PARÂMETROS
|
|
|
|
private void PreencherParametros(
|
|
SqlCommand cmd,
|
|
ModeloIBPT modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue(
|
|
"@NCM",
|
|
modelo.NCM);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@NacionalFederal",
|
|
modelo.NacionalFederal);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@ImportadosFederal",
|
|
modelo.ImportadosFederal);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@Estadual",
|
|
modelo.Estadual);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@Municipal",
|
|
modelo.Municipal);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@Tipo",
|
|
modelo.Tipo);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EXISTE NCM
|
|
|
|
public bool ExisteNCM(string ncm)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT COUNT(*)
|
|
FROM IBPT
|
|
WHERE NCM=@NCM";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@NCM", ncm);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(cmd.ExecuteScalar()) > 0;
|
|
}
|
|
|
|
#endregion
|
|
#region LISTAR POR TIPO
|
|
|
|
public List<ModeloIBPT> ListarPorTipo(string tipo)
|
|
{
|
|
return Listar(tipo: tipo);
|
|
}
|
|
|
|
#endregion
|
|
#region PRODUTOS
|
|
|
|
public List<ModeloIBPT> ListarProdutos()
|
|
{
|
|
return Listar(tipo: "P");
|
|
}
|
|
|
|
#endregion
|
|
#region SERVIÇOS
|
|
|
|
public List<ModeloIBPT> ListarServicos()
|
|
{
|
|
return Listar(tipo: "S");
|
|
}
|
|
|
|
#endregion
|
|
#region TOTAL REGISTROS
|
|
|
|
public int QuantidadeTotal()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = "SELECT COUNT(*) FROM IBPT";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(cmd.ExecuteScalar());
|
|
}
|
|
|
|
#endregion
|
|
#region PRIMEIRO REGISTRO
|
|
|
|
public ModeloIBPT? PrimeiroRegistro()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT TOP 1 *
|
|
FROM IBPT
|
|
ORDER BY ID_IBPT";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
return PreencherModelo(dr);
|
|
|
|
return null;
|
|
}
|
|
|
|
#endregion
|
|
#region ÚLTIMO REGISTRO
|
|
|
|
public ModeloIBPT? UltimoRegistro()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT TOP 1 *
|
|
FROM IBPT
|
|
ORDER BY ID_IBPT DESC";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
return PreencherModelo(dr);
|
|
|
|
return null;
|
|
}
|
|
|
|
#endregion
|
|
#region DASHBOARD
|
|
|
|
public DataTable Dashboard()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT
|
|
|
|
COUNT(*) TOTAL_REGISTROS,
|
|
|
|
SUM(
|
|
CASE
|
|
WHEN Tipo='P'
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) PRODUTOS,
|
|
|
|
SUM(
|
|
CASE
|
|
WHEN Tipo='S'
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) SERVICOS
|
|
|
|
FROM IBPT";
|
|
|
|
DataTable dt = new();
|
|
|
|
using SqlDataAdapter da = new(sql, conn);
|
|
|
|
da.Fill(dt);
|
|
|
|
return dt;
|
|
}
|
|
|
|
#endregion
|
|
#region BUSCAR NCM
|
|
|
|
public List<ModeloIBPT> ListarNCMFaixa(string inicioNcm)
|
|
{
|
|
List<ModeloIBPT> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM IBPT
|
|
WHERE NCM LIKE @NCM
|
|
ORDER BY NCM";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue(
|
|
"@NCM",
|
|
inicioNcm + "%");
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
PreencherModelo(dr));
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
|
|
#endregion
|
|
#region CARREGAR POR CÓDIGO
|
|
|
|
public ModeloIBPT? CarregarPorCodigo(string codigo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM IBPT
|
|
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
|
|
|
|
|
|
}
|
|
} |