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