LevelOS-Core/DAL/DALIcmsEmp.cs

499 lines
14 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DALL
{
public class DALIcmsEmp
{
private readonly string connectionString;
public DALIcmsEmp(string conexao)
{
connectionString = conexao;
}
#region INSERT
public bool Inserir(ModeloIcmsEmp modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
INSERT INTO ICMS_EMP
(
UF,ICMS,
UF_AC,UF_AL,UF_AM,UF_AP,
UF_BA,UF_CE,UF_DF,UF_ES,
UF_GO,UF_MA,UF_MT,UF_MS,
UF_MG,UF_PA,UF_PB,UF_PR,
UF_PE,UF_PI,UF_RN,UF_RS,
UF_RJ,UF_RO,UF_RR,UF_SC,
UF_SP,UF_SE,UF_TO,FCP
)
VALUES
(
@UF,@ICMS,
@UF_AC,@UF_AL,@UF_AM,@UF_AP,
@UF_BA,@UF_CE,@UF_DF,@UF_ES,
@UF_GO,@UF_MA,@UF_MT,@UF_MS,
@UF_MG,@UF_PA,@UF_PB,@UF_PR,
@UF_PE,@UF_PI,@UF_RN,@UF_RS,
@UF_RJ,@UF_RO,@UF_RR,@UF_SC,
@UF_SP,@UF_SE,@UF_TO,@FCP
)";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
#endregion
#region UPDATE
public bool Alterar(ModeloIcmsEmp modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
UPDATE ICMS_EMP SET
UF=@UF,
ICMS=@ICMS,
UF_AC=@UF_AC,
UF_AL=@UF_AL,
UF_AM=@UF_AM,
UF_AP=@UF_AP,
UF_BA=@UF_BA,
UF_CE=@UF_CE,
UF_DF=@UF_DF,
UF_ES=@UF_ES,
UF_GO=@UF_GO,
UF_MA=@UF_MA,
UF_MT=@UF_MT,
UF_MS=@UF_MS,
UF_MG=@UF_MG,
UF_PA=@UF_PA,
UF_PB=@UF_PB,
UF_PR=@UF_PR,
UF_PE=@UF_PE,
UF_PI=@UF_PI,
UF_RN=@UF_RN,
UF_RS=@UF_RS,
UF_RJ=@UF_RJ,
UF_RO=@UF_RO,
UF_RR=@UF_RR,
UF_SC=@UF_SC,
UF_SP=@UF_SP,
UF_SE=@UF_SE,
UF_TO=@UF_TO,
FCP=@FCP
WHERE ID_ICMS_EMP=@ID_ICMS_EMP";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue(
"@ID_ICMS_EMP",
modelo.ID_ICMS_EMP);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
#endregion
#region DELETE
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string sql =
@"DELETE FROM ICMS_EMP
WHERE ID_ICMS_EMP=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
#endregion
#region CARREGAR
public ModeloIcmsEmp? Carregar(int id)
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM ICMS_EMP
WHERE ID_ICMS_EMP=@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 ModeloIcmsEmp? CarregarPorCodigo(string codigo)
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM ICMS_EMP
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 CARREGAR POR UF
public ModeloIcmsEmp? CarregarPorUF(string uf)
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM ICMS_EMP
WHERE UF=@UF";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@UF", uf);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
return PreencherModelo(dr);
return null;
}
#endregion
#region EXISTE UF
public bool ExisteUF(string uf)
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT COUNT(*)
FROM ICMS_EMP
WHERE UF=@UF";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@UF", uf);
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar()) > 0;
}
#endregion
#region LISTAR
public List<ModeloIcmsEmp> Listar(
string? codigo = null,
string? uf = null)
{
List<ModeloIcmsEmp> lista = [];
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM ICMS_EMP
WHERE 1=1";
using SqlCommand cmd = new();
if (!string.IsNullOrWhiteSpace(codigo))
{
sql += " AND CODIGO LIKE @CODIGO";
cmd.Parameters.AddWithValue(
"@CODIGO",
"%" + codigo + "%");
}
if (!string.IsNullOrWhiteSpace(uf))
{
sql += " AND UF=@UF";
cmd.Parameters.AddWithValue(
"@UF",
uf);
}
sql += " ORDER BY UF";
cmd.Connection = conn;
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
#endregion
#region QUANTIDADE TOTAL
public int QuantidadeTotal()
{
using SqlConnection conn = new(connectionString);
string sql = "SELECT COUNT(*) FROM ICMS_EMP";
using SqlCommand cmd = new(sql, conn);
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}
#endregion
#region PRIMEIRO REGISTRO
public ModeloIcmsEmp? PrimeiroRegistro()
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT TOP 1 *
FROM ICMS_EMP
ORDER BY ID_ICMS_EMP";
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 ModeloIcmsEmp? UltimoRegistro()
{
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT TOP 1 *
FROM ICMS_EMP
ORDER BY ID_ICMS_EMP DESC";
using SqlCommand cmd = new(sql, conn);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
return PreencherModelo(dr);
return null;
}
#endregion
#region OBTER ALIQUOTA DESTINO
public string ObterAliquotaDestino(
string ufOrigem,
string ufDestino)
{
ModeloIcmsEmp? origem =
CarregarPorUF(ufOrigem);
if (origem == null)
return "0";
return ufDestino.ToUpper() switch
{
"AC" => origem.UF_AC,
"AL" => origem.UF_AL,
"AM" => origem.UF_AM,
"AP" => origem.UF_AP,
"BA" => origem.UF_BA,
"CE" => origem.UF_CE,
"DF" => origem.UF_DF,
"ES" => origem.UF_ES,
"GO" => origem.UF_GO,
"MA" => origem.UF_MA,
"MT" => origem.UF_MT,
"MS" => origem.UF_MS,
"MG" => origem.UF_MG,
"PA" => origem.UF_PA,
"PB" => origem.UF_PB,
"PR" => origem.UF_PR,
"PE" => origem.UF_PE,
"PI" => origem.UF_PI,
"RN" => origem.UF_RN,
"RS" => origem.UF_RS,
"RJ" => origem.UF_RJ,
"RO" => origem.UF_RO,
"RR" => origem.UF_RR,
"SC" => origem.UF_SC,
"SP" => origem.UF_SP,
"SE" => origem.UF_SE,
"TO" => origem.UF_TO,
_ => "0"
};
}
#endregion
#region PREENCHER MODELO
private ModeloIcmsEmp PreencherModelo(SqlDataReader dr)
{
return new ModeloIcmsEmp
{
ID_ICMS_EMP = Convert.ToInt32(dr["ID_ICMS_EMP"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? "",
UF = Convert.ToString(dr["UF"]) ?? "",
ICMS = Convert.ToString(dr["ICMS"]) ?? "",
UF_AC = Convert.ToString(dr["UF_AC"]) ?? "",
UF_AL = Convert.ToString(dr["UF_AL"]) ?? "",
UF_AM = Convert.ToString(dr["UF_AM"]) ?? "",
UF_AP = Convert.ToString(dr["UF_AP"]) ?? "",
UF_BA = Convert.ToString(dr["UF_BA"]) ?? "",
UF_CE = Convert.ToString(dr["UF_CE"]) ?? "",
UF_DF = Convert.ToString(dr["UF_DF"]) ?? "",
UF_ES = Convert.ToString(dr["UF_ES"]) ?? "",
UF_GO = Convert.ToString(dr["UF_GO"]) ?? "",
UF_MA = Convert.ToString(dr["UF_MA"]) ?? "",
UF_MT = Convert.ToString(dr["UF_MT"]) ?? "",
UF_MS = Convert.ToString(dr["UF_MS"]) ?? "",
UF_MG = Convert.ToString(dr["UF_MG"]) ?? "",
UF_PA = Convert.ToString(dr["UF_PA"]) ?? "",
UF_PB = Convert.ToString(dr["UF_PB"]) ?? "",
UF_PR = Convert.ToString(dr["UF_PR"]) ?? "",
UF_PE = Convert.ToString(dr["UF_PE"]) ?? "",
UF_PI = Convert.ToString(dr["UF_PI"]) ?? "",
UF_RN = Convert.ToString(dr["UF_RN"]) ?? "",
UF_RS = Convert.ToString(dr["UF_RS"]) ?? "",
UF_RJ = Convert.ToString(dr["UF_RJ"]) ?? "",
UF_RO = Convert.ToString(dr["UF_RO"]) ?? "",
UF_RR = Convert.ToString(dr["UF_RR"]) ?? "",
UF_SC = Convert.ToString(dr["UF_SC"]) ?? "",
UF_SP = Convert.ToString(dr["UF_SP"]) ?? "",
UF_SE = Convert.ToString(dr["UF_SE"]) ?? "",
UF_TO = Convert.ToString(dr["UF_TO"]) ?? "",
FCP = Convert.ToString(dr["FCP"]) ?? ""
};
}
#endregion
#region PREENCHER PARÂMETROS
private void PreencherParametros(
SqlCommand cmd,
ModeloIcmsEmp modelo)
{
cmd.Parameters.AddWithValue("@UF", modelo.UF);
cmd.Parameters.AddWithValue("@ICMS", modelo.ICMS);
cmd.Parameters.AddWithValue("@UF_AC", modelo.UF_AC);
cmd.Parameters.AddWithValue("@UF_AL", modelo.UF_AL);
cmd.Parameters.AddWithValue("@UF_AM", modelo.UF_AM);
cmd.Parameters.AddWithValue("@UF_AP", modelo.UF_AP);
cmd.Parameters.AddWithValue("@UF_BA", modelo.UF_BA);
cmd.Parameters.AddWithValue("@UF_CE", modelo.UF_CE);
cmd.Parameters.AddWithValue("@UF_DF", modelo.UF_DF);
cmd.Parameters.AddWithValue("@UF_ES", modelo.UF_ES);
cmd.Parameters.AddWithValue("@UF_GO", modelo.UF_GO);
cmd.Parameters.AddWithValue("@UF_MA", modelo.UF_MA);
cmd.Parameters.AddWithValue("@UF_MT", modelo.UF_MT);
cmd.Parameters.AddWithValue("@UF_MS", modelo.UF_MS);
cmd.Parameters.AddWithValue("@UF_MG", modelo.UF_MG);
cmd.Parameters.AddWithValue("@UF_PA", modelo.UF_PA);
cmd.Parameters.AddWithValue("@UF_PB", modelo.UF_PB);
cmd.Parameters.AddWithValue("@UF_PR", modelo.UF_PR);
cmd.Parameters.AddWithValue("@UF_PE", modelo.UF_PE);
cmd.Parameters.AddWithValue("@UF_PI", modelo.UF_PI);
cmd.Parameters.AddWithValue("@UF_RN", modelo.UF_RN);
cmd.Parameters.AddWithValue("@UF_RS", modelo.UF_RS);
cmd.Parameters.AddWithValue("@UF_RJ", modelo.UF_RJ);
cmd.Parameters.AddWithValue("@UF_RO", modelo.UF_RO);
cmd.Parameters.AddWithValue("@UF_RR", modelo.UF_RR);
cmd.Parameters.AddWithValue("@UF_SC", modelo.UF_SC);
cmd.Parameters.AddWithValue("@UF_SP", modelo.UF_SP);
cmd.Parameters.AddWithValue("@UF_SE", modelo.UF_SE);
cmd.Parameters.AddWithValue("@UF_TO", modelo.UF_TO);
cmd.Parameters.AddWithValue("@FCP", modelo.FCP);
}
#endregion
}
}