1165 lines
29 KiB
C#
1165 lines
29 KiB
C#
/*
|
|
--------------------------------------------------
|
|
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<ModeloItensNota> Listar()
|
|
{
|
|
List<ModeloItensNota> 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<ModeloItensNota> ListarPorNota(string codigoNota)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorItem(string codigoItem)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorVendedor(string vendedor)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorTipo(string tipo)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorCFOP(string cfop)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorCST(string cst)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorGTIN(string gtin)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorDescricao(string descricao)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorPeriodo( string notaInicial,string notaFinal)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ListarPorQuantidade(string quantidade)
|
|
{
|
|
List<ModeloItensNota> 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 List<ModeloItensNota>ObterItensNota(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
|
|
}
|
|
}
|