LevelOS-Core/DAL/DALItensNota.cs

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
}
}