From 484fe00bfad0ba53d75f0fcd425ee8d16c3f264b Mon Sep 17 00:00:00 2001 From: Nicolas Felipe Date: Mon, 20 Jul 2026 20:57:07 -0300 Subject: [PATCH] 20/07/2026 - DAL (DALItensNota) Parte 4/10 concluida. --- DAL/DALItensNota.cs | 1164 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1164 insertions(+) create mode 100644 DAL/DALItensNota.cs diff --git a/DAL/DALItensNota.cs b/DAL/DALItensNota.cs new file mode 100644 index 0000000..2c8286f --- /dev/null +++ b/DAL/DALItensNota.cs @@ -0,0 +1,1164 @@ +/* +-------------------------------------------------- + Classe: DALItensNota + Tabela: Itens_nota + Modelo: ModeloItensNota + + Responsável por: + - CRUD dos itens da NF-e + - Controle tributário + - Totais da nota + - Estatísticas + - Relatórios + - Integração com estoque + - Integração com Itens + - Inteligência fiscal + + Partes: + 1 - CRUD + 2 - Pesquisas + 3 - Nota Fiscal + 4 - Impostos + 5 - Totais + 6 - Dashboard + 7 - Estatísticas + 8 - Relatórios + 9 - Integração +10 - Inteligência +-------------------------------------------------- +*/ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALItensNota + { + private readonly string connectionString; + public DALItensNota(string connectionString) + { + this.connectionString = connectionString; + }//DALItensNota + + #region CRUD - Create, Read, Update, Delete + public bool Inserir(ModeloItensNota modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Itens_nota + ( + COD_NOTA, + TIPO, + COD_VENDEDOR, + COD_ITEM, + DESCRICAO, + UNIDADE, + QTD, + PRECO, + ICMS, + IPI, + ISS, + DESCONTO, + TOTAL, + CFOP, + CST, + GTIN, + INF_ADIC + ) + VALUES + ( + @COD_NOTA, + @TIPO, + @COD_VENDEDOR, + @COD_ITEM, + @DESCRICAO, + @UNIDADE, + @QTD, + @PRECO, + @ICMS, + @IPI, + @ISS, + @DESCONTO, + @TOTAL, + @CFOP, + @CST, + @GTIN, + @INF_ADIC + )"; + + SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Inserir + public bool Alterar(ModeloItensNota modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Itens_nota + SET + + COD_NOTA=@COD_NOTA, + TIPO=@TIPO, + COD_VENDEDOR=@COD_VENDEDOR, + COD_ITEM=@COD_ITEM, + DESCRICAO=@DESCRICAO, + UNIDADE=@UNIDADE, + QTD=@QTD, + PRECO=@PRECO, + ICMS=@ICMS, + IPI=@IPI, + ISS=@ISS, + DESCONTO=@DESCONTO, + TOTAL=@TOTAL, + CFOP=@CFOP, + CST=@CST, + GTIN=@GTIN, + INF_ADIC=@INF_ADIC + + WHERE ID_ITENS_NOTA=@ID"; + + SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue( + "@ID", + modelo.ID_ITENS_NOTA); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"DELETE FROM Itens_nota + WHERE ID_ITENS_NOTA=@ID", + conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Excluir + public ModeloItensNota CarregarModelo(int id) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE ID_ITENS_NOTA=@ID", + conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return new ModeloItensNota(); + }//CarregarModelo + public ModeloItensNota CarregarModeloPorCodigoString(string codigo) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE CODIGO=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codigo); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return new ModeloItensNota(); + }//CarregarModeloPorCodigoString + public bool ExisteItenNota(int id) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT COUNT(*) + FROM Itens_nota + WHERE ID_ITENS_NOTA=@ID", + conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + }//ExisteItenNota + public bool ExisteCodigoItenNota(string codigo) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT COUNT(*) + FROM Itens_nota + WHERE CODIGO=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codigo); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + }//ExisteCodigoItenNota + public string ObterUltimoCodigo() + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT TOP 1 CODIGO + FROM Itens_nota + ORDER BY ID_ITENS_NOTA DESC", + conn); + + conn.Open(); + + return Convert.ToString( + cmd.ExecuteScalar()) + ?? string.Empty; + }//ObterUltimoCodigo + private void PreencherParametros(SqlCommand cmd,ModeloItensNota modelo) + { + cmd.Parameters.AddWithValue( + "@COD_NOTA", + modelo.COD_NOTA); + + cmd.Parameters.AddWithValue( + "@TIPO", + modelo.TIPO); + + cmd.Parameters.AddWithValue( + "@COD_VENDEDOR", + modelo.COD_VENDEDOR); + + cmd.Parameters.AddWithValue( + "@COD_ITEM", + modelo.COD_ITEM); + + cmd.Parameters.AddWithValue( + "@DESCRICAO", + modelo.DESCRICAO); + + cmd.Parameters.AddWithValue( + "@UNIDADE", + modelo.UNIDADE); + + cmd.Parameters.AddWithValue( + "@QTD", + modelo.QTD); + + cmd.Parameters.AddWithValue( + "@PRECO", + modelo.PRECO); + + cmd.Parameters.AddWithValue( + "@ICMS", + modelo.ICMS); + + cmd.Parameters.AddWithValue( + "@IPI", + modelo.IPI); + + cmd.Parameters.AddWithValue( + "@ISS", + modelo.ISS); + + cmd.Parameters.AddWithValue( + "@DESCONTO", + modelo.DESCONTO); + + cmd.Parameters.AddWithValue( + "@TOTAL", + modelo.TOTAL); + + cmd.Parameters.AddWithValue( + "@CFOP", + modelo.CFOP); + + cmd.Parameters.AddWithValue( + "@CST", + modelo.CST); + + cmd.Parameters.AddWithValue( + "@GTIN", + modelo.GTIN); + + cmd.Parameters.AddWithValue( + "@INF_ADIC", + modelo.INF_ADIC); + }//PreencherParametros + private ModeloItensNota PreencherModelo(SqlDataReader dr) + { + return new ModeloItensNota + { + ID_ITENS_NOTA = + Convert.ToInt32( + dr["ID_ITENS_NOTA"]), + + CODIGO = + Convert.ToString( + dr["CODIGO"]) ?? "", + + COD_NOTA = + Convert.ToString( + dr["COD_NOTA"]) ?? "", + + TIPO = + Convert.ToString( + dr["TIPO"]) ?? "", + + COD_VENDEDOR = + Convert.ToString( + dr["COD_VENDEDOR"]) ?? "", + + COD_ITEM = + Convert.ToString( + dr["COD_ITEM"]) ?? "", + + DESCRICAO = + Convert.ToString( + dr["DESCRICAO"]) ?? "", + + UNIDADE = + Convert.ToString( + dr["UNIDADE"]) ?? "", + + QTD = + Convert.ToString( + dr["QTD"]) ?? "", + + PRECO = + Convert.ToString( + dr["PRECO"]) ?? "", + + ICMS = + Convert.ToString( + dr["ICMS"]) ?? "", + + IPI = + Convert.ToString( + dr["IPI"]) ?? "", + + ISS = + Convert.ToString( + dr["ISS"]) ?? "", + + DESCONTO = + Convert.ToString( + dr["DESCONTO"]) ?? "", + + TOTAL = + Convert.ToString( + dr["TOTAL"]) ?? "", + + CFOP = + Convert.ToString( + dr["CFOP"]) ?? "", + + CST = + Convert.ToString( + dr["CST"]) ?? "", + + GTIN = + Convert.ToString( + dr["GTIN"]) ?? "", + + INF_ADIC = + Convert.ToString( + dr["INF_ADIC"]) ?? "" + }; + }//PreencherModelo + + #endregion + #region Pesquisas - Searches + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + ORDER BY ID_ITENS_NOTA DESC", + conn); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//Listar + public List ListarPorNota(string codigoNota) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codigoNota); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorNota + public ListListarPorItem(string codigoItem) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE COD_ITEM=@COD_ITEM", + conn); + + cmd.Parameters.AddWithValue( + "@COD_ITEM", + codigoItem); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorItem + public ListListarPorVendedor(string vendedor) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE COD_VENDEDOR=@VENDEDOR", + conn); + + cmd.Parameters.AddWithValue( + "@VENDEDOR", + vendedor); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorVendedor + public ListListarPorTipo(string tipo) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE TIPO=@TIPO", + conn); + + cmd.Parameters.AddWithValue( + "@TIPO", + tipo); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorTipo + public ListListarPorCFOP(string cfop) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE CFOP=@CFOP", + conn); + + cmd.Parameters.AddWithValue( + "@CFOP", + cfop); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorCFOP + public ListListarPorCST(string cst) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE CST=@CST", + conn); + + cmd.Parameters.AddWithValue( + "@CST", + cst); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorCST + public ListListarPorGTIN(string gtin) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE GTIN=@GTIN", + conn); + + cmd.Parameters.AddWithValue( + "@GTIN", + gtin); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorGTIN + public ListListarPorDescricao(string descricao) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE DESCRICAO LIKE @DESC", + conn); + + cmd.Parameters.AddWithValue( + "@DESC", + "%" + descricao + "%"); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorDescricao + public ListListarPorPeriodo( string notaInicial,string notaFinal) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE COD_NOTA + BETWEEN @INI AND @FIM", + conn); + + cmd.Parameters.AddWithValue( + "@INI", + notaInicial); + + cmd.Parameters.AddWithValue( + "@FIM", + notaFinal); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorPeriodo + public ListListarPorQuantidade(string quantidade) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT * + FROM Itens_nota + WHERE QTD=@QTD", + conn); + + cmd.Parameters.AddWithValue( + "@QTD", + quantidade); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add( + PreencherModelo(dr)); + + return lista; + }//ListarPorQuantidade + + #endregion + #region Operações da NF-e - Nota Fiscal Eletrônica + public int QuantidadeItensNota(string codNota) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT COUNT(*) + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()); + }//QuantidadeItensNota + public bool PossuiItens(string codNota) + { + return QuantidadeItensNota( + codNota) > 0; + }//PossuiItens + public ModeloItensNota PrimeiroItem(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT TOP 1 * + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA + ORDER BY ID_ITENS_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return new ModeloItensNota(); + }//PrimeiroItem + public ModeloItensNota UltimoItem(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT TOP 1 * + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA + ORDER BY ID_ITENS_NOTA DESC", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return new ModeloItensNota(); + }//UltimoItem + public decimal ValorTotalItens(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT( + decimal(18,2), + TOTAL + ) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//ValorTotalItens + public decimal QuantidadeTotalItens(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT( + decimal(18,4), + QTD + ) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//QuantidadeTotalItens + public ListObterItensNota(string codNota) + { + return ListarPorNota( + codNota); + }//ObterItensNota + public bool ExcluirItensNota(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"DELETE FROM Itens_nota + WHERE COD_NOTA=@COD_NOTA", + conn); + + cmd.Parameters.AddWithValue( + "@COD_NOTA", + codNota); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//ExcluirItensNota + public int DuplicarItens(string notaOrigem,string notaDestino) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @" + INSERT INTO Itens_nota + ( + COD_NOTA, + TIPO, + COD_VENDEDOR, + COD_ITEM, + DESCRICAO, + UNIDADE, + QTD, + PRECO, + ICMS, + IPI, + ISS, + DESCONTO, + TOTAL, + CFOP, + CST, + GTIN, + INF_ADIC + ) + SELECT + @DESTINO, + TIPO, + COD_VENDEDOR, + COD_ITEM, + DESCRICAO, + UNIDADE, + QTD, + PRECO, + ICMS, + IPI, + ISS, + DESCONTO, + TOTAL, + CFOP, + CST, + GTIN, + INF_ADIC + FROM Itens_nota + WHERE COD_NOTA=@ORIGEM", + conn); + + cmd.Parameters.AddWithValue( + "@ORIGEM", + notaOrigem); + + cmd.Parameters.AddWithValue( + "@DESTINO", + notaDestino); + + conn.Open(); + + return cmd.ExecuteNonQuery(); + }//DuplicarItens + + #endregion + #region Impostos - Taxes + public decimal TotalICMS(string codNota) + { + using SqlConnection conn = new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2),V_ICMS) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalICMS + public decimal TotalICMSST(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2),VICMSST) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalICMSST + public decimal TotalICMSUFDest(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2), + vICMSUFDest) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalICMSUFDest + public decimal TotalICMSUFRemet(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2), + vICMSUFRemet) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalICMSUFRemet + public decimal AliquotaMediaICMS(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + AVG( + TRY_CONVERT(decimal(18,2), + ALIQ_ICMS) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//AliquotaMediaICMS + public decimal TotalIPI(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2), + V_IPI) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalIPI + public decimal AliquotaMediaIPI( string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + AVG( + TRY_CONVERT(decimal(18,2), + IPI) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//AliquotaMediaIPI + public decimal TotalISS(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + SUM( + TRY_CONVERT(decimal(18,2), + ISS) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//TotalISS + public decimal AliquotaMediaISS(string codNota) + { + using SqlConnection conn = + new(connectionString); + + SqlCommand cmd = new( + @"SELECT ISNULL( + AVG( + TRY_CONVERT(decimal(18,2), + ISS) + ),0) + FROM Itens_nota + WHERE COD_NOTA=@CODIGO", + conn); + + cmd.Parameters.AddWithValue( + "@CODIGO", + codNota); + + conn.Open(); + + return Convert.ToDecimal( + cmd.ExecuteScalar()); + }//AliquotaMediaISS + + #endregion + //-------------------------------------------------- + // Status de desenvolvimento das partes da classe DALItensNota + //Parte 1 -> CRUD -> Concluída + //Parte 2 -> Pesquisas -> Concluída + //Parte 3 -> Nota Fiscal -> Concluida + //Parte 4 -> Impostos -> Concluída + //Parte 5 -> Totais -> Pendente + //Parte 6 -> Dashboard -> Pendente + //Parte 7 -> Estatísticas -> Pendente + //Parte 8 -> Relatórios -> Pendente + //Parte 9 -> Integração -> Pendente + //Parte 10 -> Inteligência -> Pendente + } +}