From 35449b0b0e11702873e92f90220cb451d9f88eae Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Thu, 3 Jul 2025 08:56:29 -0300 Subject: [PATCH 01/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20B=20-=20Identifica?= =?UTF-8?q?=C3=A7=C3=A3o=20da=20Nota=20Fiscal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Identificacao/Tipos/ideTipos.cs | 138 +++++++++++++++++- .../Informacoes/Identificacao/gCompraGov.cs | 61 ++++++++ NFe.Classes/Informacoes/Identificacao/ide.cs | 24 ++- 3 files changed, 220 insertions(+), 3 deletions(-) create mode 100644 NFe.Classes/Informacoes/Identificacao/gCompraGov.cs diff --git a/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs b/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs index 94e7c09b6..5868ec2f1 100644 --- a/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs +++ b/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs @@ -271,6 +271,8 @@ public enum TipoEmissao /// 2 - NFe complementar /// 3 - NFe de ajuste /// 4 - Devolução de mercadoria + /// 5 - Nota de crédito + /// 6 - Nota de débito /// public enum FinalidadeNFe { @@ -300,7 +302,21 @@ public enum FinalidadeNFe /// [Description("Devolução de mercadoria")] [XmlEnum("4")] - fnDevolucao = 4 + fnDevolucao = 4, + + /// + /// 5 - Nota de crédito + /// + [Description("Nota de crédito")] + [XmlEnum("5")] + fnCredito = 5, + + /// + /// 6 - Nota de débito + /// + [Description("Nota de débito")] + [XmlEnum("6")] + fnDebito = 6 } /// @@ -498,4 +514,124 @@ public enum refMod [XmlEnum("02")] modelo2 = 2 } + + /// + /// Tipo de Nota de Débito + /// 1 - Transferência de créditos para Cooperativas + /// 2 - Anulação de Crédito por Saídas Imunes/Isentas + /// 3 - Débitos de notas fiscais não processadas na apuração + /// 4 - Multa e juros + /// 5 - Transferência de crédito de sucessão + /// 6 - Pagamento antecipado + /// 7 - Perda em estoque + /// + public enum TpNotaDebito + { + /// + /// 01 - Transferência de créditos para Cooperativas + /// + [Description("Transferência de créditos para Cooperativas")] + [XmlEnum("01")] + TfCreditoCooperativa, + + /// + /// 02 - Anulação de Crédito por Saídas Imunes/Isentas + /// + [Description("Anulação de Crédito por Saídas Imunes/Isentas")] + [XmlEnum("02")] + AnulaCreditoSaidasImunesIsentas, + + /// + /// 03 - Débitos de notas fiscais não processadas na apuração + /// + [Description("Débitos de notas fiscais não processadas na apuração")] + [XmlEnum("03")] + DebitosNfNaoProcessadas, + + /// + /// 04 - Multa e juros + /// + [Description("Multa e juros")] + [XmlEnum("04")] + MultaJuros, + + /// + /// 05 - Transferência de crédito de sucessão + /// + [Description("Transferência de crédito de sucessão")] + [XmlEnum("05")] + TfCreditoSucessao, + + /// + /// 06 - Pagamento antecipado + /// + [Description("Pagamento antecipado")] + [XmlEnum("06")] + PagamentoAntecipado, + + /// + /// 07 - Perda em estoque + /// + [Description("Perda em estoque")] + [XmlEnum("07")] + PerdaEstoque + } + + /// + /// Tipo de Nota de Crédito + /// 1 - Multa e juros + /// 2 - Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25) + /// + public enum TpNotaCredito + { + [Description("Multa e juros")] + [XmlEnum("1")] + MultaJuros, + + [Description("Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)")] + [XmlEnum("2")] + ApropriacaoDeCredito + } + + /// + /// Tipo de ente governamental + /// 1 - União + /// 2 - Estado + /// 3 - Distrito Federal + /// 4 - Município + /// + public enum TpEnteGov + { + [Description("União")] + [XmlEnum("1")] + Uniao, + + [Description("Estado")] + [XmlEnum("2")] + Estado, + + [Description("Distrito Federal")] + [XmlEnum("3")] + DistritoFederal, + + [Description("Município")] + [XmlEnum("4")] + Municipio + } + + /// + /// Tipo de operação com o ente governamental + /// 1 - Fornecimento + /// 2 - Recebimento do pagamento, conforme fato gerador do IBS/CBS definido no Art. 10 § 2º + /// + public enum TpOperGov + { + [Description("Fornecimento")] + [XmlEnum("1")] + Fornecimento, + + [Description("Recebimento do pagamento, conforme fato gerador do IBS/CBS definido no Art. 10 § 2º")] + [XmlEnum("2")] + RecebimentoPagamento + } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Identificacao/gCompraGov.cs b/NFe.Classes/Informacoes/Identificacao/gCompraGov.cs new file mode 100644 index 000000000..80756e0ac --- /dev/null +++ b/NFe.Classes/Informacoes/Identificacao/gCompraGov.cs @@ -0,0 +1,61 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using NFe.Classes.Informacoes.Identificacao.Tipos; + +namespace NFe.Classes.Informacoes.Identificacao +{ + public class gCompraGov + { + private decimal _pRedutor; + + /// + /// B32 - Tipo de ente governamental + /// + public TpEnteGov tpEnteGov { get; set; } + + /// + /// B33 - Percentual de redução de alíquota em compra governamental + /// + public decimal pRedutor + { + get => _pRedutor.Arredondar(4); + set => _pRedutor = value.Arredondar(4); + } + + /// + /// B34 - Tipo de operação com o ente governamental + /// + public TpOperGov tpOperGov { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Identificacao/ide.cs b/NFe.Classes/Informacoes/Identificacao/ide.cs index d9248d505..66f4a8877 100644 --- a/NFe.Classes/Informacoes/Identificacao/ide.cs +++ b/NFe.Classes/Informacoes/Identificacao/ide.cs @@ -167,6 +167,11 @@ public string ProxydhSaiEnt /// public long cMunFG { get; set; } + /// + /// B12a - Código do Município de consumo, fato gerador do IBS / CBS + /// + public long? cMunFGIBS { get; set; } + /// /// B21 - Formato de impressão do DANFE /// @@ -188,14 +193,24 @@ public string ProxydhSaiEnt public TipoAmbiente tpAmb { get; set; } /// - /// B25a - Finalidade da emissão da NF-e + /// B25 - Finalidade da emissão da NF-e /// public FinalidadeNFe finNFe { get; set; } + /// + /// B25.1 - Tipo de Nota de Débito + /// + public TpNotaDebito? tpNFDebito { get; set; } + + /// + /// B25.2 - Tipo de Nota de Crédito + /// + public TpNotaCredito? tpNFCredito { get; set; } + /// /// B25a - Indica operação com consumidor final /// - public ConsumidorFinal? indFinal { get; set; } //Nulable por conta da v2.00 + public ConsumidorFinal? indFinal { get; set; } //Nullable por conta da v2.00 /// /// B25b - Indicador de presença do comprador no estabelecimento comercial no momento da operação @@ -252,6 +267,11 @@ public string ProxydhCont [XmlElement("NFref")] public List NFref { get; set; } + /// + /// B31 - Grupo de Compra Governamental + /// + public gCompraGov GCompraGov { get; set; } + public bool ShouldSerializeidDest() { return idDest.HasValue; From 399019e3d9c1d5f1227cfa34a318bab0a37d61d3 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Thu, 3 Jul 2025 09:31:50 -0300 Subject: [PATCH 02/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20BB=20-=20Grupo=20d?= =?UTF-8?q?e=20notas=20de=20antecipa=C3=A7=C3=A3o=20de=20pagamento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Identificacao/gPagAntecipado.cs | 48 +++++++++++++++++++ NFe.Classes/Informacoes/Identificacao/ide.cs | 5 ++ 2 files changed, 53 insertions(+) create mode 100644 NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs diff --git a/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs b/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs new file mode 100644 index 000000000..acb8c610c --- /dev/null +++ b/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs @@ -0,0 +1,48 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Collections.Generic; + +namespace NFe.Classes.Informacoes.Identificacao +{ + /// + /// BB01 - Grupo de notas de antecipação de pagamento + /// + public class gPagAntecipado + { + /// + /// BB02 - Chave de acesso da NF-e de antecipação de pagamento + /// + private List refNFe { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Identificacao/ide.cs b/NFe.Classes/Informacoes/Identificacao/ide.cs index 66f4a8877..218b82915 100644 --- a/NFe.Classes/Informacoes/Identificacao/ide.cs +++ b/NFe.Classes/Informacoes/Identificacao/ide.cs @@ -272,6 +272,11 @@ public string ProxydhCont /// public gCompraGov GCompraGov { get; set; } + /// + /// BB01 - Grupo de notas de antecipação de pagamento + /// + public gPagAntecipado gPagAntecipado { get; set; } + public bool ShouldSerializeidDest() { return idDest.HasValue; From 03fe34bd6edf052aca7e7ebf044636b06049cfb1 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Thu, 3 Jul 2025 10:30:46 -0300 Subject: [PATCH 03/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20I=20-=20Produtos?= =?UTF-8?q?=20e=20Servi=C3=A7os=20da=20NF-e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Detalhe/prod.cs | 5 +++++ NFe.Classes/Informacoes/Detalhe/prodTipos.cs | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/prod.cs b/NFe.Classes/Informacoes/Detalhe/prod.cs index e32da3749..269431bea 100644 --- a/NFe.Classes/Informacoes/Detalhe/prod.cs +++ b/NFe.Classes/Informacoes/Detalhe/prod.cs @@ -255,6 +255,11 @@ public decimal? vOutro /// public IndicadorTotal indTot { get; set; } + /// + /// I17c - Indicador de fornecimento de bem móvel usado + /// + public IndBemMovelUsado? indBemMovelUsado { get; set; } + /// /// I18 - Declaração de Importação /// diff --git a/NFe.Classes/Informacoes/Detalhe/prodTipos.cs b/NFe.Classes/Informacoes/Detalhe/prodTipos.cs index f40e3c432..f82804425 100644 --- a/NFe.Classes/Informacoes/Detalhe/prodTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/prodTipos.cs @@ -376,4 +376,15 @@ public enum indEscala [XmlEnum("N")] N = 'N' } + + /// + /// Indicador de fornecimento de bem móvel usado + /// 1 - Bem Móvel Usado + /// + public enum IndBemMovelUsado + { + [Description("Bem Móvel Usado")] + [XmlEnum("1")] + BemMovelUsado + } } \ No newline at end of file From d87eac66c44b87d6ee1541549dc35ecc3d7f3476 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 4 Jul 2025 16:00:44 -0300 Subject: [PATCH 04/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Campo=20I?= =?UTF-8?q?S=20e=20seus=20respectivos=20campos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Detalhe/Tributacao/Federal/IS.cs | 115 ++++++++++++++++++ .../Tributacao/Federal/Tipos/ISTipos.cs | 52 ++++++++ .../Informacoes/Detalhe/Tributacao/imposto.cs | 7 +- 3 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs new file mode 100644 index 000000000..553a1d3e5 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs @@ -0,0 +1,115 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; +using NFe.Classes.Informacoes.Detalhe.Tributacao.Federal.Tipos; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal +{ + public class IS + { + private decimal _vBcIs; + private decimal _pIs; + private decimal _pIsEspec; + private decimal _qTrib; + private decimal _vIs; + + /// + /// UB02 - Código de Situação Tributária do Imposto Seletivo + /// + [XmlElement(Order = 1)] + public CSTIS CSTIS { get; set; } + + /// + /// UB03 - Código de Classificação Tributária do Imposto Seletivo + /// + [XmlElement(Order = 2)] + public int cClassTribIS { get; set; } + + /// + /// UB05 - Valor da Base de Cálculo do Imposto Seletivo + /// + [XmlElement(Order = 3)] + public decimal vBCIS + { + get => _vBcIs.Arredondar(2); + set => _vBcIs = value.Arredondar(2); + } + + /// + /// UB06 - Alíquota do Imposto Seletivo + /// + [XmlElement(Order = 4)] + public decimal pIS + { + get => _pIs.Arredondar(4); + set => _pIs = value.Arredondar(4); + } + + /// + /// UB07 - Alíquota específica por unidade de medida apropriada + /// + [XmlElement(Order = 5)] + public decimal pISEspec + { + get => _pIsEspec.Arredondar(4); + set => _pIsEspec = value.Arredondar(4); + } + + /// + /// UB09 - Unidade de Medida Tributável + /// + [XmlElement(Order = 6)] + public string uTrib { get; set; } + + /// + /// UB10 - Quantidade Tributável + /// + [XmlElement(Order = 7)] + public decimal qTrib + { + get => _qTrib.Arredondar(4); + set => _qTrib = value.Arredondar(4); + } + + /// + /// UB11 - Valor do Imposto Seletivo + /// + [XmlElement(Order = 8)] + public decimal vIS + { + get => _vIs.Arredondar(2); + set => _vIs = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs new file mode 100644 index 000000000..79b2461a7 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs @@ -0,0 +1,52 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.ComponentModel; +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal.Tipos +{ + /// + /// CST para o Imposto Seletivo (IS) + /// Tabela ainda não publicada oficialmente pela SEFAZ. Fonte: NT 2025.002-RTC + /// + public enum CSTIS + { + /// + /// 000 - Tributada integralmente + /// + [Description("Tributada integralmente")] + [XmlEnum("000")] + Is000 + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs index eff1126e2..f452b2842 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs @@ -90,9 +90,14 @@ public decimal? vTotTrib public COFINSST COFINSST { get; set; } /// - /// NA01 - Informação do ICMS Interestadua + /// NA01 - Informação do ICMS Interestadua /// public ICMSUFDest ICMSUFDest { get; set; } + + /// + /// UB01 - Informações do Imposto Seletivo + /// + public IS IS { get; set; } public bool ShouldSerializevTotTrib() { From 66d7ce80ddc8170b7bd4aee15e3df16075b3ab14 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 4 Jul 2025 16:59:24 -0300 Subject: [PATCH 05/85] wip: Implementando IBSCBS --- .../Tributacao/Compartilhado/IBSCBS.cs | 53 ++++++ .../Compartilhado/Tipos/IBSCBSTipos.cs | 160 ++++++++++++++++++ .../Tributacao/Federal/Tipos/ISTipos.cs | 2 +- .../Informacoes/Detalhe/Tributacao/imposto.cs | 7 + 4 files changed, 221 insertions(+), 1 deletion(-) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs new file mode 100644 index 000000000..45288789d --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -0,0 +1,53 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado +{ + public class IBSCBS + { + /// + /// UB13 - Código de Situação Tributária do IBS e CBS + /// + [XmlElement(Order = 1)] + public CST CST { get; set; } + + /// + /// UB14 - Código de Classificação Tributária do IBS e CBS + /// + [XmlElement(Order = 2)] + public int cClassTrib { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs new file mode 100644 index 000000000..68cd35938 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs @@ -0,0 +1,160 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.ComponentModel; +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos +{ + public enum CST + { + /// + /// 000 - Tributação integral + /// + [Description("Tributação integral")] + [XmlEnum("000")] + Cst000, + + /// + /// 010 - Tributação com alíquotas uniformes + /// + [Description("Tributação com alíquotas uniformes")] + [XmlEnum("010")] + Cst010, + + /// + /// 011 - Tributação com alíquotas uniformes reduzidas + /// + [Description("Tributação com alíquotas uniformes reduzidas")] + [XmlEnum("011")] + Cst011, + + /// + /// 200 - Alíquota reduzida + /// + [Description("Alíquota reduzida")] + [XmlEnum("200")] + Cst200, + + /// + /// 210 - Redução de alíquota com redutor de base de cálculo + /// + [Description("Redução de alíquota com redutor de base de cálculo")] + [XmlEnum("210")] + Cst210, + + /// + /// 220 - Alíquota fixa + /// + [Description("Alíquota fixa")] + [XmlEnum("220")] + Cst220, + + /// + /// 221 - Alíquota fixa rateada + /// + [Description("Alíquota fixa rateada")] + [XmlEnum("221")] + Cst221, + + /// + /// 222 - Redução de Base de Cálculo + /// + [Description("Redução de Base de Cálculo")] + [XmlEnum("222")] + Cst222, + + /// + /// 400 - Isenção + /// + [Description("Isenção")] + [XmlEnum("400")] + Cst400, + + /// + /// 410 - Imunidade e não incidência + /// + [Description("Imunidade e não incidência")] + [XmlEnum("410")] + Cst410, + + /// + /// 510 - Diferimento + /// + [Description("Diferimento")] + [XmlEnum("510")] + Cst510, + + /// + /// 550 - Suspensão + /// + [Description("Suspensão")] + [XmlEnum("550")] + Cst550, + + /// + /// 620 - Tributação Monofásica + /// + [Description("Tributação Monofásica")] + [XmlEnum("620")] + Cst620, + + /// + /// 800 - Transferência de crédito + /// + [Description("Transferência de crédito")] + [XmlEnum("800")] + Cst800, + + /// + /// 810 - Ajustes + /// + [Description("Ajustes")] + [XmlEnum("810")] + Cst810, + + /// + /// 820 - Tributação em declaração de regime específico + /// + [Description("Tributação em declaração de regime específico")] + [XmlEnum("820")] + Cst820, + + /// + /// 830 - Exclusão da Base de Cálculo + /// + [Description("Exclusão da Base de Cálculo")] + [XmlEnum("830")] + Cst830 + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs index 79b2461a7..f60a280d2 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/ISTipos.cs @@ -43,7 +43,7 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal.Tipos public enum CSTIS { /// - /// 000 - Tributada integralmente + /// 000 - Tributada integralmente /// [Description("Tributada integralmente")] [XmlEnum("000")] diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs index f452b2842..b667a2f41 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/imposto.cs @@ -30,6 +30,8 @@ /* http://www.zeusautomacao.com.br/ */ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ + +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado; using NFe.Classes.Informacoes.Detalhe.Tributacao.Estadual; using NFe.Classes.Informacoes.Detalhe.Tributacao.Federal; using NFe.Classes.Informacoes.Detalhe.Tributacao.Municipal; @@ -98,6 +100,11 @@ public decimal? vTotTrib /// UB01 - Informações do Imposto Seletivo /// public IS IS { get; set; } + + /// + /// UB12 - Informações do Imposto de Bens e Serviços - IBS e da Contribuição de Bens e Serviços - CBS + /// + public IBSCBS IBSCBS { get; set; } public bool ShouldSerializevTotTrib() { From 2ca082619910ae61ae19e9da63c67b9a31f39a44 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 14:49:58 -0300 Subject: [PATCH 06/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20IBS=20e?= =?UTF-8?q?=20seus=20respectivos=20campos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tributacao/Compartilhado/IBSCBS.cs | 6 ++ .../InformacoesIbsCbs/gDevTrib.cs | 49 ++++++++++++ .../Compartilhado/InformacoesIbsCbs/gDif.cs | 59 +++++++++++++++ .../InformacoesIbsCbs/gIBSCBS.cs | 59 +++++++++++++++ .../InformacoesIbsCbs/gIBSMun.cs | 74 +++++++++++++++++++ .../Compartilhado/InformacoesIbsCbs/gIBSUF.cs | 74 +++++++++++++++++++ .../Compartilhado/InformacoesIbsCbs/gRed.cs | 59 +++++++++++++++ 7 files changed, 380 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDevTrib.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDif.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs index 45288789d..201adfc16 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -32,6 +32,7 @@ /********************************************************************************/ using System.Xml.Serialization; +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado @@ -49,5 +50,10 @@ public class IBSCBS /// [XmlElement(Order = 2)] public int cClassTrib { get; set; } + + /// + /// UB15 - Grupo de Informações do IBS e da CBS + /// + public gIBSCBS gIBSCBS { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDevTrib.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDevTrib.cs new file mode 100644 index 000000000..9a045ce6d --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDevTrib.cs @@ -0,0 +1,49 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gDevTrib + { + private decimal _vDevTrib { get; set; } + + /// + /// Valor do tributo devolvido + /// + public decimal vDevTrib + { + get => _vDevTrib.Arredondar(2); + set => _vDevTrib = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDif.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDif.cs new file mode 100644 index 000000000..8ea78d00d --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gDif.cs @@ -0,0 +1,59 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gDif + { + private decimal _pDif; + private decimal _vDif; + + /// + /// Percentual do diferimento + /// + public decimal pDif + { + get => _pDif.Arredondar(4); + set => _pDif = value.Arredondar(4); + } + + /// + /// Valor do Diferimento + /// + public decimal vDif + { + get => _vDif.Arredondar(2); + set => _vDif = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs new file mode 100644 index 000000000..fd049aea8 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -0,0 +1,59 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gIBSCBS + { + private decimal _vBc; + + /// + /// UB16 - Base de cálculo do IBS e CBS + /// + public decimal vBC + { + get => _vBc.Arredondar(2); + set => _vBc = value.Arredondar(2); + } + + /// + /// UB17 - Grupo de Informações do IBS para a UF + /// + public gIBSUF gIBSUF { get; set; } + + /// + /// UB36 - Grupo de Informações do IBS para o município + /// + public gIBSMun gIBSMun { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs new file mode 100644 index 000000000..d97df0f55 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs @@ -0,0 +1,74 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gIBSMun + { + private decimal _pIbsMun; + private decimal _vIbsMun; + + /// + /// UB37 - Alíquota do IBS de competência do Município + /// + public decimal pIBSMun + { + get => _pIbsMun.Arredondar(4); + set => _pIbsMun = value.Arredondar(4); + } + + /// + /// UB54 - Valor do IBS de competência do Município + /// + public decimal vIBSMun + { + get => _vIbsMun.Arredondar(4); + set => _vIbsMun = value.Arredondar(4); + } + + /// + /// UB40 - Grupo de Informações do Diferimento + /// + public gDif gDif { get; set; } + + /// + /// UB43 - Grupo de Informações da devolução de tributos + /// + public gDevTrib gDevTrib { get; set; } + + /// + /// UB45 - Grupo de informações da redução da alíquota + /// + public gRed gRed { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs new file mode 100644 index 000000000..b5d58ab84 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs @@ -0,0 +1,74 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gIBSUF + { + private decimal _pIbsUf; + private decimal _vIbsUf; + + /// + /// UB18 - Alíquota do IBS de competência das UF + /// + public decimal pIBSUF + { + get => _pIbsUf.Arredondar(4); + set => _pIbsUf = value.Arredondar(4); + } + + /// + /// UB35 - Valor do IBS de competência da UF + /// + public decimal vIBSUF + { + get => _vIbsUf.Arredondar(4); + set => _vIbsUf = value.Arredondar(4); + } + + /// + /// UB21 - Grupo de Informações do Diferimento + /// + public gDif gDif { get; set; } + + /// + /// UB24 - Grupo de Informações da devolução de tributos + /// + public gDevTrib gDevTrib { get; set; } + + /// + /// UB26 - Grupo de informações da redução da alíquota + /// + public gRed gRed { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs new file mode 100644 index 000000000..410b06347 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs @@ -0,0 +1,59 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gRed + { + private decimal _pRedAliq; + private decimal _pAliqEfet; + + /// + /// Percentual da redução de alíquota do cClassTrib + /// + public decimal pRedAliq + { + get => _pRedAliq.Arredondar(4); + set => _pRedAliq = value.Arredondar(4); + } + + /// + /// Alíquota Efetiva do IBS que será aplicada a Base de Cálculo + /// + public decimal pAliqEfet + { + get => _pAliqEfet.Arredondar(4); + set => _pAliqEfet = value.Arredondar(4); + } + } +} \ No newline at end of file From 4849ff15e8993d546a2dde7058ef4f237751db42 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 15:08:03 -0300 Subject: [PATCH 07/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20CBS=20e?= =?UTF-8?q?=20seus=20respectivos=20campos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBS.cs | 7 ++ .../Detalhe/Tributacao/Federal/gCBS.cs | 76 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index fd049aea8..031e67057 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -31,6 +31,8 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using NFe.Classes.Informacoes.Detalhe.Tributacao.Federal; + namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs { public class gIBSCBS @@ -55,5 +57,10 @@ public decimal vBC /// UB36 - Grupo de Informações do IBS para o município /// public gIBSMun gIBSMun { get; set; } + + /// + /// UB55 - Grupo de Informações da CBS + /// + public gCBS gCBS { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs new file mode 100644 index 000000000..1e77f019c --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs @@ -0,0 +1,76 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal +{ + public class gCBS + { + private decimal _pCbs; + private decimal _vCbs; + + /// + /// UB56 - Alíquota da CBS + /// + public decimal pCBS + { + get => _pCbs.Arredondar(4); + set => _pCbs = value.Arredondar(4); + } + + /// + /// UB67 - Valor da CBS + /// + public decimal vCBS + { + get => _vCbs.Arredondar(2); + set => _vCbs = value.Arredondar(2); + } + + /// + /// UB59 - Grupo de Informações do Diferimento + /// + public gDif gDif { get; set; } + + /// + /// UB62 - Grupo de Informações da devolução de tributos + /// + public gDevTrib gDevTrib { get; set; } + + /// + /// UB64 - Grupo de informações da redução da alíquota + /// + public gRed gRed { get; set; } + } +} \ No newline at end of file From 42a283fa3c809dde574a0d9abb219d856f47abc6 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 15:08:44 -0300 Subject: [PATCH 08/85] =?UTF-8?q?fix:=20Ajustado=20quantidade=20de=20casas?= =?UTF-8?q?=20decimais=20de=20determinados=20campos=20e=20descri=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20sum=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs | 4 ++-- .../Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs | 4 ++-- .../Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs index d97df0f55..801ac5eb8 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs @@ -52,8 +52,8 @@ public decimal pIBSMun /// public decimal vIBSMun { - get => _vIbsMun.Arredondar(4); - set => _vIbsMun = value.Arredondar(4); + get => _vIbsMun.Arredondar(2); + set => _vIbsMun = value.Arredondar(2); } /// diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs index b5d58ab84..42ed4492a 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs @@ -52,8 +52,8 @@ public decimal pIBSUF /// public decimal vIBSUF { - get => _vIbsUf.Arredondar(4); - set => _vIbsUf = value.Arredondar(4); + get => _vIbsUf.Arredondar(2); + set => _vIbsUf = value.Arredondar(2); } /// diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs index 410b06347..3e5d511c1 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gRed.cs @@ -48,7 +48,7 @@ public decimal pRedAliq } /// - /// Alíquota Efetiva do IBS que será aplicada a Base de Cálculo + /// Alíquota Efetiva que será aplicada a Base de Cálculo /// public decimal pAliqEfet { From e04f8eab70915a3f8b99488ebc5ec23f737de415 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 15:28:13 -0300 Subject: [PATCH 09/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Grupo=20d?= =?UTF-8?q?e=20informa=C3=A7=C3=B5es=20da=20Tributa=C3=A7=C3=A3o=20Regular?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBS.cs | 5 + .../InformacoesIbsCbs/gTribRegular.cs | 111 ++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index 031e67057..d4e9babd5 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -62,5 +62,10 @@ public decimal vBC /// UB55 - Grupo de Informações da CBS /// public gCBS gCBS { get; set; } + + /// + /// UB68 - Grupo de informações da Tributação Regular + /// + public gTribRegular gTribRegular { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs new file mode 100644 index 000000000..f543d5402 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs @@ -0,0 +1,111 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gTribRegular + { + private decimal _pAliqEfetRegIbsUf; + private decimal _vTribRegIbsUf; + private decimal _pAliqEfetRegIbsMun; + private decimal _vTribRegIbsMun; + private decimal _pAliqEfetRegCbs; + private decimal _vTribRegCbs; + + /// + /// UB69 - Código de Situação Tributária do IBS e CBS + /// + public CST CSTReg { get; set; } + + /// + /// UB70 - Código de Classificação Tributária do IBS e CBS + /// + public int cClassTribReg { get; set; } + + /// + /// UB71 - Valor da alíquota do IBS da UF + /// + public decimal pAliqEfetRegIBSUF + { + get => _pAliqEfetRegIbsUf.Arredondar(4); + set => _pAliqEfetRegIbsUf = value.Arredondar(4); + } + + /// + /// UB72 - Valor do Tributo do IBS da UF + /// + public decimal vTribRegIBSUF + { + get => _vTribRegIbsUf.Arredondar(2); + set => _vTribRegIbsUf = value.Arredondar(2); + } + + /// + /// UB72a - Valor da alíquota do IBS do Município + /// + public decimal pAliqEfetRegIBSMun + { + get => _pAliqEfetRegIbsMun.Arredondar(4); + set => _pAliqEfetRegIbsMun = value.Arredondar(4); + } + + /// + /// UB72b - Valor do Tributo do IBS do Município + /// + public decimal vTribRegIBSMun + { + get => _vTribRegIbsMun.Arredondar(2); + set => _vTribRegIbsMun = value.Arredondar(2); + } + + /// + /// UB72c - Valor da alíquota da CBS + /// + public decimal pAliqEfetRegCBS + { + get => _pAliqEfetRegCbs.Arredondar(4); + set => _pAliqEfetRegCbs = value.Arredondar(4); + } + + /// + /// UB72d - Valor do Tributo da CBS + /// + public decimal vTribRegCBS + { + get => _vTribRegCbs.Arredondar(2); + set => _vTribRegCbs = value.Arredondar(2); + } + } +} \ No newline at end of file From 529763542e0ee1b4913637858fac9b66bc645753 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 16:15:55 -0300 Subject: [PATCH 10/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Grupo=20d?= =?UTF-8?q?e=20informa=C3=A7=C3=B5es=20do=20Cr=C3=A9dito=20Presumido=20do?= =?UTF-8?q?=20IBS=20e=20CBS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBS.cs | 10 +++ .../InformacoesIbsCbs/gIBSCredPres.cs | 74 +++++++++++++++++++ .../Tributacao/Federal/gCBSCredPres.cs | 74 +++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index d4e9babd5..0488332e3 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -67,5 +67,15 @@ public decimal vBC /// UB68 - Grupo de informações da Tributação Regular /// public gTribRegular gTribRegular { get; set; } + + /// + /// UB73 - Grupo de Informações do Crédito Presumido referente ao IBS + /// + public gIBSCredPres gIBSCredPres { get; set; } + + /// + /// UB78 - Grupo de Informações do Crédito Presumido referente a CBS + /// + public gCBSCredPres gCBSCredPres { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs new file mode 100644 index 000000000..d0fac5f1a --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs @@ -0,0 +1,74 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gIBSCredPres + { + private decimal _pCredPres; + private decimal _vCredPres; + private decimal _vCredPresCondSus; + + /// + /// UB74 - Código de Classificação do Crédito Presumido + /// + public int cCredPres { get; set; } + + /// + /// UB75 - Percentual do Crédito Presumido + /// + public decimal pCredPres + { + get => _pCredPres.Arredondar(4); + set => _pCredPres = value.Arredondar(4); + } + + /// + /// UB76 - Valor do Crédito Presumido + /// + public decimal vCredPres + { + get => _vCredPres.Arredondar(2); + set => _vCredPres = value.Arredondar(2); + } + + /// + /// UB77 - Valor do Crédito Presumido em condição suspensiva + /// + public decimal vCredPresCondSus + { + get => _vCredPresCondSus.Arredondar(2); + set => _vCredPresCondSus = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs new file mode 100644 index 000000000..61524cc6b --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs @@ -0,0 +1,74 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal +{ + public class gCBSCredPres + { + private decimal _pCredPres; + private decimal _vCredPres; + private decimal _vCredPresCondSus; + + /// + /// UB79 - Código de Classificação do Crédito Presumido + /// + public int cCredPres { get; set; } + + /// + /// UB80 - Percentual do Crédito Presumido + /// + public decimal pCredPres + { + get => _pCredPres.Arredondar(4); + set => _pCredPres = value.Arredondar(4); + } + + /// + /// UB81 - Valor do Crédito Presumido + /// + public decimal vCredPres + { + get => _vCredPres.Arredondar(2); + set => _vCredPres = value.Arredondar(2); + } + + /// + /// UB82 - Valor do Crédito Presumido em condição suspensiva + /// + public decimal vCredPresCondSus + { + get => _vCredPresCondSus.Arredondar(2); + set => _vCredPresCondSus = value.Arredondar(2); + } + } +} \ No newline at end of file From 97a68b8d120422b6fde621d14b5977d4c46af397 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 16:29:10 -0300 Subject: [PATCH 11/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Grupo=20d?= =?UTF-8?q?e=20informa=C3=A7=C3=B5es=20da=20composi=C3=A7=C3=A3o=20do=20va?= =?UTF-8?q?lor=20do=20IBS=20e=20da=20CBS=20em=20compras=20governamentais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBS.cs | 5 + .../InformacoesIbsCbs/gTribCompraGov.cs | 99 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index 0488332e3..1f7d37b7e 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -77,5 +77,10 @@ public decimal vBC /// UB78 - Grupo de Informações do Crédito Presumido referente a CBS /// public gCBSCredPres gCBSCredPres { get; set; } + + /// + /// UB82a - Grupo de informações da composição do valor do IBS e da CBS em compras governamentais + /// + public gTribCompraGov gTribCompraGov { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs new file mode 100644 index 000000000..f02e13c86 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs @@ -0,0 +1,99 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gTribCompraGov + { + private decimal _pIbsUf; + private decimal _vIbsUf; + private decimal _pIbsMun; + private decimal _vIbsMun; + private decimal _pCbs; + private decimal _vCbs; + + /// + /// UB82b - Alíquota do IBS de competência do Estado + /// + public decimal pIBSUF + { + get => _pIbsUf.Arredondar(4); + set => _pIbsUf = value.Arredondar(4); + } + + /// + /// UB82c - Valor do Tributo do IBS da UF calculado + /// + public decimal vIBSUF + { + get => _vIbsUf.Arredondar(2); + set => _vIbsUf = value.Arredondar(2); + } + + /// + /// UB82d - Alíquota do IBS de competência do Município + /// + public decimal pIBSMun + { + get => _pIbsMun.Arredondar(4); + set => _pIbsMun = value.Arredondar(4); + } + + /// + /// UB82e - Valor do Tributo do IBS do Município calculado + /// + public decimal vIBSMun + { + get => _vIbsMun.Arredondar(2); + set => _vIbsMun = value.Arredondar(2); + } + + /// + /// UB82f - Alíquota da CBS + /// + public decimal pCBS + { + get => _pCbs.Arredondar(4); + set => _pCbs = value.Arredondar(4); + } + + /// + /// UB82g - Valor do Tributo da CBS calculado + /// + public decimal vCBS + { + get => _vCbs.Arredondar(2); + set => _vCbs = value.Arredondar(2); + } + } +} \ No newline at end of file From 0ad81aa98269b75a3d20cb73ddca878c19adf71d Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 7 Jul 2025 17:07:08 -0300 Subject: [PATCH 12/85] =?UTF-8?q?wip:=20Implementando=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Grupo=20d?= =?UTF-8?q?o=20IBS=20e=20CBS=20em=20opera=C3=A7=C3=B5es=20com=20imposto=20?= =?UTF-8?q?monof=C3=A1sico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tributacao/Compartilhado/IBSCBS.cs | 9 +- .../InformacoesIbsCbs/gIBSCBSMono.cs | 107 ++++++++++++++++++ 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs index 201adfc16..c19aeece1 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -52,8 +52,15 @@ public class IBSCBS public int cClassTrib { get; set; } /// - /// UB15 - Grupo de Informações do IBS e da CBS + /// UB15 - Grupo de Informações do IBS e da CBS /// + [XmlElement(Order = 3)] public gIBSCBS gIBSCBS { get; set; } + + /// + /// UB84 - Grupo de Informações do IBS e CBS em operações com imposto monofásico + /// + [XmlElement(Order = 4)] + public gIBSCBSMono gIBSCBSMono { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs new file mode 100644 index 000000000..242ba467f --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs @@ -0,0 +1,107 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gIBSCBSMono + { + private decimal _qBcMono; + private decimal _adRemIbs; + private decimal _adRemCbs; + private decimal _vIbsMono; + private decimal _vCbsMono; + private decimal _qBcMonoReten; + + /// + /// UB85 - Quantidade tributada na monofasia + /// + [XmlElement(Order = 1)] + public decimal qBCMono + { + get => _qBcMono.Arredondar(4); + set => _qBcMono = value.Arredondar(4); + } + + /// + /// UB86 - Alíquota ad rem do IBS + /// + [XmlElement(Order = 2)] + public decimal adRemIBS + { + get => _adRemIbs.Arredondar(4); + set => _adRemIbs = value.Arredondar(4); + } + + /// + /// UB87 - Alíquota ad rem da CBS + /// + [XmlElement(Order = 3)] + public decimal adRemCBS + { + get => _adRemCbs.Arredondar(4); + set => _adRemCbs = value.Arredondar(4); + } + + /// + /// UB88 - Valor do IBS monofásico + /// + [XmlElement(Order = 4)] + public decimal vIBSMono + { + get => _vIbsMono.Arredondar(2); + set => _vIbsMono = value.Arredondar(2); + } + + /// + /// UB89 - Valor da CBS monofásica + /// + [XmlElement(Order = 5)] + public decimal vCBSMono + { + get => _vCbsMono.Arredondar(2); + set => _vCbsMono = value.Arredondar(2); + } + + /// + /// UB91 - Quantidade tributada sujeita à retenção na monofasia + /// + [XmlElement(Order = 6)] + public decimal qBCMonoReten + { + get => _qBcMonoReten.Arredondar(4); + set => _qBcMonoReten = value.Arredondar(4); + } + } +} \ No newline at end of file From a3a57b4785ca69cb43d5f54ac74d5ebdbe1d4d3a Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Wed, 9 Jul 2025 09:17:47 -0300 Subject: [PATCH 13/85] =?UTF-8?q?feat:=20Implementado=20novos=20campos=20d?= =?UTF-8?q?a=20reforma=20tribut=C3=A1ria=20do=20grupo=20UB=20-=20Grupo=20I?= =?UTF-8?q?BS=20e=20CBS=20em=20opera=C3=A7=C3=B5es=20com=20imposto=20monof?= =?UTF-8?q?=C3=A1sico,=20Transfer=C3=AAncias=20de=20Cr=C3=A9dito=20e=20Inf?= =?UTF-8?q?orma=C3=A7=C3=B5es=20do=20cr=C3=A9dito=20presumido=20de=20IBS?= =?UTF-8?q?=20para=20fornecimentos=20a=20partir=20da=20ZFM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tributacao/Compartilhado/IBSCBS.cs | 12 ++ .../InformacoesIbsCbs/gCredPresIBSZFM.cs | 56 ++++++ .../InformacoesIbsCbs/gIBSCBSMono.cs | 165 ++++++++++++++++++ .../InformacoesIbsCbs/gTransfCred.cs | 59 +++++++ .../Compartilhado/Tipos/IBSCBSTipos.cs | 38 ++++ 5 files changed, 330 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTransfCred.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs index c19aeece1..6586857ab 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -62,5 +62,17 @@ public class IBSCBS /// [XmlElement(Order = 4)] public gIBSCBSMono gIBSCBSMono { get; set; } + + /// + /// UB106 - Transferências de Crédito + /// + [XmlElement(Order = 5)] + public gTransfCred gTransfCred { get; set; } + + /// + /// UB109 - Informações do crédito presumido de IBS para fornecimentos a partir da ZFM + /// + [XmlElement(Order = 6)] + public gCredPresIBSZFM gCredPresIBSZFM { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs new file mode 100644 index 000000000..2ca63d5fc --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs @@ -0,0 +1,56 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gCredPresIBSZFM + { + private decimal _vCredPresIbsZfm; + + /// + /// UB110 - Tipo de classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM + /// + public ClassificacaoCreditoPresumidoIbsZfmTipos tpCredPresIBSZFM { get; set; } + + /// + /// UB111 - Valor do crédito presumido calculado sobre o saldo devedor apurado + /// + public decimal vCredPresIBSZFM + { + get => _vCredPresIbsZfm.Arredondar(2); + set => _vCredPresIbsZfm = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs index 242ba467f..43100ecf6 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs @@ -43,6 +43,21 @@ public class gIBSCBSMono private decimal _vIbsMono; private decimal _vCbsMono; private decimal _qBcMonoReten; + private decimal _adRemIbsReten; + private decimal _vIbsMonoReten; + private decimal _adRemCbsReten; + private decimal _vCbsMonoReten; + private decimal _qBcMonoRet; + private decimal _adRemIbsRet; + private decimal _vIbsMonoRet; + private decimal _adRemCbsRet; + private decimal _vCbsMonoRet; + private decimal _pDifIbs; + private decimal _vIbsMonoDif; + private decimal _pDifCbs; + private decimal _vCbsMonoDif; + private decimal _vTotIbsMonoItem; + private decimal _vTotCbsMonoItem; /// /// UB85 - Quantidade tributada na monofasia @@ -103,5 +118,155 @@ public decimal qBCMonoReten get => _qBcMonoReten.Arredondar(4); set => _qBcMonoReten = value.Arredondar(4); } + + /// + /// UB92 - Alíquota ad rem do IBS sujeito a retenção + /// + [XmlElement(Order = 7)] + public decimal adRemIBSReten + { + get => _adRemIbsReten.Arredondar(4); + set => _adRemIbsReten = value.Arredondar(4); + } + + /// + /// UB93 - Valor do IBS monofásico sujeito a retenção + /// + [XmlElement(Order = 8)] + public decimal vIBSMonoReten + { + get => _vIbsMonoReten.Arredondar(2); + set => _vIbsMonoReten = value.Arredondar(2); + } + + /// + /// UB93a - Alíquota ad rem da CBS sujeito a retenção + /// + [XmlElement(Order = 9)] + public decimal adRemCBSReten + { + get => _adRemCbsReten.Arredondar(4); + set => _adRemCbsReten = value.Arredondar(4); + } + + /// + /// UB93b - Valor da CBS monofásica sujeita a retenção + /// + [XmlElement(Order = 10)] + public decimal vCBSMonoReten + { + get => _vCbsMonoReten.Arredondar(2); + set => _vCbsMonoReten = value.Arredondar(2); + } + + /// + /// UB95 - Quantidade tributada retida anteriormente + /// + [XmlElement(Order = 11)] + public decimal qBCMonoRet + { + get => _qBcMonoRet.Arredondar(4); + set => _qBcMonoRet = value.Arredondar(4); + } + + /// + /// UB96 - Alíquota ad rem do IBS retido anteriormente + /// + [XmlElement(Order = 12)] + public decimal adRemIBSRet + { + get => _adRemIbsRet.Arredondar(4); + set => _adRemIbsRet = value.Arredondar(4); + } + + /// + /// UB97 - Valor do IBS retido anteriormente + /// + [XmlElement(Order = 13)] + public decimal vIBSMonoRet + { + get => _vIbsMonoRet.Arredondar(2); + set => _vIbsMonoRet = value.Arredondar(2); + } + + /// + /// UB98 - Alíquota ad rem da CBS retida anteriormente + /// + [XmlElement(Order = 14)] + public decimal adRemCBSRet + { + get => _adRemCbsRet.Arredondar(4); + set => _adRemCbsRet = value.Arredondar(4); + } + + /// + /// UB98a - Valor da CBS retida anteriormente + /// + [XmlElement(Order = 15)] + public decimal vCBSMonoRet + { + get => _vCbsMonoRet.Arredondar(2); + set => _vCbsMonoRet = value.Arredondar(2); + } + + /// + /// UB100 - Percentual do diferimento do imposto monofásico + /// + [XmlElement(Order = 16)] + public decimal pDifIBS + { + get => _pDifIbs.Arredondar(4); + set => _pDifIbs = value.Arredondar(4); + } + + /// + /// UB101 - Valor do IBS monofásico diferido + /// + [XmlElement(Order = 17)] + public decimal vIBSMonoDif + { + get => _vIbsMonoDif.Arredondar(2); + set => _vIbsMonoDif = value.Arredondar(2); + } + + /// + /// UB102 - Percentual do diferimento do imposto monofásico + /// + [XmlElement(Order = 18)] + public decimal pDifCBS + { + get => _pDifCbs.Arredondar(4); + set => _pDifCbs = value.Arredondar(4); + } + + /// + /// UB103 - Valor da CBS Monofásica diferida + /// + [XmlElement(Order = 19)] + public decimal vCBSMonoDif + { + get => _vCbsMonoDif.Arredondar(2); + set => _vCbsMonoDif = value.Arredondar(2); + } + + /// + /// UB104 - Total de IBS Monofásico + /// + [XmlElement(Order = 20)] + public decimal vTotIBSMonoItem + { + get => _vTotIbsMonoItem.Arredondar(2); + set => _vTotIbsMonoItem = value.Arredondar(2); + } + + /// + /// UB105 - Total da CBS Monofásica + /// + [XmlElement(Order = 21)] + public decimal vTotCBSMonoItem + { + get => _vTotCbsMonoItem.Arredondar(2); + set => _vTotCbsMonoItem = value.Arredondar(2); + } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTransfCred.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTransfCred.cs new file mode 100644 index 000000000..c1fa75599 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTransfCred.cs @@ -0,0 +1,59 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gTransfCred + { + private decimal _vIbs; + private decimal _vCbs; + + /// + /// UB107 - Valor do IBS a ser transferido + /// + public decimal vIBS + { + get => _vIbs.Arredondar(2); + set => _vIbs = value.Arredondar(2); + } + + /// + /// UB108 - Valor da CBS a ser transferida + /// + public decimal vCBS + { + get => _vCbs.Arredondar(2); + set => _vCbs = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs index 68cd35938..5d56ddf2f 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs @@ -157,4 +157,42 @@ public enum CST [XmlEnum("830")] Cst830 } + + public enum ClassificacaoCreditoPresumidoIbsZfmTipos + { + /// + /// 0 - Sem Crédito Presumido + /// + [Description("Sem Crédito Presumido")] + [XmlEnum("0")] + tpCredPresIbsZfm0, + + /// + /// 1 - Bens de consumo final (55%) + /// + [Description("Bens de consumo final (55%)")] + [XmlEnum("1")] + tpCredPresIbsZfm1, + + /// + /// 2 - Bens de capital (75%) + /// + [Description("Bens de capital (75%)")] + [XmlEnum("2")] + tpCredPresIbsZfm2, + + /// + /// 3 - Bens intermediários (90,25%) + /// + [Description("Bens intermediários (90,25%)")] + [XmlEnum("3")] + tpCredPresIbsZfm3, + + /// + /// 4 - Bens de informática e outros definidos em legislação (100%) + /// + [Description("Bens de informática e outros definidos em legislação (100%)")] + [XmlEnum("4")] + tpCredPresIbsZfm4 + } } \ No newline at end of file From 10e04e22b9e0fa909deb0f6bb41e7a12a924ebee Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Wed, 9 Jul 2025 09:38:15 -0300 Subject: [PATCH 14/85] =?UTF-8?q?refactor:=20Adicionado=20sum=C3=A1rios=20?= =?UTF-8?q?aos=20tipos=20do=20IBSCBS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compartilhado/Tipos/IBSCBSTipos.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs index 5d56ddf2f..ccffe25db 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/Tipos/IBSCBSTipos.cs @@ -36,6 +36,25 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos { + /// + /// 000 - Tributação integral + /// 010 - Tributação com alíquotas uniformes + /// 011 - Tributação com alíquotas uniformes reduzidas + /// 200 - Alíquota reduzida + /// 210 - Redução de alíquota com redutor de base de cálculo + /// 220 - Alíquota fixa + /// 221 - Alíquota fixa rateada + /// 222 - Redução de Base de Cálculo + /// 400 - Isenção + /// 410 - Imunidade e não incidência + /// 510 - Diferimento + /// 550 - Suspensão + /// 620 - Tributação Monofásica + /// 800 - Transferência de crédito + /// 810 - Ajustes + /// 820 - Tributação em declaração de regime específico + /// 830 - Exclusão da Base de Cálculo + /// public enum CST { /// @@ -158,6 +177,13 @@ public enum CST Cst830 } + /// + /// 0 - Sem Crédito Presumido + /// 1 - Bens de consumo final (55%) + /// 2 - Bens de capital (75%) + /// 3 - Bens intermediários (90,25%) + /// 4 - Bens de informática e outros definidos em legislação (100%) + /// public enum ClassificacaoCreditoPresumidoIbsZfmTipos { /// From 62c0cb0b59532ac4afdec36fc6b77222ac784b91 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Wed, 9 Jul 2025 11:35:41 -0300 Subject: [PATCH 15/85] =?UTF-8?q?refactor:=20Refatorado=20localiza=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20classes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs | 1 + .../InformacoesIbsCbs/InformacoesCbs}/gCBS.cs | 4 +--- .../InformacoesIbsCbs/InformacoesCbs}/gCBSCredPres.cs | 2 +- .../InformacoesIbsCbs/{ => InformacoesIbs}/gCredPresIBSZFM.cs | 2 +- .../InformacoesIbsCbs/{ => InformacoesIbs}/gIBSCredPres.cs | 2 +- .../InformacoesIbsCbs/{ => InformacoesIbs}/gIBSMun.cs | 2 +- .../InformacoesIbsCbs/{ => InformacoesIbs}/gIBSUF.cs | 2 +- .../Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs | 2 ++ 8 files changed, 9 insertions(+), 8 deletions(-) rename NFe.Classes/Informacoes/Detalhe/Tributacao/{Federal => Compartilhado/InformacoesIbsCbs/InformacoesCbs}/gCBS.cs (96%) rename NFe.Classes/Informacoes/Detalhe/Tributacao/{Federal => Compartilhado/InformacoesIbsCbs/InformacoesCbs}/gCBSCredPres.cs (97%) rename NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/{ => InformacoesIbs}/gCredPresIBSZFM.cs (98%) rename NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/{ => InformacoesIbs}/gIBSCredPres.cs (99%) rename NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/{ => InformacoesIbs}/gIBSMun.cs (99%) rename NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/{ => InformacoesIbs}/gIBSUF.cs (99%) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs index 6586857ab..3b5670486 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -33,6 +33,7 @@ using System.Xml.Serialization; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs; +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBS.cs similarity index 96% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBS.cs index 1e77f019c..e6efe4d81 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBS.cs @@ -31,9 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs; - -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs { public class gCBS { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBSCredPres.cs similarity index 97% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBSCredPres.cs index 61524cc6b..bce695ab9 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/gCBSCredPres.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesCbs/gCBSCredPres.cs @@ -31,7 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Federal +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs { public class gCBSCredPres { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs similarity index 98% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs index 2ca63d5fc..f3223457a 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gCredPresIBSZFM.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs @@ -33,7 +33,7 @@ using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos; -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs { public class gCredPresIBSZFM { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSCredPres.cs similarity index 99% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSCredPres.cs index d0fac5f1a..04c1b5a9c 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCredPres.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSCredPres.cs @@ -31,7 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs { public class gIBSCredPres { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSMun.cs similarity index 99% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSMun.cs index 801ac5eb8..823d12760 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSMun.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSMun.cs @@ -31,7 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs { public class gIBSMun { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs similarity index 99% rename from NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs rename to NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs index 42ed4492a..58a77d3d5 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSUF.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs @@ -31,7 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs { public class gIBSUF { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index 1f7d37b7e..2d973e9ea 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -31,6 +31,8 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs; +using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs; using NFe.Classes.Informacoes.Detalhe.Tributacao.Federal; namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs From 7c543a1b35f112095f0d9ac047b7a82e20a57c39 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 10 Jul 2025 11:13:21 -0300 Subject: [PATCH 16/85] =?UTF-8?q?refactor:=20Tornado=20anul=C3=A1vel=20cam?= =?UTF-8?q?pos=20n=C3=A3o=20obrigat=C3=B3rios=20da=20reforma=20tribut?= =?UTF-8?q?=C3=A1ria=20do=20grupo=20UB=20e=20removido=20using=20sem=20uso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs | 4 ++-- .../Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs | 1 - NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs index f3223457a..78d280cba 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs @@ -37,7 +37,7 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIb { public class gCredPresIBSZFM { - private decimal _vCredPresIbsZfm; + private decimal? _vCredPresIbsZfm; /// /// UB110 - Tipo de classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM @@ -47,7 +47,7 @@ public class gCredPresIBSZFM /// /// UB111 - Valor do crédito presumido calculado sobre o saldo devedor apurado /// - public decimal vCredPresIBSZFM + public decimal? vCredPresIBSZFM { get => _vCredPresIbsZfm.Arredondar(2); set => _vCredPresIbsZfm = value.Arredondar(2); diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index 2d973e9ea..da6cde1dc 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -33,7 +33,6 @@ using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs; -using NFe.Classes.Informacoes.Detalhe.Tributacao.Federal; namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs index 553a1d3e5..fbb02e6da 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs @@ -40,7 +40,7 @@ public class IS { private decimal _vBcIs; private decimal _pIs; - private decimal _pIsEspec; + private decimal? _pIsEspec; private decimal _qTrib; private decimal _vIs; @@ -80,7 +80,7 @@ public decimal pIS /// UB07 - Alíquota específica por unidade de medida apropriada /// [XmlElement(Order = 5)] - public decimal pISEspec + public decimal? pISEspec { get => _pIsEspec.Arredondar(4); set => _pIsEspec = value.Arredondar(4); From 7bc024cd0874a26d32b295582ca80a85b883105a Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 10 Jul 2025 11:19:44 -0300 Subject: [PATCH 17/85] refactor: Alterado ordem do campo vIBSUF da classe gIBSUF --- .../InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs index 58a77d3d5..d30f66f54 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gIBSUF.cs @@ -47,15 +47,6 @@ public decimal pIBSUF set => _pIbsUf = value.Arredondar(4); } - /// - /// UB35 - Valor do IBS de competência da UF - /// - public decimal vIBSUF - { - get => _vIbsUf.Arredondar(2); - set => _vIbsUf = value.Arredondar(2); - } - /// /// UB21 - Grupo de Informações do Diferimento /// @@ -70,5 +61,14 @@ public decimal vIBSUF /// UB26 - Grupo de informações da redução da alíquota /// public gRed gRed { get; set; } + + /// + /// UB35 - Valor do IBS de competência da UF + /// + public decimal vIBSUF + { + get => _vIbsUf.Arredondar(2); + set => _vIbsUf = value.Arredondar(2); + } } } \ No newline at end of file From 8c08262300daa0df24a07188415b550319d9e8ef Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Tue, 15 Jul 2025 10:36:50 -0300 Subject: [PATCH 18/85] feat: Adicionado grupo VB: Total do item da NF-e --- NFe.Classes/Informacoes/Detalhe/det.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/det.cs b/NFe.Classes/Informacoes/Detalhe/det.cs index 9140db20c..a83ca2b30 100644 --- a/NFe.Classes/Informacoes/Detalhe/det.cs +++ b/NFe.Classes/Informacoes/Detalhe/det.cs @@ -38,6 +38,8 @@ namespace NFe.Classes.Informacoes.Detalhe { public class det { + private decimal _vItem; + /// /// H02 - Número do item do NF /// @@ -69,5 +71,14 @@ public class det /// [XmlElement(nameof(obsItem))] public obsItem obsItem { get; set; } + + /// + /// VB01 - Valor Total do Item da NF-e + /// + public decimal vItem + { + get => _vItem; + set => _vItem = value.Arredondar(2); + } } } \ No newline at end of file From 9fc1992ff0ad3eee4c31521012222c6eb550b4b8 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Tue, 15 Jul 2025 11:32:16 -0300 Subject: [PATCH 19/85] =?UTF-8?q?feat:=20Adicionado=20grupo=20VC:=20Refere?= =?UTF-8?q?nciamento=20de=20item=20de=20outro=20Documento=20Fiscal=20Eletr?= =?UTF-8?q?=C3=B4nico=20-=20DF-e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/Detalhe/DFeReferenciado.cs | 16 ++++++++++++++++ NFe.Classes/Informacoes/Detalhe/det.cs | 9 +++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs diff --git a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs new file mode 100644 index 000000000..a95e99bb6 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs @@ -0,0 +1,16 @@ +namespace NFe.Classes.Informacoes.Detalhe +{ + public class DFeReferenciado + { + + /// + /// VC02 - Chave de acesso do DF-e referenciado + /// + public string chaveAcesso { get; set; } + + /// + /// VC03 - Número do item do documento referenciado. + /// + public int? nItem { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/det.cs b/NFe.Classes/Informacoes/Detalhe/det.cs index a83ca2b30..065ce6854 100644 --- a/NFe.Classes/Informacoes/Detalhe/det.cs +++ b/NFe.Classes/Informacoes/Detalhe/det.cs @@ -38,7 +38,7 @@ namespace NFe.Classes.Informacoes.Detalhe { public class det { - private decimal _vItem; + private decimal? _vItem; /// /// H02 - Número do item do NF @@ -75,10 +75,15 @@ public class det /// /// VB01 - Valor Total do Item da NF-e /// - public decimal vItem + public decimal? vItem { get => _vItem; set => _vItem = value.Arredondar(2); } + + /// + /// VC01 - Documento Fiscal Eletrônico Referenciado + /// + public DFeReferenciado DFeReferenciado { get; set; } } } \ No newline at end of file From e11ecd02bbe11967bdebdf130730071785a271c8 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Tue, 15 Jul 2025 15:31:28 -0300 Subject: [PATCH 20/85] feat: Adicionado grupo W03. Total da NF-e - IBS / CBS / IS --- .../Informacoes/Detalhe/DFeReferenciado.cs | 5 +- NFe.Classes/Informacoes/Detalhe/det.cs | 4 +- NFe.Classes/Informacoes/Total/ISTot.cs | 16 +++++ .../Informacoes/Total/IbsCbs/Cbs/gCBS.cs | 56 ++++++++++++++++ .../Informacoes/Total/IbsCbs/IBSCBSTot.cs | 35 ++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBS.cs | 46 +++++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs | 36 ++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs | 36 ++++++++++ .../Total/IbsCbs/Monofasica/gMono.cs | 66 +++++++++++++++++++ NFe.Classes/Informacoes/Total/total.cs | 24 +++++++ 10 files changed, 319 insertions(+), 5 deletions(-) create mode 100644 NFe.Classes/Informacoes/Total/ISTot.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs create mode 100644 NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs diff --git a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs index a95e99bb6..eca5f6448 100644 --- a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs +++ b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs @@ -2,14 +2,13 @@ namespace NFe.Classes.Informacoes.Detalhe { public class DFeReferenciado { - /// - /// VC02 - Chave de acesso do DF-e referenciado + /// VC02 - Chave de acesso do DF-e referenciado /// public string chaveAcesso { get; set; } /// - /// VC03 - Número do item do documento referenciado. + /// VC03 - Número do item do documento referenciado. /// public int? nItem { get; set; } } diff --git a/NFe.Classes/Informacoes/Detalhe/det.cs b/NFe.Classes/Informacoes/Detalhe/det.cs index 065ce6854..b7f8e4a66 100644 --- a/NFe.Classes/Informacoes/Detalhe/det.cs +++ b/NFe.Classes/Informacoes/Detalhe/det.cs @@ -73,7 +73,7 @@ public class det public obsItem obsItem { get; set; } /// - /// VB01 - Valor Total do Item da NF-e + /// VB01 - Valor Total do Item da NF-e /// public decimal? vItem { @@ -82,7 +82,7 @@ public decimal? vItem } /// - /// VC01 - Documento Fiscal Eletrônico Referenciado + /// VC01 - Documento Fiscal Eletrônico Referenciado /// public DFeReferenciado DFeReferenciado { get; set; } } diff --git a/NFe.Classes/Informacoes/Total/ISTot.cs b/NFe.Classes/Informacoes/Total/ISTot.cs new file mode 100644 index 000000000..35c6c8583 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/ISTot.cs @@ -0,0 +1,16 @@ +namespace NFe.Classes.Informacoes.Total +{ + public class ISTot + { + private decimal _vIS; + + /// + /// W33 - Total do imposto seletivo + /// + public decimal vIS + { + get => _vIS; + set => _vIS = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs new file mode 100644 index 000000000..feb312863 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs @@ -0,0 +1,56 @@ +namespace NFe.Classes.Informacoes.Total.IbsCbs.Cbs +{ + public class gCBS + { + private decimal _vDif; + private decimal _vDevTrib; + private decimal _vCBS; + private decimal _vCredPres; + private decimal _vCredPresCondSus; + + /// + /// W53 - Valor total do diferimento + /// + public decimal vDif + { + get => _vDif; + set => _vDif = value.Arredondar(2); + } + + /// + /// W54 - Valor total de devolução de tributos + /// + public decimal vDevTrib + { + get => _vDevTrib; + set => _vDevTrib = value.Arredondar(2); + } + + /// + /// W56 - Valor total do CBS + /// + public decimal vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + /// + /// W56a - Valor total do crédito presumido + /// + public decimal vCredPres + { + get => _vCredPres; + set => _vCredPres = value.Arredondar(2); + } + + /// + /// W56b - Valor total do crédito presumido em condição suspensiva + /// + public decimal vCredPresCondSus + { + get => _vCredPresCondSus; + set => _vCredPresCondSus = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs new file mode 100644 index 000000000..f5c7c64e2 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs @@ -0,0 +1,35 @@ +using NFe.Classes.Informacoes.Total.IbsCbs.Cbs; +using NFe.Classes.Informacoes.Total.IbsCbs.Ibs; +using NFe.Classes.Informacoes.Total.IbsCbs.Monofasica; + +namespace NFe.Classes.Informacoes.Total.IbsCbs +{ + public class IBSCBSTot + { + private decimal _vBCIBSCBS; + + /// + /// W35 - Valor total da BC do IBS e da CBS + /// + public decimal vBCIBSCBS + { + get => _vBCIBSCBS; + set => _vBCIBSCBS = value.Arredondar(2); + } + + /// + /// W36 - Grupo total do IBS + /// + public gIBS gIBS { get; set; } + + /// + /// W50 - Grupo total do CBS + /// + public gCBS gCBS { get; set; } + + /// + /// W57 - Grupo total da Monofasia + /// + public gMono gMono { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs new file mode 100644 index 000000000..11e113856 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs @@ -0,0 +1,46 @@ +namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs +{ + public class gIBS + { + private decimal _vIBS; + private decimal _vCredPres; + private decimal _vCredPresCondSus; + + /// + /// W37 - Grupo total do IBS da UF + /// + public gIBSUF gIBSUF { get; set; } + + /// + /// W42 - Grupo total do IBS do Município + /// + public gIBSMun gIBSMun { get; set; } + + /// + /// W47 - Valor total do IBS + /// + public decimal vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// W48 - Valor total do crédito presumido + /// + public decimal vCredPres + { + get => _vCredPres; + set => _vCredPres = value.Arredondar(2); + } + + /// + /// W49 - Valor total do crédito presumido em condição suspensiva + /// + public decimal vCredPresCondSus + { + get => _vCredPresCondSus; + set => _vCredPresCondSus = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs new file mode 100644 index 000000000..f639d142f --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs @@ -0,0 +1,36 @@ +namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs +{ + public class gIBSMun + { + private decimal _vDif; + private decimal _vDevTrib; + private decimal _vIBSMun; + + /// + /// W43 - Valor total do diferimento + /// + public decimal vDif + { + get => _vDif; + set => _vDif = value.Arredondar(2); + } + + /// + /// W44 - Valor total de devolução de tributos + /// + public decimal vDevTrib + { + get => _vDevTrib; + set => _vDevTrib = value.Arredondar(2); + } + + /// + /// W46 - Valor total do IBS do Município + /// + public decimal vIBSMun + { + get => _vIBSMun; + set => _vIBSMun = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs new file mode 100644 index 000000000..6291c3d77 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs @@ -0,0 +1,36 @@ +namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs +{ + public class gIBSUF + { + private decimal _vDif; + private decimal _vDevTrib; + private decimal _vIBSUF; + + /// + /// W38 - Valor total do diferimento + /// + public decimal vDif + { + get => _vDif; + set => _vDif = value.Arredondar(2); + } + + /// + /// W39 - Valor total de devolução de tributos + /// + public decimal vDevTrib + { + get => _vDevTrib; + set => _vDevTrib = value.Arredondar(2); + } + + /// + /// W41 - Valor total do IBS da UF + /// + public decimal vIBSUF + { + get => _vIBSUF; + set => _vIBSUF = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs new file mode 100644 index 000000000..9dbe620c1 --- /dev/null +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs @@ -0,0 +1,66 @@ +namespace NFe.Classes.Informacoes.Total.IbsCbs.Monofasica +{ + public class gMono + { + private decimal _vIBSMono; + private decimal _vCBSMono; + private decimal _vIBSMonoReten; + private decimal _vCBSMonoReten; + private decimal _vIBSMonoRet; + private decimal _vCBSMonoRet; + + /// + /// W58 - Total do IBS monofásico + /// + public decimal vIBSMono + { + get => _vIBSMono; + set => _vIBSMono = value.Arredondar(2); + } + + /// + /// W59 - Total da CBS monofásica + /// + public decimal vCBSMono + { + get => _vCBSMono; + set => _vCBSMono = value.Arredondar(2); + } + + /// + /// W59a - Total do IBS monofásico sujeito a retenção + /// + public decimal vIBSMonoReten + { + get => _vIBSMonoReten; + set => _vIBSMonoReten = value.Arredondar(2); + } + + /// + /// W59b - Total da CBS monofásica sujeita a retenção + /// + public decimal vCBSMonoReten + { + get => _vCBSMonoReten; + set => _vCBSMonoReten = value.Arredondar(2); + } + + /// + /// W59c - Total do IBS monofásico retido anteriormente + /// + public decimal vIBSMonoRet + { + get => _vIBSMonoRet; + set => _vIBSMonoRet = value.Arredondar(2); + } + + /// + /// W59d - Total da CBS monofásica retida anteriormente + /// + public decimal vCBSMonoRet + { + get => _vCBSMonoRet; + set => _vCBSMonoRet = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/total.cs b/NFe.Classes/Informacoes/Total/total.cs index 3d444214a..d0c6633d9 100644 --- a/NFe.Classes/Informacoes/Total/total.cs +++ b/NFe.Classes/Informacoes/Total/total.cs @@ -30,10 +30,15 @@ /* http://www.zeusautomacao.com.br/ */ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ + +using NFe.Classes.Informacoes.Total.IbsCbs; + namespace NFe.Classes.Informacoes.Total { public class total { + private decimal _vNFTot; + /// /// W02 - Grupo Totais referentes ao ICMS /// @@ -48,5 +53,24 @@ public class total /// W23 - Grupo Retenções de Tributos /// public retTrib retTrib { get; set; } + + /// + /// W31 - Grupo total do imposto seletivo + /// + public ISTot ISTot { get; set; } + + /// + /// W34 - Totais da NF-e com IBS e CBS + /// + public IBSCBSTot IBSCBSTot {get; set;} + + /// + /// W60 - Valor total da NF-e com IBS / CBS / IS + /// + public decimal vNFTot + { + get => _vNFTot; + set => _vNFTot = value.Arredondar(2); + } } } \ No newline at end of file From 8c6de6be9bee42e2c3ca0ad6de477233b4d54752 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Wed, 16 Jul 2025 11:44:25 -0300 Subject: [PATCH 21/85] =?UTF-8?q?Adicionado=20cabe=C3=A7alhos=20nas=20clas?= =?UTF-8?q?ses=20criadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/Detalhe/DFeReferenciado.cs | 33 +++++++++++++++++++ NFe.Classes/Informacoes/Total/ISTot.cs | 33 +++++++++++++++++++ .../Informacoes/Total/IbsCbs/Cbs/gCBS.cs | 33 +++++++++++++++++++ .../Informacoes/Total/IbsCbs/IBSCBSTot.cs | 33 +++++++++++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBS.cs | 33 +++++++++++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs | 33 +++++++++++++++++++ .../Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs | 33 +++++++++++++++++++ .../Total/IbsCbs/Monofasica/gMono.cs | 33 +++++++++++++++++++ NFe.Classes/Informacoes/Total/total.cs | 8 ++--- 9 files changed, 268 insertions(+), 4 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs index eca5f6448..f0f50287d 100644 --- a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs +++ b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Detalhe { public class DFeReferenciado diff --git a/NFe.Classes/Informacoes/Total/ISTot.cs b/NFe.Classes/Informacoes/Total/ISTot.cs index 35c6c8583..895b1470d 100644 --- a/NFe.Classes/Informacoes/Total/ISTot.cs +++ b/NFe.Classes/Informacoes/Total/ISTot.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total { public class ISTot diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs index feb312863..66c38df5b 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total.IbsCbs.Cbs { public class gCBS diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs index f5c7c64e2..85ad61b45 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + using NFe.Classes.Informacoes.Total.IbsCbs.Cbs; using NFe.Classes.Informacoes.Total.IbsCbs.Ibs; using NFe.Classes.Informacoes.Total.IbsCbs.Monofasica; diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs index 11e113856..e271b440f 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { public class gIBS diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs index f639d142f..3cd1193a5 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { public class gIBSMun diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs index 6291c3d77..719b4bec9 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { public class gIBSUF diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs index 9dbe620c1..19f56c73b 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Monofasica/gMono.cs @@ -1,3 +1,36 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + namespace NFe.Classes.Informacoes.Total.IbsCbs.Monofasica { public class gMono diff --git a/NFe.Classes/Informacoes/Total/total.cs b/NFe.Classes/Informacoes/Total/total.cs index d0c6633d9..beff3c584 100644 --- a/NFe.Classes/Informacoes/Total/total.cs +++ b/NFe.Classes/Informacoes/Total/total.cs @@ -38,7 +38,7 @@ namespace NFe.Classes.Informacoes.Total public class total { private decimal _vNFTot; - + /// /// W02 - Grupo Totais referentes ao ICMS /// @@ -53,16 +53,16 @@ public class total /// W23 - Grupo Retenções de Tributos /// public retTrib retTrib { get; set; } - + /// /// W31 - Grupo total do imposto seletivo /// public ISTot ISTot { get; set; } - + /// /// W34 - Totais da NF-e com IBS e CBS /// - public IBSCBSTot IBSCBSTot {get; set;} + public IBSCBSTot IBSCBSTot { get; set; } /// /// W60 - Valor total da NF-e com IBS / CBS / IS From 8e2c760ecd4b38bdd40d0a3977de482e80d1fc27 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 08:06:44 -0300 Subject: [PATCH 22/85] feat: criado campo para indicador de quitacao do pagamento no detEvento --- NFe.Classes/Servicos/Evento/detEvento.cs | 17 +++++++++++++++++ NFe.Classes/Servicos/Evento/detEventoTipos.cs | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 774547c93..8d9e95c92 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -355,5 +355,22 @@ public bool ShouldSerializetpAutorizacao() #endregion + #region Eventos para a apuração do IBS e da CBSIBS e CBS + + #region Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + + /// + /// P23 - Indicador de efetiva quitação do pagamento integral referente a NFe referenciada + /// + public IndicadorDeQuitacaoDoPagamento? indQuitacao { get; set; } + + public bool ShouldSerializeindQuitacao() + { + return indQuitacao.HasValue; + } + + #endregion + + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index bcf74bd1d..8334cb2ac 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -156,4 +156,18 @@ public enum TipoAutorizacao [XmlEnum("1")] Permite = 1 } + + /// + /// Indicador de efetiva quitação do pagamento integral referente a NFe referenciada. + /// + public enum IndicadorDeQuitacaoDoPagamento + { + /// + /// 1 – Quitado + /// Observação: Outros valores ainda não foram publicados. Revisado: 17/07/2025. Nota técnica base: NT_2025.002_v1.10_RTC_NF-e_IBS_CBS_IS + /// + [Description("Quitado")] + [XmlEnum("1")] + Quitado = 1 + } } \ No newline at end of file From 7a5b75c51e30304afc3c6cdd611db443224f2cb7 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 08:26:37 -0300 Subject: [PATCH 23/85] =?UTF-8?q?feat:=20adicionado=20informa=C3=A7=C3=B5e?= =?UTF-8?q?s=20do=20evento=20informa=C3=A7=C3=A3o=20de=20efetivo=20pagamen?= =?UTF-8?q?to=20integral=20para=20liberar=20cr=C3=A9dito=20presumido=20do?= =?UTF-8?q?=20adquirente=20em=20NFeServicosTipos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 7e1f5a6c9..73f470773 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -156,7 +156,12 @@ public enum ServicoNFe /// NfceAdministracaoCSC, - ConsultaGtin + ConsultaGtin, + + /// + /// Serviço destinado a permitir que o emitente da NFe informe o efetivo pagamento integral a fim de liberar crédito presumido do adquirente + /// + RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente } /// @@ -194,6 +199,7 @@ public enum IndicadorSincronizacao /// 110193 - Cancelamento Insucesso na Entrega da NF-e /// 110750 - Conciliação Financeira da NF-e /// 110751 - Cancelamento Conciliação Financeira da NF-e + /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -277,6 +283,13 @@ public enum NFeTipoEvento [Description("Cancelamento Conciliação Financeira")] [XmlEnum("110751")] TeNfeCancConciliacaoFinanceiraNFe = 110751, + + /// + /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// + [Description("Informação de efetivo pagamento integral para liberar crédito presumido do adquirente")] + [XmlEnum("112110")] + TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = 112110, /// /// 210200 – Confirmação da Operação From afecc28133a1b5ab0d74dc44a041c1272c53f65b Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 10:49:03 -0300 Subject: [PATCH 24/85] =?UTF-8?q?feat:=20adicionado=20vers=C3=A3o=20do=20s?= =?UTF-8?q?ervi=C3=A7o=20do=20evento=20informa=C3=A7=C3=A3o=20de=20efetivo?= =?UTF-8?q?=20pagamento=20integral=20para=20liberar=20cr=C3=A9dito=20presu?= =?UTF-8?q?mido=20do=20adquirente=20em=20ConfiguracaoServico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Utils/ConfiguracaoServico.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 14f4033bc..09a008c37 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -79,7 +79,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoNfeDownloadNf; private VersaoServico _versaoNfceAministracaoCsc; private VersaoServico _versaoConsultaGTIN; - + private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; public ConfiguracaoServico() { @@ -257,6 +257,7 @@ private void AtualizaVersoes() VersaoNfeDownloadNF = obterVersao(ServicoNFe.NfeDownloadNF); VersaoNfceAministracaoCSC = obterVersao(ServicoNFe.NfceAdministracaoCSC); VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); + VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); } } @@ -539,6 +540,21 @@ public VersaoServico VersaoConsultaGTIN OnPropertyChanged(); } } + + /// + /// Versão do serviço RecepcaoEvento para informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// + public VersaoServico VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente + { + get => _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; + set + { + if (value == _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente) return; + + _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = value; + OnPropertyChanged(); + } + } #endregion From a07ce0d7da4e069536e6120b4056cdc29d1902c5 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 10:50:54 -0300 Subject: [PATCH 25/85] =?UTF-8?q?feat:=20implementado=20servi=C3=A7o=20do?= =?UTF-8?q?=20evento=20informa=C3=A7=C3=A3o=20de=20efetivo=20pagamento=20i?= =?UTF-8?q?ntegral=20para=20liberar=20cr=C3=A9dito=20presumido=20do=20adqu?= =?UTF-8?q?irente=20em=20ConfiguracaoServico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicoNfeFactory.cs | 3 ++ NFe.Servicos/ServicosNFe.cs | 61 ++++++++++++++++++++++++++++++ NFe.Utils/Enderecos/Enderecador.cs | 23 +++++++++++ NFe.Utils/Validacao/Validador.cs | 2 + 4 files changed, 89 insertions(+) diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 1f19fce86..6e939db1a 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -284,6 +284,9 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.ConsultaGtin: return new ConsultaGTINApi(url, certificado, cfg.TimeOut); + + case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: + return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } return null; diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 3473a0c3a..19116a6fc 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1195,6 +1195,67 @@ public RetornoRecepcaoEvento RecepcaoEventoCancConciliacaoFinanceira(int idlote, var retorno = RecepcaoEvento(idlote, new List { evento }, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, _cFgServico.VersaoRecepcaoEventoConciliacaoFinanceira, true); return retorno; } + + /// + /// Serviço para evento informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Indicador de efetiva quitação do pagamento integral referente a NFe referenciada + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(int idlote, + int sequenciaEvento, + string cpfcnpj, + string chaveNFe, + IndicadorDeQuitacaoDoPagamento indicadorDeQuitacaoDoPagamento, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dhEvento = null) + { + var versaoServico = ServicoNFe.RecepcaoEventoCancelmento.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); + + var detEvento = new detEvento + { + versao = versaoServico, + descEvento = NFeTipoEvento.TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.Descricao(), + cOrgaoAutor = ufAutor ?? _cFgServico.cUF, + tpAutor = TipoAutor.taEmpresaEmitente, + verAplic = versaoAplicativo ?? "1.0", + indQuitacao = indicadorDeQuitacaoDoPagamento + }; + + var infEvento = new infEventoEnv + { + cOrgao = Estado.SVRS, + tpAmb = _cFgServico.tpAmb, + chNFe = chaveNFe, + dhEvento = dhEvento ?? DateTime.Now, + tpEvento = NFeTipoEvento.TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + nSeqEvento = sequenciaEvento, + verEvento = versaoServico, + detEvento = detEvento + }; + + if (cpfcnpj.Length == 11) + infEvento.CPF = cpfcnpj; + else + infEvento.CNPJ = cpfcnpj; + + var evento = new evento { versao = versaoServico, infEvento = infEvento }; + + var retornoRecepcaoEvento = RecepcaoEvento(idlote, + eventos: new List { evento }, + ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + _cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + assinar: true); + + return retornoRecepcaoEvento; + } /// /// Consulta a situação cadastral, com base na UF/Documento diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 61dfe8355..8a928b8f3 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1658,6 +1658,8 @@ private static List CarregarEnderecosServicos() //Conciliação Financeira NFe addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, TipoAmbiente.Producao, emissao, estado, modelo, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, TipoAmbiente.Homologacao, emissao, estado, modelo, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + + AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(addServico, versao4, emissao, estado, modelo); } } } @@ -1666,7 +1668,26 @@ private static List CarregarEnderecosServicos() return endServico; } + + private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(Action adicionarServico, + VersaoServico[] versaoServico, + TipoEmissao tipoEmissao, + Estado estado, + ModeloDocumento modeloDocumento) + { + AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); + } + private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(Action adicionarServico, + VersaoServico[] versaoServico, + TipoEmissao tipoEmissao, + Estado estado, + ModeloDocumento modeloDocumento) + { + adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + } + /// /// Adiciona as urls dos webservices de todos os estados /// Obs: UFs que disponibilizaram urls diferentes para NFCe, até 04/05/2015: SVRS, AM, MT, PR, RS e SP @@ -1731,6 +1752,8 @@ public static void CarregarEnderecos() return cfgServico.VersaoNfceAministracaoCSC; case ServicoNFe.ConsultaGtin: return cfgServico.VersaoConsultaGTIN; + case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: + return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; } return null; } diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 01375c877..0e0d7751b 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -129,6 +129,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "distDFeInt_v1.01.xsd"; // "distDFeInt_v1.00.xsd"; case ServicoNFe.ConsultaGtin: return "consGTIN_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: + return "e112110_v1.00.xsd"; } return null; } From 0471aa18f253881445cd6ebbc89f4d56470a60e5 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 11:41:41 -0300 Subject: [PATCH 26/85] =?UTF-8?q?feat:=20adicionado=20evento=20informa?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20efetivo=20pagamento=20integral=20para=20li?= =?UTF-8?q?berar=20cr=C3=A9dito=20presumido=20do=20adquirente=20em=20lista?= =?UTF-8?q?Eventos=20em=20ServicosNFe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 19116a6fc..5efd5d28b 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -411,7 +411,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoCancComprovanteEntregaNFe, ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, - ServicoNFe.RecepcaoEventoAtorInteressado + ServicoNFe.RecepcaoEventoAtorInteressado, + ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }; if ( !listaEventos.Contains(servicoEvento)) From c3d4d39b590e8b9db88413d46c42b093ae1a5a06 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 18 Jul 2025 14:34:34 -0300 Subject: [PATCH 27/85] =?UTF-8?q?fix:=20adicionado=20vers=C3=A3o=20do=20ev?= =?UTF-8?q?ento=20informa=C3=A7=C3=A3o=20de=20efetivo=20pagamento=20integr?= =?UTF-8?q?al=20para=20liberar=20cr=C3=A9dito=20presumido=20do=20adquirent?= =?UTF-8?q?e=20em=20Conversao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Utils/Conversao.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 0752a1b22..01496c02a 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -54,7 +54,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS if (servicoNFe == ServicoNFe.RecepcaoEventoCancelmento || servicoNFe == ServicoNFe.RecepcaoEventoCartaCorrecao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDestinatario - || servicoNFe == ServicoNFe.RecepcaoEventoEpec) + || servicoNFe == ServicoNFe.RecepcaoEventoEpec + || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente) { return "1.00"; } From d7bc6502bab65631143f5aa7fe0d0f9318535da2 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 21 Jul 2025 16:32:00 -0300 Subject: [PATCH 28/85] =?UTF-8?q?feat:=20implementado=20campos=20para=20IB?= =?UTF-8?q?S=20e=20CBS=20do=20evento=20solicita=C3=A7=C3=A3o=20de=20Apropr?= =?UTF-8?q?ia=C3=A7=C3=A3o=20de=20cr=C3=A9dito=20presumido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/CreditoPresumido/gCBS.cs | 64 +++++++++++++++++++ .../Informacoes/CreditoPresumido/gCredPres.cs | 62 ++++++++++++++++++ .../Informacoes/CreditoPresumido/gIBS.cs | 64 +++++++++++++++++++ 3 files changed, 190 insertions(+) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCBS.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gIBS.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCBS.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCBS.cs new file mode 100644 index 000000000..a77103f42 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCBS.cs @@ -0,0 +1,64 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido +{ + public class gCBS + { + private decimal _pCredPres; + private decimal _vCredPres; + + /// + /// P31 - Código de Classificação do Crédito presumido, conforme tabela cCredPres (Anexo IV) + /// + public int cCredPres { get; set; } + + /// + /// P32 - Percentual do Crédito Presumido + /// + public decimal pCredPres + { + get => _pCredPres.Arredondar(4); + set => _pCredPres = value.Arredondar(4); + } + + /// + /// P33 - Valor do Crédito Presumido + /// + public decimal vCredPres + { + get => _vCredPres.Arredondar(2); + set => _vCredPres = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs new file mode 100644 index 000000000..8622c93bb --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs @@ -0,0 +1,62 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido +{ + public class gCredPres + { + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado + /// + [XmlAttribute("nitem")] + public int nitem { get; set; } + + /// + /// P25 - Valor do base de cálculo do item + /// + [XmlAttribute("vBC")] + public int vBC { get; set; } + + /// + /// P26 - Grupo de Informações do Crédito Presumido do IBS + /// + public gIBS gIBS { get; set; } + + /// + /// P30 - Grupo de Informações do Crédito Presumido da CBS + /// + public gCBS gCBS { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gIBS.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gIBS.cs new file mode 100644 index 000000000..65a6d3222 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gIBS.cs @@ -0,0 +1,64 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido +{ + public class gIBS + { + private decimal _pCredPres; + private decimal _vCredPres; + + /// + /// P27 - Código de Classificação do Crédito presumido, conforme tabela cCredPres (Anexo IV) + /// + public int cCredPres { get; set; } + + /// + /// P28 - Percentual do Crédito Presumido + /// + public decimal pCredPres + { + get => _pCredPres.Arredondar(4); + set => _pCredPres = value.Arredondar(4); + } + + /// + /// P29 - Valor do Crédito Presumido + /// + public decimal vCredPres + { + get => _vCredPres.Arredondar(2); + set => _vCredPres = value.Arredondar(2); + } + } +} \ No newline at end of file From af3a841523d213067fa8e32909eaf00e0617d495 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 21 Jul 2025 16:33:30 -0300 Subject: [PATCH 29/85] feat: adicionado VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido em ConfiguracaoServico e em Conversao --- NFe.Utils/ConfiguracaoServico.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 09a008c37..831041d17 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -80,6 +80,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoNfceAministracaoCsc; private VersaoServico _versaoConsultaGTIN; private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; + private VersaoServico _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; public ConfiguracaoServico() { @@ -258,6 +259,7 @@ private void AtualizaVersoes() VersaoNfceAministracaoCSC = obterVersao(ServicoNFe.NfceAdministracaoCSC); VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); + VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); } } @@ -555,6 +557,21 @@ public VersaoServico VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralPar OnPropertyChanged(); } } + + /// + /// Versão do serviço RecepcaoEvento para solicitação de apropriação de crédito presumido + /// + public VersaoServico VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido + { + get => _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; + set + { + if (value == _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido) return; + + _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = value; + OnPropertyChanged(); + } + } #endregion From ce9408b036675b6e01097e29056ffc306af5ce3f Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 21 Jul 2025 16:34:39 -0300 Subject: [PATCH 30/85] =?UTF-8?q?feat:=20adicionado=20informa=C3=A7=C3=B5e?= =?UTF-8?q?s=20do=20evento=20solicita=C3=A7=C3=A3o=20de=20Apropria=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20cr=C3=A9dito=20presumido=20em=20NFeServicosTipos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 73f470773..dc0e3b6f2 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -161,7 +161,12 @@ public enum ServicoNFe /// /// Serviço destinado a permitir que o emitente da NFe informe o efetivo pagamento integral a fim de liberar crédito presumido do adquirente /// - RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente + RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + + /// + /// Serviço destinado a evento a ser gerado pelo adquirente em relação às notas fiscais de aquisição de emissão de terceiros e que lhe gerem o direito à apropriação de crédito presumido + /// + RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido } /// @@ -200,6 +205,7 @@ public enum IndicadorSincronizacao /// 110750 - Conciliação Financeira da NF-e /// 110751 - Cancelamento Conciliação Financeira da NF-e /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// 211110 - Solicitação de Apropriação de crédito presumido /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -290,6 +296,13 @@ public enum NFeTipoEvento [Description("Informação de efetivo pagamento integral para liberar crédito presumido do adquirente")] [XmlEnum("112110")] TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = 112110, + + /// + /// 211110 - Solicitação de Apropriação de crédito presumido + /// + [Description("Solicitação de Apropriação de crédito presumido")] + [XmlEnum("211110")] + TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido = 211110, /// /// 210200 – Confirmação da Operação From 2e70157c3e8189225a025edb465279759d431c8c Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 21 Jul 2025 16:38:38 -0300 Subject: [PATCH 31/85] =?UTF-8?q?feat:=20implementado=20evento=20solicita?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20Apropria=C3=A7=C3=A3o=20de=20cr=C3=A9dito?= =?UTF-8?q?=20presumido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 15 ++++++ NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 69 +++++++++++++++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 15 +++++- NFe.Utils/Validacao/Validador.cs | 2 + 6 files changed, 101 insertions(+), 4 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 8d9e95c92..9e38c02e2 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -38,6 +38,7 @@ using DFe.Utils; using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using Shared.NFe.Classes.Servicos.Evento; namespace NFe.Classes.Servicos.Evento @@ -371,6 +372,20 @@ public bool ShouldSerializeindQuitacao() #endregion + #region Solicitação de Apropriação de crédito presumido + + /// + /// P23 - Informações de crédito presumido por item + /// + public List gCredPres { get; set; } + + public bool ShouldSerializegCredPres() + { + return gCredPres != null; + } + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 6e939db1a..827a3e400 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -286,6 +286,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico return new ConsultaGTINApi(url, certificado, cfg.TimeOut); case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: + case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 5efd5d28b..e74fc294c 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -79,6 +79,7 @@ using NFe.Classes.Servicos.ConsultaGtin; using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; namespace NFe.Servicos { @@ -412,7 +413,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoAtorInteressado, - ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente + ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido }; if ( !listaEventos.Contains(servicoEvento)) @@ -1218,7 +1220,7 @@ public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralP string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoCancelmento.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); + var versaoServico = ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); var detEvento = new detEvento { @@ -1257,6 +1259,69 @@ public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralP return retornoRecepcaoEvento; } + + /// + /// Serviço para evento informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// + /// Lista de informações de crédito presumido por item + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(int idlote, + int sequenciaEvento, + string cpfcnpj, + TipoAutor tipoAutor, + string chaveNFe, + List informacoesDeCreditoPresumidoPorItem, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dhEvento = null) + { + var versaoServico = ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); + + var detEvento = new detEvento + { + versao = versaoServico, + descEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido.Descricao(), + cOrgaoAutor = ufAutor ?? _cFgServico.cUF, + tpAutor = tipoAutor, + verAplic = versaoAplicativo ?? "1.0", + gCredPres = informacoesDeCreditoPresumidoPorItem + }; + + var infEvento = new infEventoEnv + { + cOrgao = Estado.SVRS, + tpAmb = _cFgServico.tpAmb, + chNFe = chaveNFe, + dhEvento = dhEvento ?? DateTime.Now, + tpEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido, + nSeqEvento = sequenciaEvento, + verEvento = versaoServico, + detEvento = detEvento + }; + + if (cpfcnpj.Length == 11) + infEvento.CPF = cpfcnpj; + else + infEvento.CNPJ = cpfcnpj; + + var evento = new evento { versao = versaoServico, infEvento = infEvento }; + + var retornoRecepcaoEvento = RecepcaoEvento(idlote, + eventos: new List { evento }, + ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido, + _cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido, + assinar: true); + + return retornoRecepcaoEvento; + } /// /// Consulta a situação cadastral, com base na UF/Documento diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 01496c02a..1519300c9 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -55,7 +55,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoCartaCorrecao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDestinatario || servicoNFe == ServicoNFe.RecepcaoEventoEpec - || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente) + || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente + || servicoNFe == ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 8a928b8f3..250d42993 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1659,7 +1659,7 @@ private static List CarregarEnderecosServicos() addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, TipoAmbiente.Producao, emissao, estado, modelo, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); addServico(new[] { ServicoNFe.RecepcaoEventoConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe }, versao1, TipoAmbiente.Homologacao, emissao, estado, modelo, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(addServico, versao4, emissao, estado, modelo); + AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(addServico, versao1, emissao, estado, modelo); } } } @@ -1676,6 +1676,7 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ModeloDocumento modeloDocumento) { AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); + AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); } private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(Action adicionarServico, @@ -1687,6 +1688,16 @@ private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagame adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); } + + private static void AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(Action adicionarServico, + VersaoServico[] versaoServico, + TipoEmissao tipoEmissao, + Estado estado, + ModeloDocumento modeloDocumento) + { + adicionarServico(new[] { ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + } /// /// Adiciona as urls dos webservices de todos os estados @@ -1754,6 +1765,8 @@ public static void CarregarEnderecos() return cfgServico.VersaoConsultaGTIN; case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; + case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: + return cfgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; } return null; } diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 0e0d7751b..101077413 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -131,6 +131,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "consGTIN_v1.00.xsd"; case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: return "e112110_v1.00.xsd"; + case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: + return "e211110_v1.00.xsd"; } return null; } From 030b50d7baa6b5f5dc56498106d0b9852ffb0b9d Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 21 Jul 2025 17:06:47 -0300 Subject: [PATCH 32/85] =?UTF-8?q?feat:=20implementado=20campos=20para=20o?= =?UTF-8?q?=20evento=20de=20Destina=C3=A7=C3=A3o=20de=20item=20para=20cons?= =?UTF-8?q?umo=20pessoal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/ItemConsumo/gConsumo.cs | 84 +++++++++++++++++++ .../ItemConsumo/gControleEstoque.cs | 54 ++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs new file mode 100644 index 000000000..d9c8f19e0 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -0,0 +1,84 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo +{ + public class gConsumo + { + private decimal _vIbs; + private decimal _vCbs; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” da NF-e de aquisição + /// + [XmlAttribute("nItem")] + public int nItem { get; set; } + + /// + /// P25 - Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + /// + [XmlAttribute("vIBS")] + public decimal vIBS + { + get => _vIbs.Arredondar(2); + set => _vIbs = value.Arredondar(2); + } + + /// + /// P26 - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + /// + [XmlAttribute("vIBS")] + public decimal vCBS + { + get => _vCbs.Arredondar(2); + set => _vCbs = value.Arredondar(2); + } + + /// + /// P27 - Informações de quantidade de estoque influenciadas pelo evento + /// + public gControleEstoque gControleEstoque { get; set; } + + /// + /// P31 - Informar a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal + /// + public string refNF { get; set; } + + /// + /// P32 - Corresponde ao “nItem” da refNFe + /// + public int nItemRefNFe { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs new file mode 100644 index 000000000..23bd84cf9 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs @@ -0,0 +1,54 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo +{ + public class gControleEstoque + { + private decimal _qConsumo; + + /// + /// P28 - Informar a quantidade para consumo de pessoa física + /// + public decimal qConsumo + { + get => _qConsumo.Arredondar(4); + set => _qConsumo = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo gConsumo + /// + public string uConsumo { get; set; } + } +} \ No newline at end of file From 15f90eb0cde4dca5a32b63dc58917d1b698c7c34 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 08:48:05 -0300 Subject: [PATCH 33/85] =?UTF-8?q?wip:=20implementando=20evento=20destina?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20item=20para=20consumo=20pessoal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 17 ++++++++++++++++- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 17 ++++++++++++++++- NFe.Servicos/ServicoNfeFactory.cs | 3 ++- NFe.Servicos/ServicosNFe.cs | 6 +++--- NFe.Utils/ConfiguracaoServico.cs | 2 +- NFe.Utils/Conversao.cs | 2 +- NFe.Utils/Enderecos/Enderecador.cs | 17 ++++++++++++++--- NFe.Utils/Validacao/Validador.cs | 2 +- 8 files changed, 54 insertions(+), 12 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 9e38c02e2..b6182b6dd 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -39,6 +39,7 @@ using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; +using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; using Shared.NFe.Classes.Servicos.Evento; namespace NFe.Classes.Servicos.Evento @@ -356,7 +357,7 @@ public bool ShouldSerializetpAutorizacao() #endregion - #region Eventos para a apuração do IBS e da CBSIBS e CBS + #region Eventos para a apuração do IBS e da CBS #region Informação de efetivo pagamento integral para liberar crédito presumido do adquirente @@ -386,6 +387,20 @@ public bool ShouldSerializegCredPres() #endregion + #region Destinação de item para consumo pessoal + + /// + /// P23 - Informações por item da NF-e de Aquisição. Nota: a quantidade de ocorrências não pode ser maior que a quantidade de itens da NF-e de aquisição + /// + public List gConsumo { get; set; } + + public bool ShouldSerializegConsumo() + { + return gConsumo != null; + } + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index dc0e3b6f2..47847798b 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -166,7 +166,14 @@ public enum ServicoNFe /// /// Serviço destinado a evento a ser gerado pelo adquirente em relação às notas fiscais de aquisição de emissão de terceiros e que lhe gerem o direito à apropriação de crédito presumido /// - RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido + RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, + + /// + /// Permitir ao adquirente informar quando uma aquisição for destinada para o consumo de pessoa física, hipótese em que não haverá direito à + /// apropriação de crédito. Evento a ser registrado após a emissão da nota de bens destinados para uso e consumo pessoal. + /// Uma mesma NFe de aquisição pode receber vários Eventos desse tipo, com nSeqEvento diferentes (eventos cumulativos). + /// + RecepcaoEventoDestinacaoDeItemParaConsumoPessoal } /// @@ -206,6 +213,7 @@ public enum IndicadorSincronizacao /// 110751 - Cancelamento Conciliação Financeira da NF-e /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente /// 211110 - Solicitação de Apropriação de crédito presumido + /// 211120 - Destinação de item para consumo pessoal /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -303,6 +311,13 @@ public enum NFeTipoEvento [Description("Solicitação de Apropriação de crédito presumido")] [XmlEnum("211110")] TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido = 211110, + + /// + /// 211120 - Destinação de item para consumo pessoal + /// + [Description(" Destinação de item para consumo pessoal")] + [XmlEnum("211120")] + TeNfeDestinacaoDeItemParaConsumoPessoal = 211120, /// /// 210200 – Confirmação da Operação diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 827a3e400..4f5d3b534 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -286,7 +286,8 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico return new ConsultaGTINApi(url, certificado, cfg.TimeOut); case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: - case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: + case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index e74fc294c..908a6b2e4 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -414,7 +414,7 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoAtorInteressado, ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, - ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido }; if ( !listaEventos.Contains(servicoEvento)) @@ -1283,7 +1283,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); + var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); var detEvento = new detEvento { @@ -1316,7 +1316,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, - ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, _cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido, assinar: true); diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 831041d17..8db30b507 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -259,7 +259,7 @@ private void AtualizaVersoes() VersaoNfceAministracaoCSC = obterVersao(ServicoNFe.NfceAdministracaoCSC); VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); - VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); + VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); } } diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 1519300c9..c628ae001 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -56,7 +56,7 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDestinatario || servicoNFe == ServicoNFe.RecepcaoEventoEpec || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente - || servicoNFe == ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido) + || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 250d42993..e26f70a27 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1677,6 +1677,7 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A { AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); + AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsumoPessoal(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); } private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(Action adicionarServico, @@ -1695,8 +1696,18 @@ private static void AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoD Estado estado, ModeloDocumento modeloDocumento) { - adicionarServico(new[] { ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - adicionarServico(new[] { ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + } + + private static void AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsumoPessoal(Action adicionarServico, + VersaoServico[] versaoServico, + TipoEmissao tipoEmissao, + Estado estado, + ModeloDocumento modeloDocumento) + { + adicionarServico(new[] { ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); } /// @@ -1765,7 +1776,7 @@ public static void CarregarEnderecos() return cfgServico.VersaoConsultaGTIN; case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; - case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: return cfgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 101077413..17628a1f3 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -131,7 +131,7 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "consGTIN_v1.00.xsd"; case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: return "e112110_v1.00.xsd"; - case ServicoNFe.RecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: return "e211110_v1.00.xsd"; } return null; From 7325701365c3689298e1a1daa94a1e0982682ee7 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 10:44:59 -0300 Subject: [PATCH 34/85] fix: corrigido XmlAttribute do vCBS na classe gConsumo --- NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index d9c8f19e0..d95a26b95 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -59,7 +59,7 @@ public decimal vIBS /// /// P26 - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal /// - [XmlAttribute("vIBS")] + [XmlAttribute("vCBS")] public decimal vCBS { get => _vCbs.Arredondar(2); From 67a01b74b3c2c6361e89022b5f353303caa93b35 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 10:46:19 -0300 Subject: [PATCH 35/85] =?UTF-8?q?refactor:=20remo=C3=A7=C3=A3o=20de=20usin?= =?UTF-8?q?g=20sem=20uso=20e=20ajuste=20na=20descri=C3=A7=C3=A3o=20de=20en?= =?UTF-8?q?umerador?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 1 - NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index b6182b6dd..7c12be606 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -32,7 +32,6 @@ /********************************************************************************/ using System; using System.Collections.Generic; -using System.Runtime.ConstrainedExecution; using System.Xml.Serialization; using DFe.Classes.Entidades; using DFe.Utils; diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 47847798b..6be9f9440 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -315,7 +315,7 @@ public enum NFeTipoEvento /// /// 211120 - Destinação de item para consumo pessoal /// - [Description(" Destinação de item para consumo pessoal")] + [Description("Destinação de item para consumo pessoal")] [XmlEnum("211120")] TeNfeDestinacaoDeItemParaConsumoPessoal = 211120, From d680c6c428633e02b4214ee99495f811935a2473 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 10:46:43 -0300 Subject: [PATCH 36/85] =?UTF-8?q?feat:=20implementado=20evento=20Destina?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20item=20para=20consumo=20pessoal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 67 +++++++++++++++++++++++++++++- NFe.Utils/ConfiguracaoServico.cs | 17 ++++++++ NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 2 + NFe.Utils/Validacao/Validador.cs | 2 + 5 files changed, 89 insertions(+), 2 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 908a6b2e4..88b5a5b18 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -80,6 +80,7 @@ using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; +using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; namespace NFe.Servicos { @@ -414,7 +415,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoCancConciliacaoFinanceiraNFe, ServicoNFe.RecepcaoEventoAtorInteressado, ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, - ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, + ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }; if ( !listaEventos.Contains(servicoEvento)) @@ -1322,6 +1324,69 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres return retornoRecepcaoEvento; } + + /// + /// Serviço para evento destinação de item para consumo pessoal + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// + /// Lista de informações de itens para consumo pessoal + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(int idlote, + int sequenciaEvento, + string cpfcnpj, + TipoAutor tipoAutor, + string chaveNFe, + List informacoesDeItensParaConsumoPessoal, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dhEvento = null) + { + var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal); + + var detEvento = new detEvento + { + versao = versaoServico, + descEvento = NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal.Descricao(), + cOrgaoAutor = ufAutor ?? _cFgServico.cUF, + tpAutor = tipoAutor, + verAplic = versaoAplicativo ?? "1.0", + gConsumo = informacoesDeItensParaConsumoPessoal + }; + + var infEvento = new infEventoEnv + { + cOrgao = Estado.SVRS, + tpAmb = _cFgServico.tpAmb, + chNFe = chaveNFe, + dhEvento = dhEvento ?? DateTime.Now, + tpEvento = NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal, + nSeqEvento = sequenciaEvento, + verEvento = versaoServico, + detEvento = detEvento + }; + + if (cpfcnpj.Length == 11) + infEvento.CPF = cpfcnpj; + else + infEvento.CNPJ = cpfcnpj; + + var evento = new evento { versao = versaoServico, infEvento = infEvento }; + + var retornoRecepcaoEvento = RecepcaoEvento(idlote, + eventos: new List { evento }, + ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, + _cFgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal, + assinar: true); + + return retornoRecepcaoEvento; + } /// /// Consulta a situação cadastral, com base na UF/Documento diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 8db30b507..4eef335c5 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -81,6 +81,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoConsultaGTIN; private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; private VersaoServico _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; + private VersaoServico _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal; public ConfiguracaoServico() { @@ -260,6 +261,7 @@ private void AtualizaVersoes() VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); + VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); } } @@ -572,6 +574,21 @@ public VersaoServico VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido OnPropertyChanged(); } } + + /// + /// Versão do serviço RecepcaoEvento para destinação de item para consumo pessoal + /// + public VersaoServico VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal + { + get => _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + set + { + if (value == _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal) return; + + _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal = value; + OnPropertyChanged(); + } + } #endregion diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index c628ae001..1d24c7e99 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -56,7 +56,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDestinatario || servicoNFe == ServicoNFe.RecepcaoEventoEpec || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente - || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido) + || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido + || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index e26f70a27..3525d5b7f 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1778,6 +1778,8 @@ public static void CarregarEnderecos() return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: return cfgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; + case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: + return cfgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal; } return null; } diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 17628a1f3..55874b9af 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -133,6 +133,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e112110_v1.00.xsd"; case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: return "e211110_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: + return "e211120_v1.00.xsd"; } return null; } From 6394fbdb0fdd7bc4550b1c9c882314f143047051 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 13:58:44 -0300 Subject: [PATCH 37/85] =?UTF-8?q?feat:=20implementado=20evento=20aceite=20?= =?UTF-8?q?de=20d=C3=A9bito=20na=20apura=C3=A7=C3=A3o=20por=20emiss=C3=A3o?= =?UTF-8?q?=20de=20nota=20de=20cr=C3=A9dito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 20 ++++++ NFe.Classes/Servicos/Evento/detEventoTipos.cs | 16 +++++ .../Servicos/Tipos/NFeServicosTipos.cs | 19 +++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 67 ++++++++++++++++++- NFe.Utils/ConfiguracaoServico.cs | 17 +++++ NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 13 ++++ NFe.Utils/Validacao/Validador.cs | 2 + 9 files changed, 152 insertions(+), 6 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 7c12be606..7faf3b6c5 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -400,6 +400,26 @@ public bool ShouldSerializegConsumo() #endregion + #region Aceite de débito na apuração por emissão de nota de crédito + + /// + /// P23 - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida + /// + [XmlIgnore] + public IndicadorAceitacao? indAceitacao { get; set; } + + [XmlAttribute("indAceitacao")] + public int ProxyIndicadorAceitacao + { + get => (int)(indAceitacao ?? 0); + set => indAceitacao = (IndicadorAceitacao?)value; + } + + [XmlIgnore] + public bool ProxyIndicadorAceitacaoSpecified => indAceitacao != null; + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index 8334cb2ac..90f0e63ef 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -170,4 +170,20 @@ public enum IndicadorDeQuitacaoDoPagamento [XmlEnum("1")] Quitado = 1 } + + /// + /// Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida. + /// 0 - Não aceite + /// 1 - Aceite + /// + public enum IndicadorAceitacao + { + [Description("Não aceite")] + [XmlEnum("0")] + NaoAceite = 0, + + [Description("Aceite")] + [XmlEnum("1")] + Aceite = 1 + } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 6be9f9440..a20230b68 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -169,11 +169,17 @@ public enum ServicoNFe RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, /// - /// Permitir ao adquirente informar quando uma aquisição for destinada para o consumo de pessoa física, hipótese em que não haverá direito à + /// Serviço para permitir ao adquirente informar quando uma aquisição for destinada para o consumo de pessoa física, hipótese em que não haverá direito à /// apropriação de crédito. Evento a ser registrado após a emissão da nota de bens destinados para uso e consumo pessoal. /// Uma mesma NFe de aquisição pode receber vários Eventos desse tipo, com nSeqEvento diferentes (eventos cumulativos). /// - RecepcaoEventoDestinacaoDeItemParaConsumoPessoal + RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, + + /// + /// Serviço para Permitir ao destinatário informar que concorda com os valores constantes em nota de crédito emitida pelo fornecedor ou pelo adquirente que + /// serão lançados a débito na apuração assistida de IBS e CBS + /// + RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito } /// @@ -313,11 +319,18 @@ public enum NFeTipoEvento TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido = 211110, /// - /// 211120 - Destinação de item para consumo pessoal + /// 211120 - Destinação de item para consumo pessoal /// [Description("Destinação de item para consumo pessoal")] [XmlEnum("211120")] TeNfeDestinacaoDeItemParaConsumoPessoal = 211120, + + /// + /// 211128 - Aceite de débito na apuração por emissão de nota de crédito + /// + [Description("Aceite de débito na apuração por emissão de nota de crédito")] + [XmlEnum("211128")] + TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = 211128, /// /// 210200 – Confirmação da Operação diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 4f5d3b534..8ce139ceb 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -288,6 +288,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: + case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 88b5a5b18..c7f6ea2fc 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -396,7 +396,7 @@ public RetornoNfeInutilizacao NfeInutilizacao(inutNFe pedInutilizacao) /// /// /// - /// Tipo de serviço do evento: valores válidos: RecepcaoEventoCancelmento, RecepcaoEventoCartaCorrecao, RecepcaoEventoEpec e RecepcaoEventoManifestacaoDestinatario + /// Tipo de serviço do evento: valores válidos: RecepcaoEventoCancelmento, RecepcaoEventoCartaCorrecao, RecepcaoEventoEpec, RecepcaoEventoManifestacaoDestinatario, etc... /// Versão do serviço para o evento /// Retorna um objeto da classe RetornoRecepcaoEvento com o retorno do serviço RecepcaoEvento private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, ServicoNFe servicoEvento, VersaoServico versaoEvento, bool assinar) @@ -416,7 +416,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoAtorInteressado, ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, - ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal + ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, + ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito }; if ( !listaEventos.Contains(servicoEvento)) @@ -1387,6 +1388,68 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in return retornoRecepcaoEvento; } + + /// + /// Serviço para evento aceite de débito na apuração por emissão de nota de crédito + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// + /// Indicador de aceitação de débito na apuração por emissão de nota de crédito + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(int idlote, + int sequenciaEvento, + string cpfcnpj, + string chaveNFe, + IndicadorAceitacao indicadorAceitacao, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dhEvento = null) + { + var versaoServico = ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito); + + var detEvento = new detEvento + { + versao = versaoServico, + descEvento = NFeTipoEvento.TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.Descricao(), + cOrgaoAutor = ufAutor ?? _cFgServico.cUF, + tpAutor = TipoAutor.taEmpresaDestinataria, + verAplic = versaoAplicativo ?? "1.0", + indAceitacao = indicadorAceitacao + }; + + var infEvento = new infEventoEnv + { + cOrgao = Estado.SVRS, + tpAmb = _cFgServico.tpAmb, + chNFe = chaveNFe, + dhEvento = dhEvento ?? DateTime.Now, + tpEvento = NFeTipoEvento.TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + nSeqEvento = sequenciaEvento, + verEvento = versaoServico, + detEvento = detEvento + }; + + if (cpfcnpj.Length == 11) + infEvento.CPF = cpfcnpj; + else + infEvento.CNPJ = cpfcnpj; + + var evento = new evento { versao = versaoServico, infEvento = infEvento }; + + var retornoRecepcaoEvento = RecepcaoEvento(idlote, + eventos: new List { evento }, + ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + _cFgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + assinar: true); + + return retornoRecepcaoEvento; + } /// /// Consulta a situação cadastral, com base na UF/Documento diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 4eef335c5..2422cb4aa 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -82,6 +82,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; private VersaoServico _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; private VersaoServico _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + private VersaoServico _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; public ConfiguracaoServico() { @@ -262,6 +263,7 @@ private void AtualizaVersoes() VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); + VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = obterVersao(ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito); } } @@ -589,6 +591,21 @@ public VersaoServico VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal OnPropertyChanged(); } } + + /// + /// Versão do serviço RecepcaoEvento para aceite de débito na apuração por emissão de nota de crédito + /// + public VersaoServico VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + { + get => _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + set + { + if (value == _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito) return; + + _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = value; + OnPropertyChanged(); + } + } #endregion diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 1d24c7e99..c40305564 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -57,7 +57,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoEpec || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido - || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal) + || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal + || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 3525d5b7f..2c27f687d 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1678,6 +1678,7 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsumoPessoal(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); + AdicionarEnderecosDoServicoDoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); } private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(Action adicionarServico, @@ -1710,6 +1711,16 @@ private static void AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsu adicionarServico(new[] { ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); } + private static void AdicionarEnderecosDoServicoDoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(Action adicionarServico, + VersaoServico[] versaoServico, + TipoEmissao tipoEmissao, + Estado estado, + ModeloDocumento modeloDocumento) + { + adicionarServico(new[] { ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + adicionarServico(new[] { ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + } + /// /// Adiciona as urls dos webservices de todos os estados /// Obs: UFs que disponibilizaram urls diferentes para NFCe, até 04/05/2015: SVRS, AM, MT, PR, RS e SP @@ -1780,6 +1791,8 @@ public static void CarregarEnderecos() return cfgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: return cfgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: + return cfgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; } return null; } diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 55874b9af..83bc320b3 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -135,6 +135,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211110_v1.00.xsd"; case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: return "e211120_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: + return "e211128_v1.00.xsd"; } return null; } From 85e8ef2349f44d8f24f5db3d5f194ca9215b5cb2 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 14:02:26 -0300 Subject: [PATCH 38/85] =?UTF-8?q?refactor:=20refatorando=20nomes=20das=20p?= =?UTF-8?q?ropriedades=20de=20vers=C3=A3o=20para=20inserir=20o=20nome=20"E?= =?UTF-8?q?vento"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 8 ++++---- NFe.Utils/ConfiguracaoServico.cs | 24 ++++++++++++------------ NFe.Utils/Enderecos/Enderecador.cs | 4 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index c7f6ea2fc..0c1f503c4 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1286,7 +1286,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido); + var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); var detEvento = new detEvento { @@ -1320,7 +1320,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, - _cFgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido, + _cFgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, assinar: true); return retornoRecepcaoEvento; @@ -1349,7 +1349,7 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal); + var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal); var detEvento = new detEvento { @@ -1383,7 +1383,7 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, - _cFgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal, + _cFgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal, assinar: true); return retornoRecepcaoEvento; diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 2422cb4aa..e9753ce12 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -80,8 +80,8 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoNfceAministracaoCsc; private VersaoServico _versaoConsultaGTIN; private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; - private VersaoServico _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; - private VersaoServico _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + private VersaoServico _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; + private VersaoServico _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; private VersaoServico _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; public ConfiguracaoServico() @@ -261,8 +261,8 @@ private void AtualizaVersoes() VersaoNfceAministracaoCSC = obterVersao(ServicoNFe.NfceAdministracaoCSC); VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); - VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); - VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); + VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); + VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = obterVersao(ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito); } } @@ -565,14 +565,14 @@ public VersaoServico VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralPar /// /// Versão do serviço RecepcaoEvento para solicitação de apropriação de crédito presumido /// - public VersaoServico VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido + public VersaoServico VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido { - get => _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; + get => _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; set { - if (value == _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido) return; + if (value == _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido) return; - _versaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido = value; + _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido = value; OnPropertyChanged(); } } @@ -580,14 +580,14 @@ public VersaoServico VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido /// /// Versão do serviço RecepcaoEvento para destinação de item para consumo pessoal /// - public VersaoServico VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal + public VersaoServico VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal { - get => _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + get => _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; set { - if (value == _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal) return; + if (value == _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal) return; - _versaoRecepcaoDestinacaoDeItemParaConsumoPessoal = value; + _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal = value; OnPropertyChanged(); } } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 2c27f687d..31badfb15 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1788,9 +1788,9 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: - return cfgServico.VersaoRecepcaoSolicitacaoDeApropriacaoDeCreditoPresumido; + return cfgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: - return cfgServico.VersaoRecepcaoDestinacaoDeItemParaConsumoPessoal; + return cfgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: return cfgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; } From 018918921e239b8ad836310dfc7b380dc832fbb7 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 14:43:19 -0300 Subject: [PATCH 39/85] =?UTF-8?q?refactor:=20unificado=20em=20uma=20vers?= =?UTF-8?q?=C3=A3o=20apenas=20os=20eventos=20do=20IBS=20e=20CBS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 16 +++--- NFe.Utils/ConfiguracaoServico.cs | 79 ++++++------------------------ NFe.Utils/Enderecos/Enderecador.cs | 5 +- 3 files changed, 23 insertions(+), 77 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 0c1f503c4..0b2f4d235 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1223,7 +1223,7 @@ public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralP string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); + var versaoServico = ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); var detEvento = new detEvento { @@ -1257,7 +1257,7 @@ public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralP var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, - _cFgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, assinar: true); return retornoRecepcaoEvento; @@ -1286,7 +1286,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); + var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); var detEvento = new detEvento { @@ -1320,7 +1320,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, - _cFgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, + _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, assinar: true); return retornoRecepcaoEvento; @@ -1349,7 +1349,7 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal); + var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); var detEvento = new detEvento { @@ -1383,7 +1383,7 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, - _cFgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal, + _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, assinar: true); return retornoRecepcaoEvento; @@ -1411,7 +1411,7 @@ public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeN string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito); + var versaoServico = ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); var detEvento = new detEvento { @@ -1445,7 +1445,7 @@ public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeN var retornoRecepcaoEvento = RecepcaoEvento(idlote, eventos: new List { evento }, ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, - _cFgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, assinar: true); return retornoRecepcaoEvento; diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index e9753ce12..64834ae0b 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -79,10 +79,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoNfeDownloadNf; private VersaoServico _versaoNfceAministracaoCsc; private VersaoServico _versaoConsultaGTIN; - private VersaoServico _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; - private VersaoServico _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; - private VersaoServico _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; - private VersaoServico _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + private VersaoServico _versaoRecepcaoEventosDeApuracaoDoIbsECbs; public ConfiguracaoServico() { @@ -231,14 +228,14 @@ private void AtualizaVersoes() { if (!_defineVersaoServicosAutomaticamente) return; - var enderecosMaisecentes = - Enderecador.ObterEnderecoServicosMaisRecentes(VersaoLayout, cUF, tpAmb, ModeloDocumento, tpEmis); + var enderecosMaisRecentes = Enderecador.ObterEnderecoServicosMaisRecentes(VersaoLayout, cUF, tpAmb, ModeloDocumento, tpEmis); - var obterVersao = new Func(servico => - enderecosMaisecentes.Where(n => n.ServicoNFe == servico).Select(n => n.VersaoServico).DefaultIfEmpty(VersaoServico.Versao100).FirstOrDefault()); - - - if (enderecosMaisecentes.Any()) + var obterVersao = new Func(servico => enderecosMaisRecentes.Where(n => n.ServicoNFe == servico) + .Select(n => n.VersaoServico) + .DefaultIfEmpty(VersaoServico.Versao100) + .FirstOrDefault()); + + if (enderecosMaisRecentes.Any()) { VersaoRecepcaoEventoCceCancelamento = obterVersao(ServicoNFe.RecepcaoEventoCancelmento); VersaoRecepcaoEventoInsucessoEntrega = obterVersao(ServicoNFe.RecepcaoEventoInsucessoEntregaNFe); @@ -260,10 +257,7 @@ private void AtualizaVersoes() VersaoNfeDownloadNF = obterVersao(ServicoNFe.NfeDownloadNF); VersaoNfceAministracaoCSC = obterVersao(ServicoNFe.NfceAdministracaoCSC); VersaoConsultaGTIN = obterVersao(ServicoNFe.ConsultaGtin); - VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = obterVersao(ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente); - VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido = obterVersao(ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido); - VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); - VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = obterVersao(ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito); + VersaoRecepcaoEventosDeApuracaoDoIbsECbs = obterVersao(ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal); } } @@ -548,61 +542,16 @@ public VersaoServico VersaoConsultaGTIN } /// - /// Versão do serviço RecepcaoEvento para informação de efetivo pagamento integral para liberar crédito presumido do adquirente - /// - public VersaoServico VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente - { - get => _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; - set - { - if (value == _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente) return; - - _versaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = value; - OnPropertyChanged(); - } - } - - /// - /// Versão do serviço RecepcaoEvento para solicitação de apropriação de crédito presumido - /// - public VersaoServico VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido - { - get => _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; - set - { - if (value == _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido) return; - - _versaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido = value; - OnPropertyChanged(); - } - } - - /// - /// Versão do serviço RecepcaoEvento para destinação de item para consumo pessoal - /// - public VersaoServico VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal - { - get => _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; - set - { - if (value == _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal) return; - - _versaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal = value; - OnPropertyChanged(); - } - } - - /// - /// Versão do serviço RecepcaoEvento para aceite de débito na apuração por emissão de nota de crédito + /// Versão do serviço RecepcaoEvento para os eventos de apuração do IBS e da CBS /// - public VersaoServico VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + public VersaoServico VersaoRecepcaoEventosDeApuracaoDoIbsECbs { - get => _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + get => _versaoRecepcaoEventosDeApuracaoDoIbsECbs; set { - if (value == _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito) return; + if (value == _versaoRecepcaoEventosDeApuracaoDoIbsECbs) return; - _versaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = value; + _versaoRecepcaoEventosDeApuracaoDoIbsECbs = value; OnPropertyChanged(); } } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 31badfb15..d6ff0a025 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1786,13 +1786,10 @@ public static void CarregarEnderecos() case ServicoNFe.ConsultaGtin: return cfgServico.VersaoConsultaGTIN; case ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente: - return cfgServico.VersaoRecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: - return cfgServico.VersaoRecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: - return cfgServico.VersaoRecepcaoEventoDestinacaoDeItemParaConsumoPessoal; case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: - return cfgServico.VersaoRecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; } From c0d1d51a661bf3ee4327de6a18cca7591fa8862c Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 14:54:28 -0300 Subject: [PATCH 40/85] =?UTF-8?q?refactor:=20removido=20sum=C3=A1rio=20n?= =?UTF-8?q?=C3=A3o=20aplic=C3=A1vel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 0b2f4d235..54a6abce8 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1395,7 +1395,6 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in /// Nº do lote /// sequencia do evento /// - /// /// /// Indicador de aceitação de débito na apuração por emissão de nota de crédito /// From 2886191980a131295c22d906c38b17061d091e94 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 16:47:36 -0300 Subject: [PATCH 41/85] =?UTF-8?q?refactor:=20refatorado=20m=C3=A9todo=20se?= =?UTF-8?q?=20recep=C3=A7=C3=A3o=20dos=20eventos=20para=20reduzir=20duplic?= =?UTF-8?q?idade=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 260 ++++++++++++++++-------------------- 1 file changed, 116 insertions(+), 144 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 54a6abce8..c8d1d8684 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -75,7 +75,6 @@ using NFe.Classes; using Shared.DFe.Utils; using FuncoesXml = DFe.Utils.FuncoesXml; -using System.Xml.Linq; using NFe.Classes.Servicos.ConsultaGtin; using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; @@ -1205,60 +1204,36 @@ public RetornoRecepcaoEvento RecepcaoEventoCancConciliacaoFinanceira(int idlote, /// /// Serviço para evento informação de efetivo pagamento integral para liberar crédito presumido do adquirente /// - /// Nº do lote + /// Nº do lote /// sequencia do evento - /// + /// /// /// Indicador de efetiva quitação do pagamento integral referente a NFe referenciada /// /// - /// + /// /// - public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(int idlote, + public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(int idLote, int sequenciaEvento, - string cpfcnpj, + string cpfCnpj, string chaveNFe, IndicadorDeQuitacaoDoPagamento indicadorDeQuitacaoDoPagamento, Estado? ufAutor = null, string versaoAplicativo = null, - DateTimeOffset? dhEvento = null) + DateTimeOffset? dataHoraEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); - var detEvento = new detEvento - { - versao = versaoServico, - descEvento = NFeTipoEvento.TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente.Descricao(), - cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = TipoAutor.taEmpresaEmitente, - verAplic = versaoAplicativo ?? "1.0", - indQuitacao = indicadorDeQuitacaoDoPagamento - }; + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaEmitente); + detalhesEvento.indQuitacao = indicadorDeQuitacaoDoPagamento; - var infEvento = new infEventoEnv - { - cOrgao = Estado.SVRS, - tpAmb = _cFgServico.tpAmb, - chNFe = chaveNFe, - dhEvento = dhEvento ?? DateTime.Now, - tpEvento = NFeTipoEvento.TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, - nSeqEvento = sequenciaEvento, - verEvento = versaoServico, - detEvento = detEvento - }; + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); - if (cpfcnpj.Length == 11) - infEvento.CPF = cpfcnpj; - else - infEvento.CNPJ = cpfcnpj; - - var evento = new evento { versao = versaoServico, infEvento = infEvento }; - - var retornoRecepcaoEvento = RecepcaoEvento(idlote, - eventos: new List { evento }, - ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, - _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, - assinar: true); + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); return retornoRecepcaoEvento; } @@ -1266,62 +1241,38 @@ public RetornoRecepcaoEvento RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralP /// /// Serviço para evento informação de efetivo pagamento integral para liberar crédito presumido do adquirente /// - /// Nº do lote + /// Nº do lote /// sequencia do evento - /// + /// /// /// /// Lista de informações de crédito presumido por item /// /// - /// + /// /// - public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(int idlote, + public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(int idLote, int sequenciaEvento, - string cpfcnpj, + string cpfCnpj, TipoAutor tipoAutor, string chaveNFe, List informacoesDeCreditoPresumidoPorItem, Estado? ufAutor = null, string versaoAplicativo = null, - DateTimeOffset? dhEvento = null) + DateTimeOffset? dataHoraEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); - var detEvento = new detEvento - { - versao = versaoServico, - descEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido.Descricao(), - cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = tipoAutor, - verAplic = versaoAplicativo ?? "1.0", - gCredPres = informacoesDeCreditoPresumidoPorItem - }; + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, tipoAutor); + detalhesEvento.gCredPres = informacoesDeCreditoPresumidoPorItem; - var infEvento = new infEventoEnv - { - cOrgao = Estado.SVRS, - tpAmb = _cFgServico.tpAmb, - chNFe = chaveNFe, - dhEvento = dhEvento ?? DateTime.Now, - tpEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoPresumido, - nSeqEvento = sequenciaEvento, - verEvento = versaoServico, - detEvento = detEvento - }; - - if (cpfcnpj.Length == 11) - infEvento.CPF = cpfcnpj; - else - infEvento.CNPJ = cpfcnpj; - - var evento = new evento { versao = versaoServico, infEvento = infEvento }; + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); - var retornoRecepcaoEvento = RecepcaoEvento(idlote, - eventos: new List { evento }, - ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, - _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, - assinar: true); + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); return retornoRecepcaoEvento; } @@ -1329,62 +1280,38 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPres /// /// Serviço para evento destinação de item para consumo pessoal /// - /// Nº do lote + /// Nº do lote /// sequencia do evento - /// + /// /// /// /// Lista de informações de itens para consumo pessoal /// /// - /// + /// /// - public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(int idlote, + public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(int idLote, int sequenciaEvento, - string cpfcnpj, + string cpfCnpj, TipoAutor tipoAutor, string chaveNFe, List informacoesDeItensParaConsumoPessoal, Estado? ufAutor = null, string versaoAplicativo = null, - DateTimeOffset? dhEvento = null) + DateTimeOffset? dataHoraEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); - - var detEvento = new detEvento - { - versao = versaoServico, - descEvento = NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal.Descricao(), - cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = tipoAutor, - verAplic = versaoAplicativo ?? "1.0", - gConsumo = informacoesDeItensParaConsumoPessoal - }; + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); - var infEvento = new infEventoEnv - { - cOrgao = Estado.SVRS, - tpAmb = _cFgServico.tpAmb, - chNFe = chaveNFe, - dhEvento = dhEvento ?? DateTime.Now, - tpEvento = NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal, - nSeqEvento = sequenciaEvento, - verEvento = versaoServico, - detEvento = detEvento - }; - - if (cpfcnpj.Length == 11) - infEvento.CPF = cpfcnpj; - else - infEvento.CNPJ = cpfcnpj; + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, tipoAutor); + detalhesEvento.gConsumo = informacoesDeItensParaConsumoPessoal; - var evento = new evento { versao = versaoServico, infEvento = infEvento }; + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); - var retornoRecepcaoEvento = RecepcaoEvento(idlote, - eventos: new List { evento }, - ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, - _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, - assinar: true); + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); return retornoRecepcaoEvento; } @@ -1392,61 +1319,106 @@ public RetornoRecepcaoEvento RecepcaoEventoDestinacaoDeItemParaConsumoPessoal(in /// /// Serviço para evento aceite de débito na apuração por emissão de nota de crédito /// - /// Nº do lote + /// Nº do lote /// sequencia do evento - /// + /// /// /// Indicador de aceitação de débito na apuração por emissão de nota de crédito /// /// - /// + /// /// - public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(int idlote, + public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(int idLote, int sequenciaEvento, - string cpfcnpj, + string cpfCnpj, string chaveNFe, IndicadorAceitacao indicadorAceitacao, Estado? ufAutor = null, string versaoAplicativo = null, - DateTimeOffset? dhEvento = null) + DateTimeOffset? dataHoraEvento = null) { - var versaoServico = ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.VersaoServicoParaString(_cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs); + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaDestinataria); + detalheEvento.indAceitacao = indicadorAceitacao; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + + private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) + { var detEvento = new detEvento { versao = versaoServico, - descEvento = NFeTipoEvento.TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito.Descricao(), - cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = TipoAutor.taEmpresaDestinataria, - verAplic = versaoAplicativo ?? "1.0", - indAceitacao = indicadorAceitacao + descEvento = nfeTipoEvento.Descricao(), + cOrgaoAutor = cOrgaoAutor ?? _cFgServico.cUF, + tpAutor = tipoAutor, + verAplic = versaoAplicativo ?? "1.0" }; + return detEvento; + } + + private infEventoEnv ObterInformacoesEventoEnv(int sequenciaEvento, + string chaveNFe, + string cpfCnpj, + string versaoServico, + Estado cOrgao, + DateTimeOffset? dhEvento, + NFeTipoEvento nfeTipoEvento, + detEvento detalheEvento) + { var infEvento = new infEventoEnv { - cOrgao = Estado.SVRS, + cOrgao = cOrgao, tpAmb = _cFgServico.tpAmb, chNFe = chaveNFe, dhEvento = dhEvento ?? DateTime.Now, - tpEvento = NFeTipoEvento.TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + tpEvento = nfeTipoEvento, nSeqEvento = sequenciaEvento, verEvento = versaoServico, - detEvento = detEvento + detEvento = detalheEvento }; - - if (cpfcnpj.Length == 11) - infEvento.CPF = cpfcnpj; + + if (cpfCnpj.Length == 11) + infEvento.CPF = cpfCnpj; else - infEvento.CNPJ = cpfcnpj; + infEvento.CNPJ = cpfCnpj; - var evento = new evento { versao = versaoServico, infEvento = infEvento }; + return infEvento; + } + + private evento ObterEvento(string versaoServico, infEventoEnv informacoesEventoEnv) + { + var evento = new evento + { + versao = versaoServico, + infEvento = informacoesEventoEnv + }; + + return evento; + } + + private RetornoRecepcaoEvento EnviarEObterRetornoRecepcaoEvento(int idLote, ServicoNFe servicoNfe, VersaoServico versaoServico, bool deveAssinar, params evento[] eventos) + { + var retornoRecepcaoEvento = RecepcaoEvento(idLote, + eventos.ToList(), + servicoNfe, + versaoServico, + assinar: deveAssinar); - var retornoRecepcaoEvento = RecepcaoEvento(idlote, - eventos: new List { evento }, - ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, - _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs, - assinar: true); - return retornoRecepcaoEvento; } From 26e9a86ca385523676ec4f3f4cdc9fb87e09264d Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 22 Jul 2025 17:15:02 -0300 Subject: [PATCH 42/85] =?UTF-8?q?refactor:=20refatorado=20modo=20de=20regi?= =?UTF-8?q?stro=20de=20endere=C3=A7os=20para=20os=20eventos=20do=20IBS=20e?= =?UTF-8?q?=20CBS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Utils/Enderecos/Enderecador.cs | 65 ++++++++++-------------------- 1 file changed, 21 insertions(+), 44 deletions(-) diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index d6ff0a025..876b6945b 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1675,50 +1675,27 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A Estado estado, ModeloDocumento modeloDocumento) { - AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); - AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); - AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsumoPessoal(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); - AdicionarEnderecosDoServicoDoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(adicionarServico, versaoServico, tipoEmissao, estado, modeloDocumento); - } - - private static void AdicionarEnderecosDoServicoDoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente(Action adicionarServico, - VersaoServico[] versaoServico, - TipoEmissao tipoEmissao, - Estado estado, - ModeloDocumento modeloDocumento) - { - adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - adicionarServico(new[] { ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - } - - private static void AdicionarEnderecosDoServicoDoEventoSolicitacaoDeApropriacaoDeCreditoPresumido(Action adicionarServico, - VersaoServico[] versaoServico, - TipoEmissao tipoEmissao, - Estado estado, - ModeloDocumento modeloDocumento) - { - adicionarServico(new[] { ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - adicionarServico(new[] { ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - } - - private static void AdicionarEnderecosDoServicoDoEventoDestinacaoDeItemParaConsumoPessoal(Action adicionarServico, - VersaoServico[] versaoServico, - TipoEmissao tipoEmissao, - Estado estado, - ModeloDocumento modeloDocumento) - { - adicionarServico(new[] { ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - adicionarServico(new[] { ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - } - - private static void AdicionarEnderecosDoServicoDoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito(Action adicionarServico, - VersaoServico[] versaoServico, - TipoEmissao tipoEmissao, - Estado estado, - ModeloDocumento modeloDocumento) - { - adicionarServico(new[] { ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito }, versaoServico, TipoAmbiente.Producao, tipoEmissao, estado, modeloDocumento, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - adicionarServico(new[] { ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito }, versaoServico, TipoAmbiente.Homologacao, tipoEmissao, estado, modeloDocumento, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); + var servicosRecepcaoEventoApuracaoDoIbsCbs = new[] + { + ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, + ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, + ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + }; + + var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary + { + { TipoAmbiente.Producao, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx" }, + { TipoAmbiente.Homologacao, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx" } + }; + + foreach (var evento in servicosRecepcaoEventoApuracaoDoIbsCbs) + { + foreach (var ambiente in urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs.Keys) + { + adicionarServico(new[] { evento }, versaoServico, ambiente, tipoEmissao, estado, modeloDocumento, urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs[ambiente]); + } + } } /// From d35a10c5e1bf136ec3185f8c2281da18d7d1b836 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Wed, 30 Jul 2025 16:49:46 -0300 Subject: [PATCH 43/85] =?UTF-8?q?fix:=20renomeada=20classes=20com=20nomes?= =?UTF-8?q?=20iguais=20para=20corre=C3=A7=C3=A3o=20de=20erros=20na=20seria?= =?UTF-8?q?liza=C3=A7=C3=A3o=20do=20XML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Total/IbsCbs/Cbs/{gCBS.cs => gCBSTotal.cs} | 2 +- NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs | 4 +++- NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs | 8 ++++++-- .../Total/IbsCbs/Ibs/{gIBSMun.cs => gIBSMunTotal.cs} | 2 +- .../Total/IbsCbs/Ibs/{gIBSUF.cs => gIBSUFTotal.cs} | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) rename NFe.Classes/Informacoes/Total/IbsCbs/Cbs/{gCBS.cs => gCBSTotal.cs} (99%) rename NFe.Classes/Informacoes/Total/IbsCbs/Ibs/{gIBSMun.cs => gIBSMunTotal.cs} (99%) rename NFe.Classes/Informacoes/Total/IbsCbs/Ibs/{gIBSUF.cs => gIBSUFTotal.cs} (99%) diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBSTotal.cs similarity index 99% rename from NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs rename to NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBSTotal.cs index 66c38df5b..7aaebe31f 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBS.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Cbs/gCBSTotal.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Informacoes.Total.IbsCbs.Cbs { - public class gCBS + public class gCBSTotal { private decimal _vDif; private decimal _vDevTrib; diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs index 85ad61b45..766516d5b 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/IBSCBSTot.cs @@ -31,6 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using System.Xml.Serialization; using NFe.Classes.Informacoes.Total.IbsCbs.Cbs; using NFe.Classes.Informacoes.Total.IbsCbs.Ibs; using NFe.Classes.Informacoes.Total.IbsCbs.Monofasica; @@ -58,7 +59,8 @@ public decimal vBCIBSCBS /// /// W50 - Grupo total do CBS /// - public gCBS gCBS { get; set; } + [XmlElement("gCBS")] + public gCBSTotal gCBS { get; set; } /// /// W57 - Grupo total da Monofasia diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs index e271b440f..67496f123 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBS.cs @@ -31,6 +31,8 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using System.Xml.Serialization; + namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { public class gIBS @@ -42,12 +44,14 @@ public class gIBS /// /// W37 - Grupo total do IBS da UF /// - public gIBSUF gIBSUF { get; set; } + [XmlElement("gIBSUF")] + public gIBSUFTotal gIBSUF { get; set; } /// /// W42 - Grupo total do IBS do Município /// - public gIBSMun gIBSMun { get; set; } + [XmlElement("gIBSMun")] + public gIBSMunTotal gIBSMun { get; set; } /// /// W47 - Valor total do IBS diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMunTotal.cs similarity index 99% rename from NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs rename to NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMunTotal.cs index 3cd1193a5..833da3761 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMun.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSMunTotal.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { - public class gIBSMun + public class gIBSMunTotal { private decimal _vDif; private decimal _vDevTrib; diff --git a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUFTotal.cs similarity index 99% rename from NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs rename to NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUFTotal.cs index 719b4bec9..e007530b6 100644 --- a/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUF.cs +++ b/NFe.Classes/Informacoes/Total/IbsCbs/Ibs/gIBSUFTotal.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Informacoes.Total.IbsCbs.Ibs { - public class gIBSUF + public class gIBSUFTotal { private decimal _vDif; private decimal _vDevTrib; From 5fd984792186c195d13ffd22f687bfb9485e4df0 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Wed, 30 Jul 2025 16:52:37 -0300 Subject: [PATCH 44/85] =?UTF-8?q?fix:=20alterado=20tipo=20das=20propriedad?= =?UTF-8?q?es=20de=20c=C3=B3digos=20da=20classifica=C3=A7=C3=A3o=20tribut?= =?UTF-8?q?=C3=A1ria,=20de=20inteiro=20para=20string,=20para=20evitar=20re?= =?UTF-8?q?mo=C3=A7=C3=A3o=20dos=20zeros=20a=20esquerda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs | 2 +- .../Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs | 2 +- NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs index 3b5670486..019f93672 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/IBSCBS.cs @@ -50,7 +50,7 @@ public class IBSCBS /// UB14 - Código de Classificação Tributária do IBS e CBS /// [XmlElement(Order = 2)] - public int cClassTrib { get; set; } + public string cClassTrib { get; set; } /// /// UB15 - Grupo de Informações do IBS e da CBS diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs index f543d5402..c95f4c6e5 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribRegular.cs @@ -52,7 +52,7 @@ public class gTribRegular /// /// UB70 - Código de Classificação Tributária do IBS e CBS /// - public int cClassTribReg { get; set; } + public string cClassTribReg { get; set; } /// /// UB71 - Valor da alíquota do IBS da UF diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs index fbb02e6da..803c1f512 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs @@ -54,7 +54,7 @@ public class IS /// UB03 - Código de Classificação Tributária do Imposto Seletivo /// [XmlElement(Order = 2)] - public int cClassTribIS { get; set; } + public string cClassTribIS { get; set; } /// /// UB05 - Valor da Base de Cálculo do Imposto Seletivo From 862f3bda3e443da1bda1fa385814c49b6c9c3f1e Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 09:07:28 -0300 Subject: [PATCH 45/85] =?UTF-8?q?feat:=20implementado=20ShouldSerialize=20?= =?UTF-8?q?em=20propriedades=20an=C3=BAlaveis=20da=20reforma=20tribut?= =?UTF-8?q?=C3=A1ria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Detalhe/det.cs | 2 ++ NFe.Classes/Informacoes/Detalhe/prod.cs | 1 + NFe.Classes/Informacoes/Identificacao/ide.cs | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/det.cs b/NFe.Classes/Informacoes/Detalhe/det.cs index b7f8e4a66..7b91d42a5 100644 --- a/NFe.Classes/Informacoes/Detalhe/det.cs +++ b/NFe.Classes/Informacoes/Detalhe/det.cs @@ -85,5 +85,7 @@ public decimal? vItem /// VC01 - Documento Fiscal Eletrônico Referenciado /// public DFeReferenciado DFeReferenciado { get; set; } + + public bool ShouldSerializevItem() => vItem.HasValue; } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/prod.cs b/NFe.Classes/Informacoes/Detalhe/prod.cs index 269431bea..1a5ff53bb 100644 --- a/NFe.Classes/Informacoes/Detalhe/prod.cs +++ b/NFe.Classes/Informacoes/Detalhe/prod.cs @@ -353,5 +353,6 @@ public bool ShouldSerializevOutro() return vOutro.HasValue && vOutro > 0; } + public bool ShouldSerializeindBemMovelUsado() => indBemMovelUsado.HasValue; } } diff --git a/NFe.Classes/Informacoes/Identificacao/ide.cs b/NFe.Classes/Informacoes/Identificacao/ide.cs index 218b82915..42a6cbeac 100644 --- a/NFe.Classes/Informacoes/Identificacao/ide.cs +++ b/NFe.Classes/Informacoes/Identificacao/ide.cs @@ -291,5 +291,11 @@ public bool ShouldSerializeindPres() { return indPres.HasValue; } + + public bool ShouldSerializetpNFDebito() => tpNFDebito.HasValue; + + public bool ShouldSerializetpNFCredito() => tpNFCredito.HasValue; + + public bool ShouldSerializecMunFGIBS() => cMunFGIBS.HasValue; } } \ No newline at end of file From 62ba4aed99fcdbafa90d4f32803264afa82d81a1 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 13:39:12 -0300 Subject: [PATCH 46/85] =?UTF-8?q?feat:=20adicionado=20nova=20op=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20TpNotaCredito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs b/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs index 5868ec2f1..1c064f4a1 100644 --- a/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs +++ b/NFe.Classes/Informacoes/Identificacao/Tipos/ideTipos.cs @@ -590,7 +590,11 @@ public enum TpNotaCredito [Description("Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)")] [XmlEnum("2")] - ApropriacaoDeCredito + ApropriacaoDeCredito, + + [Description("Retorno")] + [XmlEnum("3")] + Retorno } /// From b3bbdce8f15f43f61e6c901088176685738d628a Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 13:46:15 -0300 Subject: [PATCH 47/85] feat: adicionado campo vIBS em gIBSCBS --- .../Compartilhado/InformacoesIbsCbs/gIBSCBS.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index da6cde1dc..e751b7a01 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -39,6 +39,7 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIb public class gIBSCBS { private decimal _vBc; + private decimal _vIbs; /// /// UB16 - Base de cálculo do IBS e CBS @@ -83,5 +84,14 @@ public decimal vBC /// UB82a - Grupo de informações da composição do valor do IBS e da CBS em compras governamentais /// public gTribCompraGov gTribCompraGov { get; set; } + + /// + /// UB54a - Valor do IBS + /// + public decimal vIBS + { + get => _vIbs.Arredondar(2); + set => _vIbs = value.Arredondar(2); + } } } \ No newline at end of file From 40cdebe44659aeacd13abe5d6b23babd1e6c95c4 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:17:08 -0300 Subject: [PATCH 48/85] feat: implementado grupo gMonoPadrao --- .../InformacoesIbsCbs/gIBSCBSMono.cs | 55 ----------- .../InformacoesIbsCbs/gMonoPadrao.cs | 96 +++++++++++++++++++ 2 files changed, 96 insertions(+), 55 deletions(-) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs index 43100ecf6..7b1991876 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs @@ -37,11 +37,6 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIb { public class gIBSCBSMono { - private decimal _qBcMono; - private decimal _adRemIbs; - private decimal _adRemCbs; - private decimal _vIbsMono; - private decimal _vCbsMono; private decimal _qBcMonoReten; private decimal _adRemIbsReten; private decimal _vIbsMonoReten; @@ -58,56 +53,6 @@ public class gIBSCBSMono private decimal _vCbsMonoDif; private decimal _vTotIbsMonoItem; private decimal _vTotCbsMonoItem; - - /// - /// UB85 - Quantidade tributada na monofasia - /// - [XmlElement(Order = 1)] - public decimal qBCMono - { - get => _qBcMono.Arredondar(4); - set => _qBcMono = value.Arredondar(4); - } - - /// - /// UB86 - Alíquota ad rem do IBS - /// - [XmlElement(Order = 2)] - public decimal adRemIBS - { - get => _adRemIbs.Arredondar(4); - set => _adRemIbs = value.Arredondar(4); - } - - /// - /// UB87 - Alíquota ad rem da CBS - /// - [XmlElement(Order = 3)] - public decimal adRemCBS - { - get => _adRemCbs.Arredondar(4); - set => _adRemCbs = value.Arredondar(4); - } - - /// - /// UB88 - Valor do IBS monofásico - /// - [XmlElement(Order = 4)] - public decimal vIBSMono - { - get => _vIbsMono.Arredondar(2); - set => _vIbsMono = value.Arredondar(2); - } - - /// - /// UB89 - Valor da CBS monofásica - /// - [XmlElement(Order = 5)] - public decimal vCBSMono - { - get => _vCbsMono.Arredondar(2); - set => _vCbsMono = value.Arredondar(2); - } /// /// UB91 - Quantidade tributada sujeita à retenção na monofasia diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs new file mode 100644 index 000000000..2cb53b977 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs @@ -0,0 +1,96 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gMonoPadrao + { + private decimal _qBcMono; + private decimal _adRemIbs; + private decimal _adRemCbs; + private decimal _vIbsMono; + private decimal _vCbsMono; + + /// + /// UB85 - Quantidade tributada na monofasia + /// + [XmlElement(Order = 1)] + public decimal qBCMono + { + get => _qBcMono.Arredondar(4); + set => _qBcMono = value.Arredondar(4); + } + + /// + /// UB86 - Alíquota ad rem do IBS + /// + [XmlElement(Order = 2)] + public decimal adRemIBS + { + get => _adRemIbs.Arredondar(4); + set => _adRemIbs = value.Arredondar(4); + } + + /// + /// UB87 - Alíquota ad rem da CBS + /// + [XmlElement(Order = 3)] + public decimal adRemCBS + { + get => _adRemCbs.Arredondar(4); + set => _adRemCbs = value.Arredondar(4); + } + + /// + /// UB88 - Valor do IBS monofásico + /// + [XmlElement(Order = 4)] + public decimal vIBSMono + { + get => _vIbsMono.Arredondar(2); + set => _vIbsMono = value.Arredondar(2); + } + + /// + /// UB89 - Valor da CBS monofásica + /// + [XmlElement(Order = 5)] + public decimal vCBSMono + { + get => _vCbsMono.Arredondar(2); + set => _vCbsMono = value.Arredondar(2); + } + } +} \ No newline at end of file From ead567810a8d74e012811075347e5def7bdcc77d Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:18:08 -0300 Subject: [PATCH 49/85] =?UTF-8?q?fix:=20ajustado=20campo=20vNFTot=20para?= =?UTF-8?q?=20ser=20anul=C3=A1vel=20em=20casos=20de=20NFe=20sem=20valores?= =?UTF-8?q?=20de=20IBS/CBS/IS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Total/total.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/NFe.Classes/Informacoes/Total/total.cs b/NFe.Classes/Informacoes/Total/total.cs index beff3c584..0317ae3b0 100644 --- a/NFe.Classes/Informacoes/Total/total.cs +++ b/NFe.Classes/Informacoes/Total/total.cs @@ -37,7 +37,7 @@ namespace NFe.Classes.Informacoes.Total { public class total { - private decimal _vNFTot; + private decimal? _vNFTot; /// /// W02 - Grupo Totais referentes ao ICMS @@ -66,11 +66,14 @@ public class total /// /// W60 - Valor total da NF-e com IBS / CBS / IS + /// Campo obrigatório quando for informado valores do IBS, CBS e IS. /// - public decimal vNFTot + public decimal? vNFTot { get => _vNFTot; set => _vNFTot = value.Arredondar(2); } + + public bool ShouldSerializevNFTot() => vNFTot.HasValue; } } \ No newline at end of file From 9d2604eb224bf4b92aa86ae1105d2dffed79ce28 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:19:42 -0300 Subject: [PATCH 50/85] feat: ajustado nomes de propriedades da classe gTribCompraGov para novos nomes da nova NT --- .../InformacoesIbsCbs/gTribCompraGov.cs | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs index f02e13c86..fc0ef091d 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gTribCompraGov.cs @@ -35,65 +35,65 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIb { public class gTribCompraGov { - private decimal _pIbsUf; - private decimal _vIbsUf; - private decimal _pIbsMun; - private decimal _vIbsMun; - private decimal _pCbs; - private decimal _vCbs; + private decimal _pAliqIbsUf; + private decimal _vTribIbsUf; + private decimal _pAliqIbsMun; + private decimal _vTribIbsMun; + private decimal _pAliqCbs; + private decimal _vTribCbs; /// /// UB82b - Alíquota do IBS de competência do Estado /// - public decimal pIBSUF + public decimal pAliqIBSUF { - get => _pIbsUf.Arredondar(4); - set => _pIbsUf = value.Arredondar(4); + get => _pAliqIbsUf.Arredondar(4); + set => _pAliqIbsUf = value.Arredondar(4); } /// /// UB82c - Valor do Tributo do IBS da UF calculado /// - public decimal vIBSUF + public decimal vTribIBSUF { - get => _vIbsUf.Arredondar(2); - set => _vIbsUf = value.Arredondar(2); + get => _vTribIbsUf.Arredondar(2); + set => _vTribIbsUf = value.Arredondar(2); } /// /// UB82d - Alíquota do IBS de competência do Município /// - public decimal pIBSMun + public decimal pAliqIBSMun { - get => _pIbsMun.Arredondar(4); - set => _pIbsMun = value.Arredondar(4); + get => _pAliqIbsMun.Arredondar(4); + set => _pAliqIbsMun = value.Arredondar(4); } /// /// UB82e - Valor do Tributo do IBS do Município calculado /// - public decimal vIBSMun + public decimal vTribIBSMun { - get => _vIbsMun.Arredondar(2); - set => _vIbsMun = value.Arredondar(2); + get => _vTribIbsMun.Arredondar(2); + set => _vTribIbsMun = value.Arredondar(2); } /// /// UB82f - Alíquota da CBS /// - public decimal pCBS + public decimal pAliqCBS { - get => _pCbs.Arredondar(4); - set => _pCbs = value.Arredondar(4); + get => _pAliqCbs.Arredondar(4); + set => _pAliqCbs = value.Arredondar(4); } /// /// UB82g - Valor do Tributo da CBS calculado /// - public decimal vCBS + public decimal vTribCBS { - get => _vCbs.Arredondar(2); - set => _vCbs = value.Arredondar(2); + get => _vTribCbs.Arredondar(2); + set => _vTribCbs = value.Arredondar(2); } } } \ No newline at end of file From fd07def73c7f1a4d4af531a3a91c794e2d69f23a Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:26:48 -0300 Subject: [PATCH 51/85] feat: implementado grupo gMonoReten --- .../InformacoesIbsCbs/gMonoReten.cs | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoReten.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoReten.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoReten.cs new file mode 100644 index 000000000..c65a2bf02 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoReten.cs @@ -0,0 +1,89 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gMonoReten + { + private decimal _qBcMonoReten; + private decimal _adRemIbsReten; + private decimal _vIbsMonoReten; + private decimal _adRemCbsReten; + private decimal _vCbsMonoReten; + + /// + /// UB91 - Quantidade tributada sujeita à retenção na monofasia + /// + public decimal qBCMonoReten + { + get => _qBcMonoReten.Arredondar(4); + set => _qBcMonoReten = value.Arredondar(4); + } + + /// + /// UB92 - Alíquota ad rem do IBS sujeito a retenção + /// + public decimal adRemIBSReten + { + get => _adRemIbsReten.Arredondar(4); + set => _adRemIbsReten = value.Arredondar(4); + } + + /// + /// UB93 - Valor do IBS monofásico sujeito a retenção + /// + public decimal vIBSMonoReten + { + get => _vIbsMonoReten.Arredondar(2); + set => _vIbsMonoReten = value.Arredondar(2); + } + + /// + /// UB93a - Alíquota ad rem da CBS sujeito a retenção + /// + public decimal adRemCBSReten + { + get => _adRemCbsReten.Arredondar(4); + set => _adRemCbsReten = value.Arredondar(4); + } + + /// + /// UB93b - Valor da CBS monofásica sujeita a retenção + /// + public decimal vCBSMonoReten + { + get => _vCbsMonoReten.Arredondar(2); + set => _vCbsMonoReten = value.Arredondar(2); + } + } +} \ No newline at end of file From 09ed93a015bea13d5d5d73145e99e7e5a398c983 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:33:36 -0300 Subject: [PATCH 52/85] feat: implementado grupo gMonoDif --- .../InformacoesIbsCbs/gMonoDif.cs | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoDif.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoDif.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoDif.cs new file mode 100644 index 000000000..b40daf3e2 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoDif.cs @@ -0,0 +1,79 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gMonoDif + { + private decimal _pDifIbs; + private decimal _vIbsMonoDif; + private decimal _pDifCbs; + private decimal _vCbsMonoDif; + + /// + /// UB100 - Percentual do diferimento do imposto monofásico + /// + public decimal pDifIBS + { + get => _pDifIbs.Arredondar(4); + set => _pDifIbs = value.Arredondar(4); + } + + /// + /// UB101 - Valor do IBS monofásico diferido + /// + public decimal vIBSMonoDif + { + get => _vIbsMonoDif.Arredondar(2); + set => _vIbsMonoDif = value.Arredondar(2); + } + + /// + /// UB102 - Percentual do diferimento do imposto monofásico + /// + public decimal pDifCBS + { + get => _pDifCbs.Arredondar(4); + set => _pDifCbs = value.Arredondar(4); + } + + /// + /// UB103 - Valor da CBS Monofásica diferida + /// + public decimal vCBSMonoDif + { + get => _vCbsMonoDif.Arredondar(2); + set => _vCbsMonoDif = value.Arredondar(2); + } + } +} \ No newline at end of file From 30aec572bba43e308c0a04ffb9df7a7666d379c0 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:34:08 -0300 Subject: [PATCH 53/85] feat: implementado grupo gMonoRet --- .../InformacoesIbsCbs/gMonoRet.cs | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoRet.cs diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoRet.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoRet.cs new file mode 100644 index 000000000..b0f185332 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoRet.cs @@ -0,0 +1,89 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs +{ + public class gMonoRet + { + private decimal _qBcMonoRet; + private decimal _adRemIbsRet; + private decimal _vIbsMonoRet; + private decimal _adRemCbsRet; + private decimal _vCbsMonoRet; + + /// + /// UB95 - Quantidade tributada retida anteriormente + /// + public decimal qBCMonoRet + { + get => _qBcMonoRet.Arredondar(4); + set => _qBcMonoRet = value.Arredondar(4); + } + + /// + /// UB96 - Alíquota ad rem do IBS retido anteriormente + /// + public decimal adRemIBSRet + { + get => _adRemIbsRet.Arredondar(4); + set => _adRemIbsRet = value.Arredondar(4); + } + + /// + /// UB97 - Valor do IBS retido anteriormente + /// + public decimal vIBSMonoRet + { + get => _vIbsMonoRet.Arredondar(2); + set => _vIbsMonoRet = value.Arredondar(2); + } + + /// + /// UB98 - Alíquota ad rem da CBS retida anteriormente + /// + public decimal adRemCBSRet + { + get => _adRemCbsRet.Arredondar(4); + set => _adRemCbsRet = value.Arredondar(4); + } + + /// + /// UB98a - Valor da CBS retida anteriormente + /// + public decimal vCBSMonoRet + { + get => _vCbsMonoRet.Arredondar(2); + set => _vCbsMonoRet = value.Arredondar(2); + } + } +} \ No newline at end of file From 0c1764082b8797b8187727e57549fe04f30bf4b9 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:35:24 -0300 Subject: [PATCH 54/85] =?UTF-8?q?fix:=20ajustado=20classe=20gIBSCBSMono=20?= =?UTF-8?q?ap=C3=B3s=20encapsulamento=20dos=20campos=20especificados=20na?= =?UTF-8?q?=20NT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBSMono.cs | 154 +----------------- 1 file changed, 8 insertions(+), 146 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs index 7b1991876..89c478f13 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBSMono.cs @@ -31,173 +31,36 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -using System.Xml.Serialization; - namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs { public class gIBSCBSMono { - private decimal _qBcMonoReten; - private decimal _adRemIbsReten; - private decimal _vIbsMonoReten; - private decimal _adRemCbsReten; - private decimal _vCbsMonoReten; - private decimal _qBcMonoRet; - private decimal _adRemIbsRet; - private decimal _vIbsMonoRet; - private decimal _adRemCbsRet; - private decimal _vCbsMonoRet; - private decimal _pDifIbs; - private decimal _vIbsMonoDif; - private decimal _pDifCbs; - private decimal _vCbsMonoDif; private decimal _vTotIbsMonoItem; private decimal _vTotCbsMonoItem; /// - /// UB91 - Quantidade tributada sujeita à retenção na monofasia - /// - [XmlElement(Order = 6)] - public decimal qBCMonoReten - { - get => _qBcMonoReten.Arredondar(4); - set => _qBcMonoReten = value.Arredondar(4); - } - - /// - /// UB92 - Alíquota ad rem do IBS sujeito a retenção - /// - [XmlElement(Order = 7)] - public decimal adRemIBSReten - { - get => _adRemIbsReten.Arredondar(4); - set => _adRemIbsReten = value.Arredondar(4); - } - - /// - /// UB93 - Valor do IBS monofásico sujeito a retenção - /// - [XmlElement(Order = 8)] - public decimal vIBSMonoReten - { - get => _vIbsMonoReten.Arredondar(2); - set => _vIbsMonoReten = value.Arredondar(2); - } - - /// - /// UB93a - Alíquota ad rem da CBS sujeito a retenção + /// UB84a - Grupo de informações da Tributação Monofásica Padrão /// - [XmlElement(Order = 9)] - public decimal adRemCBSReten - { - get => _adRemCbsReten.Arredondar(4); - set => _adRemCbsReten = value.Arredondar(4); - } + public gMonoPadrao gMonoPadrao { get; set; } /// - /// UB93b - Valor da CBS monofásica sujeita a retenção + /// UB90 - Grupo de informações da Tributação Monofásica Sujeita à Retenção /// - [XmlElement(Order = 10)] - public decimal vCBSMonoReten - { - get => _vCbsMonoReten.Arredondar(2); - set => _vCbsMonoReten = value.Arredondar(2); - } + public gMonoReten gMonoReten { get; set; } /// - /// UB95 - Quantidade tributada retida anteriormente + /// UB94 - Grupo de informações da Tributação Monofásica Retida Anteriormente /// - [XmlElement(Order = 11)] - public decimal qBCMonoRet - { - get => _qBcMonoRet.Arredondar(4); - set => _qBcMonoRet = value.Arredondar(4); - } + public gMonoRet gMonoRet { get; set; } /// - /// UB96 - Alíquota ad rem do IBS retido anteriormente + /// UB99 - Grupo de informações do Diferimento da Tributação Monofásica /// - [XmlElement(Order = 12)] - public decimal adRemIBSRet - { - get => _adRemIbsRet.Arredondar(4); - set => _adRemIbsRet = value.Arredondar(4); - } - - /// - /// UB97 - Valor do IBS retido anteriormente - /// - [XmlElement(Order = 13)] - public decimal vIBSMonoRet - { - get => _vIbsMonoRet.Arredondar(2); - set => _vIbsMonoRet = value.Arredondar(2); - } - - /// - /// UB98 - Alíquota ad rem da CBS retida anteriormente - /// - [XmlElement(Order = 14)] - public decimal adRemCBSRet - { - get => _adRemCbsRet.Arredondar(4); - set => _adRemCbsRet = value.Arredondar(4); - } - - /// - /// UB98a - Valor da CBS retida anteriormente - /// - [XmlElement(Order = 15)] - public decimal vCBSMonoRet - { - get => _vCbsMonoRet.Arredondar(2); - set => _vCbsMonoRet = value.Arredondar(2); - } - - /// - /// UB100 - Percentual do diferimento do imposto monofásico - /// - [XmlElement(Order = 16)] - public decimal pDifIBS - { - get => _pDifIbs.Arredondar(4); - set => _pDifIbs = value.Arredondar(4); - } - - /// - /// UB101 - Valor do IBS monofásico diferido - /// - [XmlElement(Order = 17)] - public decimal vIBSMonoDif - { - get => _vIbsMonoDif.Arredondar(2); - set => _vIbsMonoDif = value.Arredondar(2); - } - - /// - /// UB102 - Percentual do diferimento do imposto monofásico - /// - [XmlElement(Order = 18)] - public decimal pDifCBS - { - get => _pDifCbs.Arredondar(4); - set => _pDifCbs = value.Arredondar(4); - } - - /// - /// UB103 - Valor da CBS Monofásica diferida - /// - [XmlElement(Order = 19)] - public decimal vCBSMonoDif - { - get => _vCbsMonoDif.Arredondar(2); - set => _vCbsMonoDif = value.Arredondar(2); - } + public gMonoDif gMonoDif { get; set; } /// /// UB104 - Total de IBS Monofásico /// - [XmlElement(Order = 20)] public decimal vTotIBSMonoItem { get => _vTotIbsMonoItem.Arredondar(2); @@ -207,7 +70,6 @@ public decimal vTotIBSMonoItem /// /// UB105 - Total da CBS Monofásica /// - [XmlElement(Order = 21)] public decimal vTotCBSMonoItem { get => _vTotCbsMonoItem.Arredondar(2); From b1d4ff48eef8ae337c038ae4676643c71e7790a4 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:36:00 -0300 Subject: [PATCH 55/85] =?UTF-8?q?fix:=20removido=20anota=C3=A7=C3=A3o=20de?= =?UTF-8?q?=20sequ=C3=AAncia=20dos=20campos=20da=20classe=20gMonoPadrao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs index 2cb53b977..19c9a2f75 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gMonoPadrao.cs @@ -31,8 +31,6 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ -using System.Xml.Serialization; - namespace NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs { public class gMonoPadrao @@ -46,7 +44,6 @@ public class gMonoPadrao /// /// UB85 - Quantidade tributada na monofasia /// - [XmlElement(Order = 1)] public decimal qBCMono { get => _qBcMono.Arredondar(4); @@ -56,7 +53,6 @@ public decimal qBCMono /// /// UB86 - Alíquota ad rem do IBS /// - [XmlElement(Order = 2)] public decimal adRemIBS { get => _adRemIbs.Arredondar(4); @@ -66,7 +62,6 @@ public decimal adRemIBS /// /// UB87 - Alíquota ad rem da CBS /// - [XmlElement(Order = 3)] public decimal adRemCBS { get => _adRemCbs.Arredondar(4); @@ -76,7 +71,6 @@ public decimal adRemCBS /// /// UB88 - Valor do IBS monofásico /// - [XmlElement(Order = 4)] public decimal vIBSMono { get => _vIbsMono.Arredondar(2); @@ -86,7 +80,6 @@ public decimal vIBSMono /// /// UB89 - Valor da CBS monofásica /// - [XmlElement(Order = 5)] public decimal vCBSMono { get => _vCbsMono.Arredondar(2); From 92a713238763cd166bc31bada9b6ee75a792fb75 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Thu, 31 Jul 2025 14:37:11 -0300 Subject: [PATCH 56/85] =?UTF-8?q?refactor:=20removido=20coment=C3=A1rio=20?= =?UTF-8?q?desnecess=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Total/total.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/NFe.Classes/Informacoes/Total/total.cs b/NFe.Classes/Informacoes/Total/total.cs index 0317ae3b0..7eed93f4b 100644 --- a/NFe.Classes/Informacoes/Total/total.cs +++ b/NFe.Classes/Informacoes/Total/total.cs @@ -66,7 +66,6 @@ public class total /// /// W60 - Valor total da NF-e com IBS / CBS / IS - /// Campo obrigatório quando for informado valores do IBS, CBS e IS. /// public decimal? vNFTot { From bd6ce629e31817178b5f70532bff7cb2b16147b3 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Thu, 31 Jul 2025 18:26:33 -0300 Subject: [PATCH 57/85] =?UTF-8?q?feat(nfe):=20Implementado=20evento=20de?= =?UTF-8?q?=20imobiliza=C3=A7=C3=A3o=20de=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Imobilizacao/gControleEstoque.cs | 54 ++++++++++++++ .../Informacoes/Imobilizacao/gImobilizacao.cs | 72 +++++++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 23 ++++-- .../Servicos/Tipos/NFeServicosTipos.cs | 21 +++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 43 +++++++++++ NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 6 +- NFe.Utils/Validacao/Validador.cs | 2 + 9 files changed, 211 insertions(+), 14 deletions(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs new file mode 100644 index 000000000..0410b4e4b --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs @@ -0,0 +1,54 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao +{ + public class gControleEstoque + { + private decimal _qImobilizado; + + /// + /// P28 - Informar a quantidade do item a ser imobilizado + /// + public decimal qImobilizado + { + get => _qImobilizado.Arredondar(4); + set => _qImobilizado = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo qImobilizado + /// + public string uImobilizado { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs new file mode 100644 index 000000000..aa92836ad --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs @@ -0,0 +1,72 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao +{ + public class gImobilizacao + { + private decimal _vIBS; + private decimal _vCBS; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. + /// + [XmlAttribute] + public int nitem { get; set; } + + /// + /// P25 - Valor do IBS relativo à imobilização + /// + public decimal vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// P26 - Valor da CBS relativo à imobilização + /// + public decimal vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + /// + /// P27 - Informações de crédito presumido por item + /// + public gControleEstoque gControleEstoque { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 7faf3b6c5..15114210f 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -38,6 +38,7 @@ using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; +using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; using Shared.NFe.Classes.Servicos.Evento; @@ -405,19 +406,27 @@ public bool ShouldSerializegConsumo() /// /// P23 - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida /// - [XmlIgnore] public IndicadorAceitacao? indAceitacao { get; set; } - [XmlAttribute("indAceitacao")] - public int ProxyIndicadorAceitacao + public bool ShouldSerializeindAceitacao() { - get => (int)(indAceitacao ?? 0); - set => indAceitacao = (IndicadorAceitacao?)value; + return indAceitacao != null; } - [XmlIgnore] - public bool ProxyIndicadorAceitacaoSpecified => indAceitacao != null; + #endregion + + #region Imobilização de Item + + /// + /// P23 - Informações de itens integrados ao ativo imobilizado + /// + public List gImobilizacao { get; set; } + public bool ShouldSerializegImobilizacao() + { + return gImobilizacao != null; + } + #endregion #endregion diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index a20230b68..2644a0a29 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -179,7 +179,14 @@ public enum ServicoNFe /// Serviço para Permitir ao destinatário informar que concorda com os valores constantes em nota de crédito emitida pelo fornecedor ou pelo adquirente que /// serão lançados a débito na apuração assistida de IBS e CBS /// - RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + + /// + /// Serviço para permitir ser gerado pelo adquirente de bem, quando este for integrado ao seu ativo imobilizado, a fim de viabilizar a adequada identificação, + /// pelos sistemas da administração tributária, de prazo-limite para apreciação de eventuais pedidos de ressarcimento do respectivo créditoo, nos termos + /// do art. 40, I da LC 214/2025. + /// + RecepcaoEventoImobilizacaoDeItem } /// @@ -218,12 +225,13 @@ public enum IndicadorSincronizacao /// 110750 - Conciliação Financeira da NF-e /// 110751 - Cancelamento Conciliação Financeira da NF-e /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente - /// 211110 - Solicitação de Apropriação de crédito presumido - /// 211120 - Destinação de item para consumo pessoal /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação /// 210240 – Operação não Realizada + /// 211110 - Solicitação de Apropriação de crédito presumido + /// 211120 - Destinação de item para consumo pessoal + /// 211130 - Imobilização de Item /// public enum NFeTipoEvento { @@ -331,6 +339,13 @@ public enum NFeTipoEvento [Description("Aceite de débito na apuração por emissão de nota de crédito")] [XmlEnum("211128")] TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = 211128, + + /// + /// 211130 - Imobilização de Item + /// + [Description("Imobilização de Item")] + [XmlEnum("211130")] + TeNfeImobilizacaoDeItem = 211130, /// /// 210200 – Confirmação da Operação diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 8ce139ceb..f3ccd86e2 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -289,6 +289,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: + case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index c8d1d8684..fd6660898 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -79,6 +79,7 @@ using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; +using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; namespace NFe.Servicos @@ -1356,6 +1357,48 @@ public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeN return retornoRecepcaoEvento; } + + /// + /// Serviço para evento de imobilização de item + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoImobilizacaoItem(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List imobilizacoesItens, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoImobilizacaoDeItem; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeImobilizacaoDeItem; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaDestinataria); + detalheEvento.gImobilizacao = imobilizacoesItens; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index c40305564..8851c421e 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -58,7 +58,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal - || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito) + || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 876b6945b..b5e57416c 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1635,7 +1635,7 @@ private static List CarregarEnderecosServicos() #endregion - #region ConsultaGtin / Insucesso na entrega / Conciliação Financeira + #region ConsultaGtin / Insucesso na entrega / Conciliação Financeira / Apuração IBS e CBS foreach (var estado in Enum.GetValues(typeof(Estado)) .Cast() .ToList()) @@ -1652,7 +1652,6 @@ private static List CarregarEnderecosServicos() addServico(new[] { ServicoNFe.RecepcaoEventoInsucessoEntregaNFe, ServicoNFe.RecepcaoEventoCancInsucessoEntregaNFe }, versao1, TipoAmbiente.Producao, emissao, estado, modelo, "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); addServico(new[] { ServicoNFe.RecepcaoEventoInsucessoEntregaNFe, ServicoNFe.RecepcaoEventoCancInsucessoEntregaNFe }, versao1, TipoAmbiente.Homologacao, emissao, estado, modelo, "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx"); - if (modelo == ModeloDocumento.NFe) { //Conciliação Financeira NFe @@ -1680,7 +1679,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, - ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + ServicoNFe.RecepcaoEventoImobilizacaoDeItem }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 83bc320b3..9af94baaf 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -137,6 +137,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211120_v1.00.xsd"; case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: return "e211128_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: + return "e211130_v1.00.xsd "; } return null; } From 3541f3f7e25fb246ecf178eea3528c9486f8ea0f Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 1 Aug 2025 08:45:38 -0300 Subject: [PATCH 58/85] fix: corrigido nome do elemento gCompraGov e ajustado tipo de elemento do refNFe em gPagAntecipado --- NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs | 4 +++- NFe.Classes/Informacoes/Identificacao/ide.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs b/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs index acb8c610c..69bf81fc3 100644 --- a/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs +++ b/NFe.Classes/Informacoes/Identificacao/gPagAntecipado.cs @@ -32,6 +32,7 @@ /********************************************************************************/ using System.Collections.Generic; +using System.Xml.Serialization; namespace NFe.Classes.Informacoes.Identificacao { @@ -43,6 +44,7 @@ public class gPagAntecipado /// /// BB02 - Chave de acesso da NF-e de antecipação de pagamento /// - private List refNFe { get; set; } + [XmlElement("refNFe")] + public List refNFe { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Identificacao/ide.cs b/NFe.Classes/Informacoes/Identificacao/ide.cs index 42a6cbeac..3f1bbcbff 100644 --- a/NFe.Classes/Informacoes/Identificacao/ide.cs +++ b/NFe.Classes/Informacoes/Identificacao/ide.cs @@ -270,7 +270,7 @@ public string ProxydhCont /// /// B31 - Grupo de Compra Governamental /// - public gCompraGov GCompraGov { get; set; } + public gCompraGov gCompraGov { get; set; } /// /// BB01 - Grupo de notas de antecipação de pagamento From d34b3fc00068be7ee602fcc00c7cb7eb8402fca7 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Fri, 1 Aug 2025 18:03:07 -0300 Subject: [PATCH 59/85] =?UTF-8?q?feat(nfe):=20Solicita=C3=A7=C3=A3o=20de?= =?UTF-8?q?=20Apropria=C3=A7=C3=A3o=20de=20Cr=C3=A9dito=20de=20Combust?= =?UTF-8?q?=C3=ADvel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreditoCombustivel/gConsumoComb.cs | 72 +++++++++++++++++++ .../CreditoCombustivel/gControleEstoque.cs | 54 ++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 15 ++++ .../Servicos/Tipos/NFeServicosTipos.cs | 20 +++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 49 ++++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 3 +- NFe.Utils/Validacao/Validador.cs | 2 + 9 files changed, 211 insertions(+), 8 deletions(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs new file mode 100644 index 000000000..3d559637c --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs @@ -0,0 +1,72 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel +{ + public class gConsumoComb + { + private decimal _vIBS; + private decimal _vCBS; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. + /// + [XmlAttribute] + public int nitem { get; set; } + + /// + /// P25 - Valor do IBS relativo ao consumo de combustível na nota de aquisição + /// + public decimal vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// P26 - Valor da CBS relativo ao consumo de combustível na nota de aquisição + /// + public decimal vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + /// + /// P27 - Informações de quantidade por item + /// + public gControleEstoque gControleEstoque { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs new file mode 100644 index 000000000..6f56cd5bb --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs @@ -0,0 +1,54 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel +{ + public class gControleEstoque + { + private decimal _qComb; + + /// + /// P28 - Informar a quantidade de consumo do item + /// + public decimal qComb + { + get => _qComb; + set => _qComb = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo qComb + /// + public decimal uComb { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 15114210f..50e036b9d 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -37,6 +37,7 @@ using DFe.Utils; using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; @@ -429,6 +430,20 @@ public bool ShouldSerializegImobilizacao() #endregion + #region Solicitação de Apropriação de Crédito de Combustível + + /// + /// P23 - Informações de consumo de combustíveis + /// + public List gConsumoComb { get; set; } + + public bool ShouldSerializegConsumoComb() + { + return gConsumoComb != null; + } + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 2644a0a29..2b0923873 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -186,7 +186,13 @@ public enum ServicoNFe /// pelos sistemas da administração tributária, de prazo-limite para apreciação de eventuais pedidos de ressarcimento do respectivo créditoo, nos termos /// do art. 40, I da LC 214/2025. /// - RecepcaoEventoImobilizacaoDeItem + RecepcaoEventoImobilizacaoDeItem, + + /// + /// Serviço para permitir ser gerado pelo adquirente de combustível listado no art. 172 da LC 214/2025 e que pertença à cadeia produtiva desses combustíveis, + /// para solicitar a apropriação de crédito referente à parcela que for consumida em sua atividade comercial. + /// + RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel } /// @@ -232,6 +238,7 @@ public enum IndicadorSincronizacao /// 211110 - Solicitação de Apropriação de crédito presumido /// 211120 - Destinação de item para consumo pessoal /// 211130 - Imobilização de Item + /// 211140 - Solicitação de Apropriação de Crédito de Combustível /// public enum NFeTipoEvento { @@ -339,14 +346,21 @@ public enum NFeTipoEvento [Description("Aceite de débito na apuração por emissão de nota de crédito")] [XmlEnum("211128")] TeNfeAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito = 211128, - + /// /// 211130 - Imobilização de Item /// [Description("Imobilização de Item")] [XmlEnum("211130")] TeNfeImobilizacaoDeItem = 211130, - + + /// + /// 211140 - Solicitação de Apropriação de Crédito de Combustível + /// + [Description("Solicitação de Apropriação de Crédito de Combustível")] + [XmlEnum("211140")] + TeNfeSolicitacaoApropriacaoCreditoCombustivel = 211140, + /// /// 210200 – Confirmação da Operação /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index f3ccd86e2..7ad9cafc5 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -290,6 +290,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index fd6660898..c473daf5f 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -78,6 +78,7 @@ using NFe.Classes.Servicos.ConsultaGtin; using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; @@ -1361,11 +1362,11 @@ public RetornoRecepcaoEvento RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeN /// /// Serviço para evento de imobilização de item /// - /// - /// + /// Nº do lote + /// sequencia do evento /// /// - /// + /// Lista de itens da nota fiscal a serem imobilizados /// /// /// @@ -1399,6 +1400,48 @@ public RetornoRecepcaoEvento RecepcaoEventoImobilizacaoItem(int idLote, return retornoRecepcaoEvento; } + + /// + /// Serviço para evento de solicitação de apropriação de crédito de combustível + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Itens de combustível da nota fiscal + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoSolicitacaApropriacaoCreditoCombustivel(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List gConsumoComb, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeSolicitacaoApropriacaoCreditoCombustivel; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaDestinataria); + detalheEvento.gConsumoComb = gConsumoComb; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 8851c421e..8e24d5da9 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -59,7 +59,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito - || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem) + || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem + || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index b5e57416c..1aaee5401 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1680,7 +1680,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, - ServicoNFe.RecepcaoEventoImobilizacaoDeItem + ServicoNFe.RecepcaoEventoImobilizacaoDeItem, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 9af94baaf..8d3d8776c 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -139,6 +139,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211128_v1.00.xsd"; case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: return "e211130_v1.00.xsd "; + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: + return "e211140_v1.00.xsd"; } return null; } From 0c8228d9c50b5f7c3c1783c73fa045737073d7f0 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 07:22:07 -0300 Subject: [PATCH 60/85] =?UTF-8?q?feat(nfe):=20Implementado=20eventos=20de:?= =?UTF-8?q?=20"Solicita=C3=A7=C3=A3o=20de=20Apropria=C3=A7=C3=A3o=20de=20C?= =?UTF-8?q?r=C3=A9dito=20para=20bens=20e=20servi=C3=A7os=20que=20dependem?= =?UTF-8?q?=20de=20atividade=20do=20adquirente"=20e=20"Manifesta=C3=A7?= =?UTF-8?q?=C3=A3o=20sobre=20Pedido=20de=20Transfer=C3=AAncia=20de=20Cr?= =?UTF-8?q?=C3=A9dito=20de=20IBS=20em=20Opera=C3=A7=C3=B5es=20de=20Sucess?= =?UTF-8?q?=C3=A3o"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreditoBensServicos/gCredito.cs | 67 +++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 21 ++++- NFe.Classes/Servicos/Evento/detEventoTipos.cs | 6 ++ .../Servicos/Tipos/NFeServicosTipos.cs | 28 ++++++- NFe.Servicos/ServicoNfeFactory.cs | 2 + NFe.Servicos/ServicosNFe.cs | 82 +++++++++++++++++++ NFe.Utils/Conversao.cs | 3 + NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 4 + 9 files changed, 213 insertions(+), 4 deletions(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs new file mode 100644 index 000000000..d7beaf31a --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs @@ -0,0 +1,67 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoBensServicos +{ + public class gCredito + { + private decimal _vCredIBS; + private decimal _vCredCBS; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. + /// + [XmlAttribute] + public int nitem { get; set; } + + /// + /// P25 - Valor da solicitação de crédito a ser apropriado de IBS + /// + public decimal vCredIBS + { + get => _vCredIBS; + set => _vCredIBS = value.Arredondar(2); + } + + /// + /// P26 - Valor da solicitação de crédito a ser apropriado de CBS + /// + public decimal vCredCBS + { + get => _vCredCBS; + set => _vCredCBS = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 50e036b9d..66dfa0e44 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -37,6 +37,7 @@ using DFe.Utils; using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoBensServicos; using NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; @@ -402,10 +403,12 @@ public bool ShouldSerializegConsumo() #endregion - #region Aceite de débito na apuração por emissão de nota de crédito + #region Aceite de débito na apuração por emissão de nota de crédito | Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão /// - /// P23 - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida + /// Informação utilizada nos eventos "Aceite de débito na apuração por emissão de nota de crédito" e "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão" + /// Para evento "Aceite de débito na apuração por emissão de nota de crédito": P23 - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida + /// Para evento "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão": P23 - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada /// public IndicadorAceitacao? indAceitacao { get; set; } @@ -444,6 +447,20 @@ public bool ShouldSerializegConsumoComb() #endregion + #region Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + + /// + /// P23 - Informações de crédito + /// + public List gCredito { get; set; } + + public bool ShouldSerializegCredito() + { + return gCredito != null; + } + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index 90f0e63ef..7f14c571a 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -82,6 +82,12 @@ public enum TipoAutor [Description("RFB")] [XmlEnum("6")] taRFB = 6, + + /// + /// 8 - Empresa sucessora + /// + [Description("Empresa sucessora")] + taEmpresaSucessora = 8, /// /// 9 - Outros Órgãos diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 2b0923873..705c22d4d 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -192,7 +192,17 @@ public enum ServicoNFe /// Serviço para permitir ser gerado pelo adquirente de combustível listado no art. 172 da LC 214/2025 e que pertença à cadeia produtiva desses combustíveis, /// para solicitar a apropriação de crédito referente à parcela que for consumida em sua atividade comercial. /// - RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel + RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, + + /// + /// Serviço para permitir ser gerado pelo adquirente para apropriação de crédito de bens e serviços que dependam da sua atividade + /// + RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, + + /// + /// Serviço para permitir ser gerado pela sucessora em relação às notas fiscais de transferência de crédito de outra sucessora da mesma empresa sucedida para informar aceite da transferência de crédito de IBS. + /// + RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao } /// @@ -239,6 +249,8 @@ public enum IndicadorSincronizacao /// 211120 - Destinação de item para consumo pessoal /// 211130 - Imobilização de Item /// 211140 - Solicitação de Apropriação de Crédito de Combustível + /// 211150 - Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão /// public enum NFeTipoEvento { @@ -361,6 +373,20 @@ public enum NFeTipoEvento [XmlEnum("211140")] TeNfeSolicitacaoApropriacaoCreditoCombustivel = 211140, + /// + /// 211150 - Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + /// + [Description("Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente")] + [XmlEnum("211150")] + TeNfeSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente = 211150, + + /// + /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// + [Description("Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [XmlEnum("212120")] + TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao = 212120, + /// /// 210200 – Confirmação da Operação /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 7ad9cafc5..13b47c253 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -291,6 +291,8 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index c473daf5f..59e410e46 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -78,6 +78,7 @@ using NFe.Classes.Servicos.ConsultaGtin; using NFe.Utils.ConsultaGtin; using NFe.Classes.Informacoes; +using NFe.Classes.Servicos.Evento.Informacoes.CreditoBensServicos; using NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel; using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; @@ -1442,7 +1443,88 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaApropriacaoCreditoCombustiv return retornoRecepcaoEvento; } + /// + /// Serviço para evento de Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Informações de crédito + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List gCreditos, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaDestinataria); + detalheEvento.gCredito = gCreditos; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + /// + /// Serviço para evento de Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Informações de crédito + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + IndicadorAceitacao indicadorAceitacao, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaSucessora); + detalheEvento.indAceitacao = indicadorAceitacao; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { var detEvento = new detEvento diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 8e24d5da9..8fa30a295 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -61,6 +61,9 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel) + || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel + || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 1aaee5401..4eac7768c 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1681,7 +1681,9 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, ServicoNFe.RecepcaoEventoImobilizacaoDeItem, - ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 8d3d8776c..a603b875e 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -141,6 +141,10 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211130_v1.00.xsd "; case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: return "e211140_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: + return "e211150_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + return "e212110.00.xsd"; } return null; } From 3bb4cf6e1abdabd9dc919cee0567011967325303 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 07:22:36 -0300 Subject: [PATCH 61/85] Ajuste --- NFe.Utils/Conversao.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 8fa30a295..768be3215 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -60,7 +60,6 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal || servicoNFe == ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem - || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel) || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao) From 3418303694d8ef67cd79aa0913d5d7b54c70ff4c Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 07:37:30 -0300 Subject: [PATCH 62/85] =?UTF-8?q?fix(nfe):=20Ajustados=20eventos=20j=C3=A1?= =?UTF-8?q?=20adicionados=20que=20foram=20modificados=20na=20NT=5F2025.002?= =?UTF-8?q?=5Fv1.20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Informacoes/CreditoPresumido/gCredPres.cs | 1 - .../ItemConsumo/DFeReferenciado.cs | 48 +++++++++++++++++++ .../Informacoes/ItemConsumo/gConsumo.cs | 9 +--- 3 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs index 8622c93bb..d66f2821f 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs @@ -46,7 +46,6 @@ public class gCredPres /// /// P25 - Valor do base de cálculo do item /// - [XmlAttribute("vBC")] public int vBC { get; set; } /// diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs new file mode 100644 index 000000000..822c72dda --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs @@ -0,0 +1,48 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo +{ + public class DFeReferenciado + { + /// + /// P31 - Informa a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal. + /// + public string chaveAcesso { get; set; } + + /// + /// P32 - Corresponde ao “nItem” do DFeReferenciado + /// + public int nItem { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index d95a26b95..254fe443d 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -72,13 +72,8 @@ public decimal vCBS public gControleEstoque gControleEstoque { get; set; } /// - /// P31 - Informar a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal + /// P30 - Informações por item da NF-e de Uso e Consumo Pessoal /// - public string refNF { get; set; } - - /// - /// P32 - Corresponde ao “nItem” da refNFe - /// - public int nItemRefNFe { get; set; } + public DFeReferenciado DFeReferenciado { get; set; } } } \ No newline at end of file From a9fc191952a187a236eb2aa1c8ba577e229544eb Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 09:13:51 -0300 Subject: [PATCH 63/85] =?UTF-8?q?Adicionada=20lista=20de=20servi=C3=A7os?= =?UTF-8?q?=20no=20envio=20de=20evento=20gen=C3=A9rico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 59e410e46..9e91c88f2 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -419,7 +419,11 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido, ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal, - ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito + ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito, + ServicoNFe.RecepcaoEventoImobilizacaoDeItem, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, + ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao }; if ( !listaEventos.Contains(servicoEvento)) From 214c9678cce4552a32b24d47992593fe24bde585 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 4 Aug 2025 10:36:56 -0300 Subject: [PATCH 64/85] =?UTF-8?q?fix:=20reordenado=20campos=20do=20gIBSCBS?= =?UTF-8?q?=20para=20seguir=20ordem=20da=20nova=20nota=20t=C3=A9cnica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InformacoesIbsCbs/gIBSCBS.cs | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs index e751b7a01..15308193a 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/gIBSCBS.cs @@ -31,6 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using System.Xml.Serialization; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs; using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs; @@ -44,6 +45,7 @@ public class gIBSCBS /// /// UB16 - Base de cálculo do IBS e CBS /// + [XmlElement(Order = 1)] public decimal vBC { get => _vBc.Arredondar(2); @@ -53,45 +55,53 @@ public decimal vBC /// /// UB17 - Grupo de Informações do IBS para a UF /// + [XmlElement(Order = 2)] public gIBSUF gIBSUF { get; set; } /// /// UB36 - Grupo de Informações do IBS para o município /// + [XmlElement(Order = 3)] public gIBSMun gIBSMun { get; set; } + /// + /// UB54a - Valor do IBS + /// + [XmlElement(Order = 4)] + public decimal vIBS + { + get => _vIbs.Arredondar(2); + set => _vIbs = value.Arredondar(2); + } + /// /// UB55 - Grupo de Informações da CBS /// + [XmlElement(Order = 5)] public gCBS gCBS { get; set; } /// /// UB68 - Grupo de informações da Tributação Regular /// + [XmlElement(Order = 6)] public gTribRegular gTribRegular { get; set; } /// /// UB73 - Grupo de Informações do Crédito Presumido referente ao IBS /// + [XmlElement(Order = 7)] public gIBSCredPres gIBSCredPres { get; set; } /// /// UB78 - Grupo de Informações do Crédito Presumido referente a CBS /// + [XmlElement(Order = 8)] public gCBSCredPres gCBSCredPres { get; set; } /// /// UB82a - Grupo de informações da composição do valor do IBS e da CBS em compras governamentais /// + [XmlElement(Order = 9)] public gTribCompraGov gTribCompraGov { get; set; } - - /// - /// UB54a - Valor do IBS - /// - public decimal vIBS - { - get => _vIbs.Arredondar(2); - set => _vIbs = value.Arredondar(2); - } } } \ No newline at end of file From b7e37fad2bdf6df0c4e0685608981bcdf04f69fd Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 10:47:18 -0300 Subject: [PATCH 65/85] Ajustes para possibilitar o envio dos eventos --- .../Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs | 3 ++- .../{gControleEstoque.cs => gControleEstoqueCredComb.cs} | 4 ++-- .../Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs | 3 ++- .../{gControleEstoque.cs => gControleEstoqueItemConsumo.cs} | 2 +- NFe.Utils/Enderecos/Enderecador.cs | 4 ++++ 5 files changed, 11 insertions(+), 5 deletions(-) rename NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/{gControleEstoque.cs => gControleEstoqueCredComb.cs} (97%) rename NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/{gControleEstoque.cs => gControleEstoqueItemConsumo.cs} (98%) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs index 3d559637c..4100f12c3 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs @@ -67,6 +67,7 @@ public decimal vCBS /// /// P27 - Informações de quantidade por item /// - public gControleEstoque gControleEstoque { get; set; } + [XmlElement(ElementName = "gControleEstoque")] + public gControleEstoqueCredComb gControleEstoqueCredComb { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoqueCredComb.cs similarity index 97% rename from NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs rename to NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoqueCredComb.cs index 6f56cd5bb..aeaa34777 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoque.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gControleEstoqueCredComb.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Servicos.Evento.Informacoes.CreditoCombustivel { - public class gControleEstoque + public class gControleEstoqueCredComb { private decimal _qComb; @@ -49,6 +49,6 @@ public decimal qComb /// /// P29 - Informar a unidade relativa ao campo qComb /// - public decimal uComb { get; set; } + public string uComb { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index 254fe443d..c7965d550 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -69,7 +69,8 @@ public decimal vCBS /// /// P27 - Informações de quantidade de estoque influenciadas pelo evento /// - public gControleEstoque gControleEstoque { get; set; } + [XmlElement(ElementName = "gControleEstoque")] + public gControleEstoqueItemConsumo gControleEstoqueItemConsumo { get; set; } /// /// P30 - Informações por item da NF-e de Uso e Consumo Pessoal diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs similarity index 98% rename from NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs rename to NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs index 23bd84cf9..6583bf5d7 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo { - public class gControleEstoque + public class gControleEstoqueItemConsumo { private decimal _qConsumo; diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 4eac7768c..f5a81d80c 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1769,6 +1769,10 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPresumido: case ServicoNFe.RecepcaoEventoDestinacaoDeItemParaConsumoPessoal: case ServicoNFe.RecepcaoEventoAceiteDeDebitoNaApuracaoPorEmissaoDeNotaDeCredito: + case ServicoNFe.RecepcaoEventoImobilizacaoDeItem: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: + case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; From 5c91bd3b52c3fd66f9e6438cc2ab1c8cc6cc6dd3 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 4 Aug 2025 11:00:30 -0300 Subject: [PATCH 66/85] fix: implementado ShouldSerialize no campo pISEspec do IS --- NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs index 803c1f512..04ed3469f 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/IS.cs @@ -111,5 +111,7 @@ public decimal vIS get => _vIs.Arredondar(2); set => _vIs = value.Arredondar(2); } + + public bool ShouldSerializepISEspec() => pISEspec.HasValue; } } \ No newline at end of file From 32d57a9f5a3bbf83dd626b9a0329b253713e6abf Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 4 Aug 2025 11:21:57 -0300 Subject: [PATCH 67/85] =?UTF-8?q?fix:=20implementado=20ShouldSerialize=20n?= =?UTF-8?q?os=20campos=20anul=C3=A1veis=20nas=20classes=20DFeReferenciado?= =?UTF-8?q?=20e=20gCredPresIBSZFM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs | 2 ++ .../InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs index f0f50287d..894b0533c 100644 --- a/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs +++ b/NFe.Classes/Informacoes/Detalhe/DFeReferenciado.cs @@ -44,5 +44,7 @@ public class DFeReferenciado /// VC03 - Número do item do documento referenciado. /// public int? nItem { get; set; } + + public bool ShouldSerializenItem() => nItem.HasValue; } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs index 78d280cba..d56c17cec 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Compartilhado/InformacoesIbsCbs/InformacoesIbs/gCredPresIBSZFM.cs @@ -52,5 +52,7 @@ public decimal? vCredPresIBSZFM get => _vCredPresIbsZfm.Arredondar(2); set => _vCredPresIbsZfm = value.Arredondar(2); } + + public bool ShouldSerializevCredPresIBSZFM() => vCredPresIBSZFM.HasValue; } } \ No newline at end of file From 8e9ff2db55c5cd40f01421a3b0be0bdf217c52b2 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 4 Aug 2025 16:50:37 -0300 Subject: [PATCH 68/85] =?UTF-8?q?Ajuste=20dos=20coment=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs | 2 +- NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs | 2 +- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs index 4100f12c3..fea037420 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs @@ -68,6 +68,6 @@ public decimal vCBS /// P27 - Informações de quantidade por item /// [XmlElement(ElementName = "gControleEstoque")] - public gControleEstoqueCredComb gControleEstoqueCredComb { get; set; } + public gControleEstoqueCredComb gControleEstoque { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index c7965d550..f4e8e5928 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -70,7 +70,7 @@ public decimal vCBS /// P27 - Informações de quantidade de estoque influenciadas pelo evento /// [XmlElement(ElementName = "gControleEstoque")] - public gControleEstoqueItemConsumo gControleEstoqueItemConsumo { get; set; } + public gControleEstoqueItemConsumo gControleEstoque { get; set; } /// /// P30 - Informações por item da NF-e de Uso e Consumo Pessoal diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 705c22d4d..ed5a4ede5 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -183,7 +183,7 @@ public enum ServicoNFe /// /// Serviço para permitir ser gerado pelo adquirente de bem, quando este for integrado ao seu ativo imobilizado, a fim de viabilizar a adequada identificação, - /// pelos sistemas da administração tributária, de prazo-limite para apreciação de eventuais pedidos de ressarcimento do respectivo créditoo, nos termos + /// pelos sistemas da administração tributária, de prazo-limite para apreciação de eventuais pedidos de ressarcimento do respectivo crédito, nos termos /// do art. 40, I da LC 214/2025. /// RecepcaoEventoImobilizacaoDeItem, From 203c103d865848233bc8ed8c2822412862f94e45 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Fri, 8 Aug 2025 09:34:57 -0300 Subject: [PATCH 69/85] =?UTF-8?q?Implementado=20evento=20"Manifesta=C3=A7?= =?UTF-8?q?=C3=A3o=20sobre=20Pedido=20de=20Transfer=C3=AAncia=20de=20Cr?= =?UTF-8?q?=C3=A9dito=20de=20CBS=20em=20Opera=C3=A7=C3=B5es=20de=20Sucess?= =?UTF-8?q?=C3=A3o"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 3 +- .../Servicos/Tipos/NFeServicosTipos.cs | 21 +++++++-- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 44 ++++++++++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 2 + 7 files changed, 70 insertions(+), 8 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 66dfa0e44..b5d824169 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -403,12 +403,13 @@ public bool ShouldSerializegConsumo() #endregion - #region Aceite de débito na apuração por emissão de nota de crédito | Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + #region Aceite de débito na apuração por emissão de nota de crédito | Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão | Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// /// Informação utilizada nos eventos "Aceite de débito na apuração por emissão de nota de crédito" e "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão" /// Para evento "Aceite de débito na apuração por emissão de nota de crédito": P23 - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida /// Para evento "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão": P23 - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada + /// Para evento "Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão": P23 - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada /// public IndicadorAceitacao? indAceitacao { get; set; } diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index ed5a4ede5..29d625a7a 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -202,7 +202,12 @@ public enum ServicoNFe /// /// Serviço para permitir ser gerado pela sucessora em relação às notas fiscais de transferência de crédito de outra sucessora da mesma empresa sucedida para informar aceite da transferência de crédito de IBS. /// - RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao + RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + + /// + /// Serviço para permitir ser gerado pela sucessora em relação às notas fiscais de transferência de crédito de outra sucessora da mesma empresa sucedida para informar aceite da transferência de crédito de CBS. + /// + RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao } /// @@ -250,7 +255,8 @@ public enum IndicadorSincronizacao /// 211130 - Imobilização de Item /// 211140 - Solicitação de Apropriação de Crédito de Combustível /// 211150 - Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente - /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// 212110 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// public enum NFeTipoEvento { @@ -381,11 +387,18 @@ public enum NFeTipoEvento TeNfeSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente = 211150, /// - /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// 212110 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// + [Description("Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [XmlEnum("212110")] + TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao = 212110, + + /// + /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// [Description("Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] [XmlEnum("212120")] - TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao = 212120, + TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao = 212120, /// /// 210200 – Confirmação da Operação diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 13b47c253..1e25fbf01 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -293,6 +293,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 9e91c88f2..aa4ed4053 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -423,7 +423,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoImobilizacaoDeItem, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, - ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao }; if ( !listaEventos.Contains(servicoEvento)) @@ -1528,6 +1529,47 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci return retornoRecepcaoEvento; } + + /// + /// Serviço para evento de Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Informações de crédito + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + IndicadorAceitacao indicadorAceitacao, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaSucessora); + detalheEvento.indAceitacao = indicadorAceitacao; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 768be3215..7303f7887 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -62,7 +62,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoImobilizacaoDeItem || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente - || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao) + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index f5a81d80c..f492de402 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1683,7 +1683,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoImobilizacaoDeItem, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, - ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1773,6 +1774,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel: case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index a603b875e..0675bd13a 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -145,6 +145,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211150_v1.00.xsd"; case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: return "e212110.00.xsd"; + case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + return "e212120_v1.00.xsd"; } return null; } From 14f1b5bc24dbab3e26f06805086b34d25bcaf2a2 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Fri, 8 Aug 2025 15:23:18 -0300 Subject: [PATCH 70/85] =?UTF-8?q?Implementado=20eventos:=20"Manifesta?= =?UTF-8?q?=C3=A7=C3=A3o=20do=20Fisco=20sobre=20Pedido=20de=20Transfer?= =?UTF-8?q?=C3=AAncia=20de=20Cr=C3=A9dito=20de=20IBS=20em=20Opera=C3=A7?= =?UTF-8?q?=C3=B5es=20de=20Sucess=C3=A3o"=20e=20"Manifesta=C3=A7=C3=A3o=20?= =?UTF-8?q?do=20Fisco=20sobre=20Pedido=20de=20Transfer=C3=AAncia=20de=20Cr?= =?UTF-8?q?=C3=A9dito=20de=20CBS=20em=20Opera=C3=A7=C3=B5es=20de=20Sucess?= =?UTF-8?q?=C3=A3o"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 16 ++++ NFe.Classes/Servicos/Evento/detEventoTipos.cs | 16 ++++ .../Servicos/Tipos/NFeServicosTipos.cs | 28 +++++- NFe.Servicos/ServicoNfeFactory.cs | 2 + NFe.Servicos/ServicosNFe.cs | 90 ++++++++++++++++++- NFe.Utils/Conversao.cs | 4 +- NFe.Utils/Enderecos/Enderecador.cs | 6 +- NFe.Utils/Validacao/Validador.cs | 4 + 8 files changed, 160 insertions(+), 6 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index b5d824169..6ec63eb6e 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -462,6 +462,22 @@ public bool ShouldSerializegCredito() #endregion + #region Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão | Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão + + /// + /// Para ambos os eventos "Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão" + /// e "Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão" o campo representa: + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada + /// + public IndicadorDeferimento? indDeferimento { get; set; } + + public bool ShouldSerializeindDeferimento() + { + return indDeferimento != null; + } + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index 7f14c571a..fe62c1afe 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -192,4 +192,20 @@ public enum IndicadorAceitacao [XmlEnum("1")] Aceite = 1 } + + /// + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + /// 0 - Não aceite + /// 1 - Aceite + /// + public enum IndicadorDeferimento + { + [Description("Não aceite")] + [XmlEnum("0")] + NaoAceite = 0, + + [Description("Aceite")] + [XmlEnum("1")] + Aceite = 1 + } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 29d625a7a..67b2f3538 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -207,7 +207,17 @@ public enum ServicoNFe /// /// Serviço para permitir ser gerado pela sucessora em relação às notas fiscais de transferência de crédito de outra sucessora da mesma empresa sucedida para informar aceite da transferência de crédito de CBS. /// - RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + + /// + /// Serviço para permitir ser gerado pelo fisco em relação às notas fiscais de transferência de crédito para informar aceite ou não aceite da transferência de crédito de IBS. + /// + RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + + /// + /// Serviço para permitir ser gerado pelo fisco em relação às notas fiscais de transferência de crédito para informar aceite ou não aceite da transferência de crédito de CBS. + /// + RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao } /// @@ -257,6 +267,8 @@ public enum IndicadorSincronizacao /// 211150 - Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente /// 212110 - Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão + /// 412120 - Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// 412130 - Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// public enum NFeTipoEvento { @@ -400,6 +412,20 @@ public enum NFeTipoEvento [XmlEnum("212120")] TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao = 212120, + /// + /// 412120 - Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// + [Description("Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [XmlEnum("412120")] + TeNfeManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao = 412120, + + /// + /// 412130 - Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão + /// + [Description("Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [XmlEnum("412130")] + TeNfeManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao = 412130, + /// /// 210200 – Confirmação da Operação /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 1e25fbf01..d5d1a4048 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -294,6 +294,8 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index aa4ed4053..6b6121e20 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -424,7 +424,9 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao }; if ( !listaEventos.Contains(servicoEvento)) @@ -1496,7 +1498,7 @@ public RetornoRecepcaoEvento RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoPara /// sequencia do evento /// /// - /// Informações de crédito + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada /// /// /// @@ -1537,7 +1539,7 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci /// sequencia do evento /// /// - /// Informações de crédito + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada /// /// /// @@ -1570,6 +1572,88 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci return retornoRecepcaoEvento; } + + /// + /// Serviço para evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + IndicadorDeferimento indicadorDeferimento, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taFisco); + detalheEvento.indDeferimento = indicadorDeferimento; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + + /// + /// Serviço para evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + IndicadorDeferimento indicadorDeferimento, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taFisco); + detalheEvento.indDeferimento = indicadorDeferimento; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 7303f7887..101cf0ef4 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -63,7 +63,9 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel || servicoNFe == ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao - || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao) + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index f492de402..27e5dbe19 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1684,7 +1684,9 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoDeCombustivel, ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente, ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1775,6 +1777,8 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoSolicitacaoDeApropriacaoDeCreditoParaBensEServicosQueDependemDeAtividadeDoAdquirente: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 0675bd13a..758705618 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -147,6 +147,10 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e212110.00.xsd"; case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return "e212120_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: + return "e412120_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + return "e412130_v1.00.xsd"; } return null; } From bceadaf8ce7ce62bf8f770ae73b5b8efd825b9af Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Fri, 8 Aug 2025 15:37:05 -0300 Subject: [PATCH 71/85] Implementado evento: "Cancelamento de Evento" --- NFe.Classes/Servicos/Evento/detEvento.cs | 11 ++++- .../Servicos/Tipos/NFeServicosTipos.cs | 15 ++++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 43 +++++++++++++++++++ NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 2 + 7 files changed, 75 insertions(+), 4 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 6ec63eb6e..edd369bfa 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -161,7 +161,7 @@ public bool ShouldSerializeItensAverbados() } #endregion - #region Cancelamento Insucesso/Comprovante de Entrega NFe + #region Cancelamento Insucesso/Comprovante de Entrega NFe/ Cancelamento Evento /// /// P22 - Informar o número do Protocolo de Autorização do @@ -476,6 +476,15 @@ public bool ShouldSerializeindDeferimento() return indDeferimento != null; } + #endregion + + #region Cancelamento Evento + + /// + /// P23 - Código do evento autorizado a ser cancelado + /// + public string tpEventoAut {get; set;} + #endregion #endregion diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 67b2f3538..871944d51 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -217,7 +217,12 @@ public enum ServicoNFe /// /// Serviço para permitir ser gerado pelo fisco em relação às notas fiscais de transferência de crédito para informar aceite ou não aceite da transferência de crédito de CBS. /// - RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + + /// + /// Serviço para permitir ser gerado para permitir que o autor de um Evento já autorizado possa proceder o seu cancelamento. + /// + RecepcaoEventoCancelamentoDeEvento } /// @@ -244,6 +249,7 @@ public enum IndicadorSincronizacao /// /// Código do Tipo do Evento. + /// 110001 - Cancelamento de Evento /// 110110 - Carta de Correção /// 110140 - EPEC /// 110111 - Cancelamento @@ -272,6 +278,13 @@ public enum IndicadorSincronizacao /// public enum NFeTipoEvento { + /// + /// 110001 - Cancelamento de Evento + /// + [Description("Cancelamento de Evento")] + [XmlEnum("110001")] + TeNfeCancelamentoDeEvento = 110001, + /// /// 110110 - Carta de Correção /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index d5d1a4048..e201762ba 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -296,6 +296,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 6b6121e20..1d6f8b205 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1655,6 +1655,49 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans return retornoRecepcaoEvento; } + /// + /// Serviço para evento permitir que o autor de um Evento já autorizado possa proceder o seu cancelamento + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Código do evento autorizado a ser cancelado + /// + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + string tpEventoAut, + TipoAutor tipoAutor, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoCancelamentoDeEvento; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeCancelamentoDeEvento; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, tipoAutor); + detalheEvento.tpEventoAut = tpEventoAut; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, + servicoNfe, + versaoServicoRecepcao, + deveAssinar: true, + evento); + + return retornoRecepcaoEvento; + } + private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { var detEvento = new detEvento diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 101cf0ef4..697b14f51 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -65,7 +65,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao - || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao) + || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 27e5dbe19..9f8275f6f 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1686,7 +1686,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoCancelamentoDeEvento }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1779,6 +1780,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: + case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 758705618..cedbb4f2d 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -151,6 +151,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e412120_v1.00.xsd"; case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: return "e412130_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: + return "e110001_v1.00.xsd"; } return null; } From f6ab37e1501ff87348daccc4d0cf9bf93a71ef16 Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Mon, 11 Aug 2025 10:55:10 -0300 Subject: [PATCH 72/85] Ajustes --- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 4 ++-- NFe.Servicos/ServicosNFe.cs | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 871944d51..02791b2f7 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -421,7 +421,7 @@ public enum NFeTipoEvento /// /// 212120 - Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// - [Description("Manifestação sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [Description("Manifestação sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão")] [XmlEnum("212120")] TeNfeManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao = 212120, @@ -435,7 +435,7 @@ public enum NFeTipoEvento /// /// 412130 - Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão /// - [Description("Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão")] + [Description("Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operações de Sucessão")] [XmlEnum("412130")] TeNfeManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao = 412130, diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 1d6f8b205..e125d203e 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -426,7 +426,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao + ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, + ServicoNFe.RecepcaoEventoCancelamentoDeEvento }; if ( !listaEventos.Contains(servicoEvento)) @@ -1549,7 +1550,7 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci string cpfCnpj, string chaveNFe, IndicadorAceitacao indicadorAceitacao, - Estado? ufAutor = null, + Estado? ufAutor, string versaoAplicativo = null, DateTimeOffset? dataHoraEvento = null) { @@ -1663,6 +1664,7 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans /// /// /// Código do evento autorizado a ser cancelado + /// Número do Protocolo de Autorização do Evento a ser cancelado /// /// /// @@ -1673,6 +1675,7 @@ public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, string cpfCnpj, string chaveNFe, string tpEventoAut, + string nProtEvento, TipoAutor tipoAutor, Estado? ufAutor = null, string versaoAplicativo = null, @@ -1685,6 +1688,7 @@ public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, tipoAutor); detalheEvento.tpEventoAut = tpEventoAut; + detalheEvento.nProtEvento = nProtEvento; var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); From ee9272c6a4a6a17f8555156109b3045ca7c62b4a Mon Sep 17 00:00:00 2001 From: Vinicius Cunha Date: Wed, 13 Aug 2025 11:06:27 -0300 Subject: [PATCH 73/85] =?UTF-8?q?Adicionados=20campos=20restantes=20para?= =?UTF-8?q?=20eventos=20de=20manifesta=C3=A7=C3=A3o=20do=20fisco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 15 +++++++++++++++ NFe.Classes/Servicos/Evento/detEventoTipos.cs | 11 +++++++++++ NFe.Servicos/ServicosNFe.cs | 14 +++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index edd369bfa..1fa8c02ab 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -476,6 +476,21 @@ public bool ShouldSerializeindDeferimento() return indDeferimento != null; } + /// + /// P24 - Motivo deferimento + /// + public MotivoDeferimento? cMotivo { get; set; } + + public bool ShouldSerializecMotivo() + { + return cMotivo != null; + } + + /// + /// P24 - Descrição deferimento + /// + public string xMotivo { get; set; } + #endregion #region Cancelamento Evento diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index fe62c1afe..ebd15a301 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -208,4 +208,15 @@ public enum IndicadorDeferimento [XmlEnum("1")] Aceite = 1 } + + public enum MotivoDeferimento + { + [Description("Falta de manifestação de todas as sucessoras")] + [XmlEnum("1")] + FaltaDeManifestacaoDeTodasSucessoras, + + [Description("Outros.")] + [XmlEnum("2")] + Outros + } } \ No newline at end of file diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index e125d203e..05d88d918 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1573,7 +1573,7 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci return retornoRecepcaoEvento; } - + /// /// Serviço para evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão /// @@ -1582,6 +1582,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoSobrePedidoDeTransferenci /// /// /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + /// Motivo do deferimento + /// Descrição do deferimento /// /// /// @@ -1591,6 +1593,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans string cpfCnpj, string chaveNFe, IndicadorDeferimento indicadorDeferimento, + MotivoDeferimento motivoDeferimento, + string descricaoDeferimento, Estado? ufAutor = null, string versaoAplicativo = null, DateTimeOffset? dataHoraEvento = null) @@ -1602,6 +1606,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taFisco); detalheEvento.indDeferimento = indicadorDeferimento; + detalheEvento.cMotivo = motivoDeferimento; + detalheEvento.xMotivo = descricaoDeferimento; var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); @@ -1623,6 +1629,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans /// /// /// Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + /// Motivo do deferimento + /// Descrição do deferimento /// /// /// @@ -1632,6 +1640,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans string cpfCnpj, string chaveNFe, IndicadorDeferimento indicadorDeferimento, + MotivoDeferimento motivoDeferimento, + string descricaoDeferimento, Estado? ufAutor = null, string versaoAplicativo = null, DateTimeOffset? dataHoraEvento = null) @@ -1643,6 +1653,8 @@ public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTrans var detalheEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taFisco); detalheEvento.indDeferimento = indicadorDeferimento; + detalheEvento.cMotivo = motivoDeferimento; + detalheEvento.xMotivo = descricaoDeferimento; var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalheEvento); var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); From 4a6c727b6f2c50cf690678cdd89af2a85e169ca8 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 15 Aug 2025 12:43:46 -0300 Subject: [PATCH 74/85] =?UTF-8?q?feat:=20implementado=20evento=20Importa?= =?UTF-8?q?=C3=A7=C3=A3o=20em=20ALC/ZFM=20n=C3=A3o=20convertida=20em=20ise?= =?UTF-8?q?n=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...que.cs => gControleEstoqueImobilizacao.cs} | 2 +- .../Informacoes/Imobilizacao/gImobilizacao.cs | 2 +- .../Informacoes/ItemConsumo/gConsumo.cs | 55 +++++++++++++++++-- ...oqueItemConsumo.cs => gControleEstoque.cs} | 35 ++++++++++-- NFe.Classes/Servicos/Evento/detEvento.cs | 5 +- .../Servicos/Tipos/NFeServicosTipos.cs | 16 +++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 41 +++++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 2 + 11 files changed, 146 insertions(+), 20 deletions(-) rename NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/{gControleEstoque.cs => gControleEstoqueImobilizacao.cs} (98%) rename NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/{gControleEstoqueItemConsumo.cs => gControleEstoque.cs} (73%) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoqueImobilizacao.cs similarity index 98% rename from NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs rename to NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoqueImobilizacao.cs index 0410b4e4b..3015f13ea 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoque.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gControleEstoqueImobilizacao.cs @@ -33,7 +33,7 @@ namespace NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao { - public class gControleEstoque + public class gControleEstoqueImobilizacao { private decimal _qImobilizado; diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs index aa92836ad..e6b005026 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs @@ -67,6 +67,6 @@ public decimal vCBS /// /// P27 - Informações de crédito presumido por item /// - public gControleEstoque gControleEstoque { get; set; } + public gControleEstoqueImobilizacao gControleEstoque { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index f4e8e5928..42e7886db 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -32,6 +32,7 @@ /********************************************************************************/ using System.Xml.Serialization; +using NFe.Classes.Servicos.Tipos; namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo { @@ -39,42 +40,88 @@ public class gConsumo { private decimal _vIbs; private decimal _vCbs; + + public gConsumo(NFeTipoEvento nFeTipoEvento) + { + if (nFeTipoEvento == NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal) + _serializarValorIbsECbsComoAtributo = true; + } + + private gConsumo() { } // Construtor sem parâmetros necessário apenas para o XmlSerializer /// /// P24 - Corresponde ao atributo “nItem” do elemento “det” da NF-e de aquisição /// [XmlAttribute("nItem")] public int nItem { get; set; } - + /// /// P25 - Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal /// - [XmlAttribute("vIBS")] + [XmlIgnore] public decimal vIBS { get => _vIbs.Arredondar(2); set => _vIbs = value.Arredondar(2); } + [XmlAttribute("vIBS")] + public decimal vIBS_AsAttribute + { + get => vIBS; + set => vIBS = value; + } + + [XmlElement("vIBS")] + public decimal vIBS_AsElement + { + get => vIBS; + set => vIBS = value; + } + /// /// P26 - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal /// - [XmlAttribute("vCBS")] + [XmlIgnore] public decimal vCBS { get => _vCbs.Arredondar(2); set => _vCbs = value.Arredondar(2); } + + [XmlAttribute("vCBS")] + public decimal vCBS_AsAttribute + { + get => vCBS; + set => vCBS = value; + } + + [XmlElement("vCBS")] + public decimal vCBS_AsElement + { + get => vCBS; + set => vCBS = value; + } /// /// P27 - Informações de quantidade de estoque influenciadas pelo evento /// [XmlElement(ElementName = "gControleEstoque")] - public gControleEstoqueItemConsumo gControleEstoque { get; set; } + public gControleEstoque gControleEstoque { get; set; } /// /// P30 - Informações por item da NF-e de Uso e Consumo Pessoal /// public DFeReferenciado DFeReferenciado { get; set; } + + private bool _serializarValorIbsECbsComoAtributo { get; } + + public bool ShouldSerializevCBS_AsAttribute() => _serializarValorIbsECbsComoAtributo; + + public bool ShouldSerializevCBS_AsElement() => !_serializarValorIbsECbsComoAtributo; + + public bool ShouldSerializevIBS_AsAttribute() => _serializarValorIbsECbsComoAtributo; + + public bool ShouldSerializevIBS_AsElement() => !_serializarValorIbsECbsComoAtributo; } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs similarity index 73% rename from NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs rename to NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs index 6583bf5d7..5ff28fb6b 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoqueItemConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gControleEstoque.cs @@ -33,22 +33,45 @@ namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo { - public class gControleEstoqueItemConsumo + public class gControleEstoque { - private decimal _qConsumo; - + private decimal? _qConsumo; + private decimal? _qtde; + /// - /// P28 - Informar a quantidade para consumo de pessoa física + /// P28 - Informar a quantidade para consumo de pessoa física. + /// Use para o evento do tipo "Destinação de item para consumo pessoal". /// - public decimal qConsumo + public decimal? qConsumo { get => _qConsumo.Arredondar(4); set => _qConsumo = value.Arredondar(4); } /// - /// P29 - Informar a unidade relativa ao campo gConsumo + /// P28 - Informar a quantidade que não atendeu os requisitos para a conversão em isenção. + /// Use para o evento do tipo "Importação em ALC/ZFM não convertida em isenção". + /// + public decimal? qtde + { + get => _qtde.Arredondar(4); + set => _qtde = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo gConsumo. + /// Use para o evento do tipo "Destinação de item para consumo pessoal". /// public string uConsumo { get; set; } + + /// + /// P29 - Informar a unidade relativa ao campo gConsumo. + /// Use para o evento do tipo "Importação em ALC/ZFM não convertida em isenção". + /// + public string unidade { get; set; } + + public bool ShouldSerializeqConsumo() => qConsumo.HasValue; + + public bool ShouldSerializeqtde() => qtde.HasValue; } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 1fa8c02ab..3dca8f376 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -396,10 +396,7 @@ public bool ShouldSerializegCredPres() /// public List gConsumo { get; set; } - public bool ShouldSerializegConsumo() - { - return gConsumo != null; - } + public bool ShouldSerializegConsumo() => gConsumo != null; #endregion diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 02791b2f7..eb027b681 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -222,7 +222,13 @@ public enum ServicoNFe /// /// Serviço para permitir ser gerado para permitir que o autor de um Evento já autorizado possa proceder o seu cancelamento. /// - RecepcaoEventoCancelamentoDeEvento + RecepcaoEventoCancelamentoDeEvento, + + /// + /// Serviço para permitir que o adquirente das regiões incentivadas (ALC/ZFM) informe que a tributação na importação não se converteu em isenção de um + /// determinado item por não atender as condições da legislação + /// + RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao } /// @@ -262,6 +268,7 @@ public enum IndicadorSincronizacao /// 110750 - Conciliação Financeira da NF-e /// 110751 - Cancelamento Conciliação Financeira da NF-e /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + /// 112120 - Importação em ALC/ZFM não convertida em isenção /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -369,6 +376,13 @@ public enum NFeTipoEvento [XmlEnum("112110")] TeNfeInformacaoDeEfetivoPagamentoIntegralParaLiberarCreditoPresumidoDoAdquirente = 112110, + /// + /// 112120 - Importação em ALC/ZFM não convertida em isenção + /// + [Description("Importação em ALC/ZFM não convertida em isenção")] + [XmlEnum("112120")] + TeNfeImportacaoEmAlcZfmNaoConvertidaEmIsencao = 112120, + /// /// 211110 - Solicitação de Apropriação de crédito presumido /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index e201762ba..ad1ad8a85 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -297,6 +297,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: + case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 05d88d918..6f1aff13e 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -427,7 +427,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoCancelamentoDeEvento + ServicoNFe.RecepcaoEventoCancelamentoDeEvento, + ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao }; if ( !listaEventos.Contains(servicoEvento)) @@ -1713,6 +1714,44 @@ public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, return retornoRecepcaoEvento; } + + /// + /// Serviço para evento destinação de item para consumo pessoal + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// + /// Lista de informações de itens para consumo pessoal + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List informacoesPorItemDeImportacao, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeImportacaoEmAlcZfmNaoConvertidaEmIsencao; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaEmitente); + detalhesEvento.gConsumo = informacoesPorItemDeImportacao; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 697b14f51..41322b57e 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -66,7 +66,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao - || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento) + || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento + || servicoNFe == ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 9f8275f6f..055e3bba6 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1687,7 +1687,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoManifestacaoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, - ServicoNFe.RecepcaoEventoCancelamentoDeEvento + ServicoNFe.RecepcaoEventoCancelamentoDeEvento, + ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1781,6 +1782,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: + case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index cedbb4f2d..00f9bd027 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -153,6 +153,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e412130_v1.00.xsd"; case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: return "e110001_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: + return "e112120_v1.00.xsd"; } return null; } From 66370a47d04e86f7af0099a6ade1cfc441cc37f7 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 15 Aug 2025 16:57:50 -0300 Subject: [PATCH 75/85] =?UTF-8?q?refactor:=20adicionado=20valida=C3=A7?= =?UTF-8?q?=C3=A3o=20para=20instanciacao=20do=20gConsumo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Evento/Informacoes/ItemConsumo/gConsumo.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs index 42e7886db..6e8090b18 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs @@ -31,6 +31,8 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using System; +using System.Linq; using System.Xml.Serialization; using NFe.Classes.Servicos.Tipos; @@ -43,6 +45,15 @@ public class gConsumo public gConsumo(NFeTipoEvento nFeTipoEvento) { + var eventosPermitidos = new[] + { + NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal, + NFeTipoEvento.TeNfeImportacaoEmAlcZfmNaoConvertidaEmIsencao + }; + + if (!eventosPermitidos.Contains(nFeTipoEvento)) + throw new ArgumentException($"Não é permitido instanciar gConsumo com o evento {nFeTipoEvento}.", nameof(nFeTipoEvento)); + if (nFeTipoEvento == NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal) _serializarValorIbsECbsComoAtributo = true; } From 2ed84c58703c71ce8fb06cbfd6d44a6576df8f76 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Fri, 15 Aug 2025 16:59:31 -0300 Subject: [PATCH 76/85] wip: implementando evento perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente --- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 15 ++++++++++++++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 4 ++-- NFe.Utils/Conversao.cs | 3 ++- NFe.Utils/Enderecos/Enderecador.cs | 4 +++- NFe.Utils/Validacao/Validador.cs | 2 ++ 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index eb027b681..7a9e5d4a2 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -228,7 +228,13 @@ public enum ServicoNFe /// Serviço para permitir que o adquirente das regiões incentivadas (ALC/ZFM) informe que a tributação na importação não se converteu em isenção de um /// determinado item por não atender as condições da legislação /// - RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao + RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, + + /// + /// Serviço para permitir ao adquirente informar quando uma aquisição for objeto de roubo, perda, furto ou perecimento + /// Observação: O evento atual está relacionado aos bens que foram objeto de perecimento, perda, roubo ou furto em trânsito, em fornecimentos com frete FOB + /// + RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente } /// @@ -397,6 +403,13 @@ public enum NFeTipoEvento [XmlEnum("211120")] TeNfeDestinacaoDeItemParaConsumoPessoal = 211120, + /// + /// 211124 - Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + /// + [Description("Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente")] + [XmlEnum("211124")] + TeNfePerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente = 211124, + /// /// 211128 - Aceite de débito na apuração por emissão de nota de crédito /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index ad1ad8a85..88b317ae1 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -298,6 +298,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 6f1aff13e..bacbe8c35 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -428,7 +428,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoCancelamentoDeEvento, - ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao + ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente }; if ( !listaEventos.Contains(servicoEvento)) @@ -1721,7 +1722,6 @@ public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, /// Nº do lote /// sequencia do evento /// - /// /// /// Lista de informações de itens para consumo pessoal /// diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 41322b57e..888b90aa3 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -67,7 +67,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento - || servicoNFe == ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao) + || servicoNFe == ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao + || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 055e3bba6..b5a58a2a4 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1688,7 +1688,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeIbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoCancelamentoDeEvento, - ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao + ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1783,6 +1784,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao: case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 00f9bd027..6a1332108 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -155,6 +155,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e110001_v1.00.xsd"; case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: return "e112120_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: + return "e211124_v1.00.xsd"; } return null; } From 85441fe8c89212446d0c5e3372b36f9ce0b3b461 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 18 Aug 2025 08:35:17 -0300 Subject: [PATCH 77/85] =?UTF-8?q?refactor:=20ajustes=20no=20sum=C3=A1rio?= =?UTF-8?q?=20do=20evento=20de=20importa=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Servicos/ServicosNFe.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index bacbe8c35..e4aadc910 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -1717,13 +1717,13 @@ public RetornoRecepcaoEvento RecepcaoEventoCancelamentoDeEvento(int idLote, } /// - /// Serviço para evento destinação de item para consumo pessoal + /// Serviço para evento importação em ALC/ZFM não convertida em isenção /// /// Nº do lote /// sequencia do evento /// /// - /// Lista de informações de itens para consumo pessoal + /// Lista de informações por item da NF-e de importação /// /// /// From 52f9f070e0fcb21e8906838f2a36b2909a9c3a5a Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 18 Aug 2025 10:38:09 -0300 Subject: [PATCH 78/85] =?UTF-8?q?feat:=20finaliza=C3=A7=C3=A3o=20da=20impl?= =?UTF-8?q?ementa=C3=A7=C3=A3o=20do=20evento=20Perecimento,=20perda,=20rou?= =?UTF-8?q?bo=20ou=20furto=20durante=20o=20transporte=20contratado=20pelo?= =?UTF-8?q?=20adquirente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gControleEstoquePerecimento.cs | 54 ++++++++++++++ .../Informacoes/Perecimento/gPerecimento.cs | 73 +++++++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 16 +++- NFe.Servicos/ServicosNFe.cs | 38 ++++++++++ 4 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gPerecimento.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs new file mode 100644 index 000000000..8a6f18813 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs @@ -0,0 +1,54 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.Perecimento +{ + public class gControleEstoquePerecimento + { + private decimal _qPerecimento; + + /// + /// P28 - Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento + /// + public decimal qPerecimento + { + get => _qPerecimento.Arredondar(4); + set => _qPerecimento = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo qPerecimento + /// + public string uPerecimento { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gPerecimento.cs b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gPerecimento.cs new file mode 100644 index 000000000..d1edb1f8e --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gPerecimento.cs @@ -0,0 +1,73 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.Perecimento +{ + public class gPerecimento + { + private decimal _vIBS; + private decimal _vCBS; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado + /// + [XmlAttribute] + public int nItem { get; set; } + + /// + /// P25 - Valor do IBS na Nota de Aquisição correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + /// + public decimal vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// P26 - Valor da CBS na Nota de Aquisição correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + /// + public decimal vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + /// + /// P27 - Informações de quantidade de estoque influenciadas pelo evento + /// + [XmlElement("gControleEstoque")] + public gControleEstoquePerecimento gControleEstoque { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 3dca8f376..4191cbcf2 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -42,6 +42,7 @@ using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; +using NFe.Classes.Servicos.Evento.Informacoes.Perecimento; using Shared.NFe.Classes.Servicos.Evento; namespace NFe.Classes.Servicos.Evento @@ -392,7 +393,9 @@ public bool ShouldSerializegCredPres() #region Destinação de item para consumo pessoal /// - /// P23 - Informações por item da NF-e de Aquisição. Nota: a quantidade de ocorrências não pode ser maior que a quantidade de itens da NF-e de aquisição + /// P23 - Informações por item da NF-e de Aquisição (Use no evento: Destinação de item para consumo pessoal) + /// P23 - Informações por item da NF-e de importação (Use no evento: Importação em ALC/ZFM não convertida em isenção) + /// Nota: a quantidade de ocorrências não pode ser maior que a quantidade de itens da NF-e de aquisição /// public List gConsumo { get; set; } @@ -499,6 +502,17 @@ public bool ShouldSerializecMotivo() #endregion + #region Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + + /// + /// P23 - Informações por item da Nota de Aquisição + /// + public List gPerecimento { get; set; } + + public bool ShouldSerializegPerecimento() => gPerecimento != null; + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index e4aadc910..ae951f3bd 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -83,6 +83,7 @@ using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; +using NFe.Classes.Servicos.Evento.Informacoes.Perecimento; namespace NFe.Servicos { @@ -1752,6 +1753,43 @@ public RetornoRecepcaoEvento RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsen return retornoRecepcaoEvento; } + + /// + /// Serviço para evento perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Lista de informações por item da Nota de Aquisição + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List informacoesPorItemDaNotaDeAquisicao, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfePerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaDestinataria); + detalhesEvento.gPerecimento = informacoesPorItemDaNotaDeAquisicao; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { From deedb4a71678fd2885867f9b123adef3606e3f19 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 18 Aug 2025 11:24:23 -0300 Subject: [PATCH 79/85] feat: implementado evento "Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor" --- .../gControleEstoquePerecimento.cs | 32 +++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 5 ++- .../Servicos/Tipos/NFeServicosTipos.cs | 22 ++++++++-- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 40 ++++++++++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 2 + 8 files changed, 102 insertions(+), 7 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs index 8a6f18813..fada487c9 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/Perecimento/gControleEstoquePerecimento.cs @@ -31,15 +31,20 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ +using System.Xml.Serialization; + namespace NFe.Classes.Servicos.Evento.Informacoes.Perecimento { public class gControleEstoquePerecimento { private decimal _qPerecimento; + private decimal? _vIBS; + private decimal? _vCBS; /// /// P28 - Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento /// + [XmlElement(Order = 1)] public decimal qPerecimento { get => _qPerecimento.Arredondar(4); @@ -49,6 +54,33 @@ public decimal qPerecimento /// /// P29 - Informar a unidade relativa ao campo qPerecimento /// + [XmlElement(Order = 2)] public string uPerecimento { get; set; } + + /// + /// P31 - Valor do crédito IBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + /// Evento: perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + /// + [XmlElement(Order = 3)] + public decimal? vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// P32 - Valor do crédito CBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + /// Evento: perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + /// + [XmlElement(Order = 4)] + public decimal? vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + public bool ShouldSerializevIBS() => vIBS.HasValue; + + public bool ShouldSerializevCBS() => vCBS.HasValue; } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 4191cbcf2..f219efd2e 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -505,7 +505,10 @@ public bool ShouldSerializecMotivo() #region Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente /// - /// P23 - Informações por item da Nota de Aquisição + /// P23 - Informações por item da Nota de Aquisição + /// (Evento: perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente). + /// P23 - Informações por item da Nota de Fornecimento + /// (Evento: perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor). /// public List gPerecimento { get; set; } diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 7a9e5d4a2..6f9ef894e 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -231,10 +231,16 @@ public enum ServicoNFe RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, /// - /// Serviço para permitir ao adquirente informar quando uma aquisição for objeto de roubo, perda, furto ou perecimento - /// Observação: O evento atual está relacionado aos bens que foram objeto de perecimento, perda, roubo ou furto em trânsito, em fornecimentos com frete FOB + /// Serviço para permitir ao adquirente informar quando uma aquisição for objeto de roubo, perda, furto ou perecimento. + /// Observação: O evento atual está relacionado aos bens que foram objeto de perecimento, perda, roubo ou furto em trânsito, em fornecimentos com frete FOB. /// - RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente + RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente, + + /// + /// Serviço para permitir ao fornecedor informar quando um bem for objeto de roubo, perda, furto ou perecimento antes da entrega, durante o transporte contratado pelo fornecedor. + /// Observação: O evento atual está relacionado aos bens móveis materiais que foram objeto de perecimento, perda, roubo ou furto em trânsito, em fornecimentos com frete CIF. + /// + RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor } /// @@ -281,6 +287,9 @@ public enum IndicadorSincronizacao /// 210240 – Operação não Realizada /// 211110 - Solicitação de Apropriação de crédito presumido /// 211120 - Destinação de item para consumo pessoal + /// 211124 - Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + /// 112130 - Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + /// 211128 - Aceite de débito na apuração por emissão de nota de crédito /// 211130 - Imobilização de Item /// 211140 - Solicitação de Apropriação de Crédito de Combustível /// 211150 - Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente @@ -410,6 +419,13 @@ public enum NFeTipoEvento [XmlEnum("211124")] TeNfePerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente = 211124, + /// + /// 112130 - Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + /// + [Description("Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor")] + [XmlEnum("112130")] + TeNfePerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor = 112130, + /// /// 211128 - Aceite de débito na apuração por emissão de nota de crédito /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 88b317ae1..45a3612ff 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -299,6 +299,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index ae951f3bd..07ea8c95a 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -430,7 +430,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoCancelamentoDeEvento, ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, - ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente, + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor }; if ( !listaEventos.Contains(servicoEvento)) @@ -1790,6 +1791,43 @@ public RetornoRecepcaoEvento RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOT return retornoRecepcaoEvento; } + + /// + /// Serviço para evento perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Lista de informações por item da Nota de Fornecimento + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List informacoesPorItemDaNotaDeFornecimento, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfePerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaEmitente); + detalhesEvento.gPerecimento = informacoesPorItemDaNotaDeFornecimento; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 888b90aa3..69e02d748 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -68,7 +68,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento || servicoNFe == ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao - || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente) + || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente + || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index b5a58a2a4..f8fc27ac3 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1689,7 +1689,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoManifestacaoDoFiscoSobrePedidoDeTransferenciaDeCreditoDeCbsEmOperacoesDeSucessao, ServicoNFe.RecepcaoEventoCancelamentoDeEvento, ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, - ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente, + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1785,6 +1786,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoCancelamentoDeEvento: case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 6a1332108..1038e6cdc 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -157,6 +157,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e112120_v1.00.xsd"; case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: return "e211124_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: + return "e112130_v1.00.xsd"; } return null; } From f40fb738079073f1a145cf0cebbb8744142f1a17 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 18 Aug 2025 12:07:38 -0300 Subject: [PATCH 80/85] =?UTF-8?q?feat:=20implementado=20evento=20"Fornecim?= =?UTF-8?q?ento=20n=C3=A3o=20realizado=20com=20pagamento=20antecipado"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gControleEstoqueItemNaoFornecido.cs | 54 ++++++++++++++ .../ItemNaoFornecido/gItemNaoFornecido.cs | 73 +++++++++++++++++++ NFe.Classes/Servicos/Evento/detEvento.cs | 12 +++ .../Servicos/Tipos/NFeServicosTipos.cs | 15 +++- NFe.Servicos/ServicoNfeFactory.cs | 1 + NFe.Servicos/ServicosNFe.cs | 41 ++++++++++- NFe.Utils/Conversao.cs | 3 +- NFe.Utils/Enderecos/Enderecador.cs | 4 +- NFe.Utils/Validacao/Validador.cs | 2 + 9 files changed, 201 insertions(+), 4 deletions(-) create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gControleEstoqueItemNaoFornecido.cs create mode 100644 NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gItemNaoFornecido.cs diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gControleEstoqueItemNaoFornecido.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gControleEstoqueItemNaoFornecido.cs new file mode 100644 index 000000000..a2e779985 --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gControleEstoqueItemNaoFornecido.cs @@ -0,0 +1,54 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +namespace NFe.Classes.Servicos.Evento.Informacoes.ItemNaoFornecido +{ + public class gControleEstoqueItemNaoFornecido + { + private decimal _qNaoFornecida; + + /// + /// P28 - Informar a quantidade que não foi fornecida e teve o imposto antecipado + /// + public decimal qNaoFornecida + { + get => _qNaoFornecida.Arredondar(4); + set => _qNaoFornecida = value.Arredondar(4); + } + + /// + /// P29 - Informar a unidade relativa ao campo qNaoFornecida + /// + public string uNaoFornecida { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gItemNaoFornecido.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gItemNaoFornecido.cs new file mode 100644 index 000000000..a83d4d9ad --- /dev/null +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemNaoFornecido/gItemNaoFornecido.cs @@ -0,0 +1,73 @@ +/********************************************************************************/ +/* Projeto: Biblioteca ZeusNFe */ +/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */ +/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */ +/* */ +/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */ +/* Zeusdev Tecnologia LTDA ME */ +/* */ +/* Você pode obter a última versão desse arquivo no GitHub */ +/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */ +/* */ +/* */ +/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */ +/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */ +/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */ +/* qualquer versão posterior. */ +/* */ +/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */ +/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */ +/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/ +/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */ +/* */ +/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/ +/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */ +/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ +/* Você também pode obter uma copia da licença em: */ +/* http://www.opensource.org/licenses/lgpl-license.php */ +/* */ +/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */ +/* http://www.zeusautomacao.com.br/ */ +/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ +/********************************************************************************/ + +using System.Xml.Serialization; + +namespace NFe.Classes.Servicos.Evento.Informacoes.ItemNaoFornecido +{ + public class gItemNaoFornecido + { + private decimal _vIBS; + private decimal _vCBS; + + /// + /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado + /// + [XmlAttribute] + public int nItem { get; set; } + + /// + /// P25 - Valor do IBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida + /// + public decimal vIBS + { + get => _vIBS; + set => _vIBS = value.Arredondar(2); + } + + /// + /// P26 - Valor da CBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida + /// + public decimal vCBS + { + get => _vCBS; + set => _vCBS = value.Arredondar(2); + } + + /// + /// P27 - Informações de quantidade de estoque influenciadas pelo evento + /// + [XmlElement("gControleEstoque")] + public gControleEstoqueItemNaoFornecido gControleEstoque { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index f219efd2e..f8fd6477c 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -42,6 +42,7 @@ using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; +using NFe.Classes.Servicos.Evento.Informacoes.ItemNaoFornecido; using NFe.Classes.Servicos.Evento.Informacoes.Perecimento; using Shared.NFe.Classes.Servicos.Evento; @@ -516,6 +517,17 @@ public bool ShouldSerializecMotivo() #endregion + #region Fornecimento não realizado com pagamento antecipado + + /// + /// P23 - Informações por item da Nota de Pagamento antecipado + /// + public List gItemNaoFornecido { get; set; } + + public bool ShouldSerializegItemNaoFornecido() => gItemNaoFornecido != null; + + #endregion + #endregion } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 6f9ef894e..2940e5bb7 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -240,7 +240,12 @@ public enum ServicoNFe /// Serviço para permitir ao fornecedor informar quando um bem for objeto de roubo, perda, furto ou perecimento antes da entrega, durante o transporte contratado pelo fornecedor. /// Observação: O evento atual está relacionado aos bens móveis materiais que foram objeto de perecimento, perda, roubo ou furto em trânsito, em fornecimentos com frete CIF. /// - RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor + RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor, + + /// + /// Serviço para permitir ao fornecedor informar que um pagamento antecipado não teve o respectivo fornecimento realizado + /// + RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado } /// @@ -281,6 +286,7 @@ public enum IndicadorSincronizacao /// 110751 - Cancelamento Conciliação Financeira da NF-e /// 112110 - Informação de efetivo pagamento integral para liberar crédito presumido do adquirente /// 112120 - Importação em ALC/ZFM não convertida em isenção + /// 112140 - Fornecimento não realizado com pagamento antecipado /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -398,6 +404,13 @@ public enum NFeTipoEvento [XmlEnum("112120")] TeNfeImportacaoEmAlcZfmNaoConvertidaEmIsencao = 112120, + /// + /// 112140 - Fornecimento não realizado com pagamento antecipado + /// + [Description("Fornecimento não realizado com pagamento antecipado")] + [XmlEnum("112140")] + TeNfeFornecimentoNaoRealizadoComPagamentoAntecipado = 112140, + /// /// 211110 - Solicitação de Apropriação de crédito presumido /// diff --git a/NFe.Servicos/ServicoNfeFactory.cs b/NFe.Servicos/ServicoNfeFactory.cs index 45a3612ff..6f121d8ca 100644 --- a/NFe.Servicos/ServicoNfeFactory.cs +++ b/NFe.Servicos/ServicoNfeFactory.cs @@ -300,6 +300,7 @@ public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: + case ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado: return new RecepcaoEvento4(url, certificado, cfg.TimeOut); } diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 07ea8c95a..87cab5de9 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -83,6 +83,7 @@ using NFe.Classes.Servicos.Evento.Informacoes.CreditoPresumido; using NFe.Classes.Servicos.Evento.Informacoes.Imobilizacao; using NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo; +using NFe.Classes.Servicos.Evento.Informacoes.ItemNaoFornecido; using NFe.Classes.Servicos.Evento.Informacoes.Perecimento; namespace NFe.Servicos @@ -431,7 +432,8 @@ private RetornoRecepcaoEvento RecepcaoEvento(int idlote, List eventos, S ServicoNFe.RecepcaoEventoCancelamentoDeEvento, ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente, - ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor, + ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado, }; if ( !listaEventos.Contains(servicoEvento)) @@ -1828,6 +1830,43 @@ public RetornoRecepcaoEvento RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOT return retornoRecepcaoEvento; } + + /// + /// Serviço para evento fornecimento não realizado com pagamento antecipado + /// + /// Nº do lote + /// sequencia do evento + /// + /// + /// Lista de informações por item da Nota de Pagamento antecipado + /// + /// + /// + /// + public RetornoRecepcaoEvento RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado(int idLote, + int sequenciaEvento, + string cpfCnpj, + string chaveNFe, + List informacoesPorItemDaNotaDePagamentoAntecipado, + Estado? ufAutor = null, + string versaoAplicativo = null, + DateTimeOffset? dataHoraEvento = null) + { + const ServicoNFe servicoNfe = ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado; + const NFeTipoEvento nfeTipoEvento = NFeTipoEvento.TeNfeFornecimentoNaoRealizadoComPagamentoAntecipado; + var versaoServicoRecepcao = _cFgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; + var versaoServicoRecepcaoString = servicoNfe.VersaoServicoParaString(versaoServicoRecepcao); + + var detalhesEvento = ObterDetalhesEvento(versaoServicoRecepcaoString, versaoAplicativo, nfeTipoEvento, ufAutor, TipoAutor.taEmpresaEmitente); + detalhesEvento.gItemNaoFornecido = informacoesPorItemDaNotaDePagamentoAntecipado; + + var informacoesEventoEnv = ObterInformacoesEventoEnv(sequenciaEvento, chaveNFe, cpfCnpj, versaoServicoRecepcaoString, cOrgao: Estado.SVRS, dataHoraEvento, nfeTipoEvento, detalhesEvento); + var evento = ObterEvento(versaoServicoRecepcaoString, informacoesEventoEnv); + + var retornoRecepcaoEvento = EnviarEObterRetornoRecepcaoEvento(idLote, servicoNfe, versaoServicoRecepcao, deveAssinar: true, evento); + + return retornoRecepcaoEvento; + } private detEvento ObterDetalhesEvento(string versaoServico, string versaoAplicativo, NFeTipoEvento nfeTipoEvento, Estado? cOrgaoAutor, TipoAutor tipoAutor) { diff --git a/NFe.Utils/Conversao.cs b/NFe.Utils/Conversao.cs index 69e02d748..7dc5ea847 100644 --- a/NFe.Utils/Conversao.cs +++ b/NFe.Utils/Conversao.cs @@ -69,7 +69,8 @@ public static string VersaoServicoParaString(this ServicoNFe servicoNFe, VersaoS || servicoNFe == ServicoNFe.RecepcaoEventoCancelamentoDeEvento || servicoNFe == ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente - || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor) + || servicoNFe == ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor + || servicoNFe == ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado) { return "1.00"; } diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index f8fc27ac3..140de180d 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1690,7 +1690,8 @@ private static void AdicionarEnderecosDosServicosDosEventosDeApuracaoDoIbsECbs(A ServicoNFe.RecepcaoEventoCancelamentoDeEvento, ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao, ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente, - ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor + ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor, + ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado }; var urlsParaOsServicosDosEventosDeApuracaoDoIbsECbs = new Dictionary @@ -1787,6 +1788,7 @@ public static void CarregarEnderecos() case ServicoNFe.RecepcaoEventoImportacaoEmAlcZfmNaoConvertidaEmIsencao: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloAdquirente: case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: + case ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado: return cfgServico.VersaoRecepcaoEventosDeApuracaoDoIbsECbs; } return null; diff --git a/NFe.Utils/Validacao/Validador.cs b/NFe.Utils/Validacao/Validador.cs index 1038e6cdc..1cfa2b7b0 100644 --- a/NFe.Utils/Validacao/Validador.cs +++ b/NFe.Utils/Validacao/Validador.cs @@ -159,6 +159,8 @@ internal static string ObterArquivoSchema(ServicoNFe servicoNFe, VersaoServico v return "e211124_v1.00.xsd"; case ServicoNFe.RecepcaoEventoPerecimentoPerdaRouboOuFurtoDuranteOTransporteContratadoPeloFornecedor: return "e112130_v1.00.xsd"; + case ServicoNFe.RecepcaoEventoFornecimentoNaoRealizadoComPagamentoAntecipado: + return "e112140_v1.00.xsd"; } return null; } From 6371a45c0729d20465337af2995f30356194ef3f Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 18 Aug 2025 12:15:48 -0300 Subject: [PATCH 81/85] =?UTF-8?q?refactor:=20refatora=20sum=C3=A1rio=20do?= =?UTF-8?q?=20gConsumo=20em=20detEvento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.Classes/Servicos/Evento/detEvento.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index f8fd6477c..44bd32a54 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -394,8 +394,10 @@ public bool ShouldSerializegCredPres() #region Destinação de item para consumo pessoal /// - /// P23 - Informações por item da NF-e de Aquisição (Use no evento: Destinação de item para consumo pessoal) - /// P23 - Informações por item da NF-e de importação (Use no evento: Importação em ALC/ZFM não convertida em isenção) + /// P23 - Informações por item da NF-e de Aquisição + /// Evento: Destinação de item para consumo pessoal + /// P23 - Informações por item da NF-e de importação + /// Evento: Importação em ALC/ZFM não convertida em isenção /// Nota: a quantidade de ocorrências não pode ser maior que a quantidade de itens da NF-e de aquisição /// public List gConsumo { get; set; } From 988ec2e8fced4688ef5fde2c1ff10156b608144d Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 22 Sep 2025 15:12:33 -0300 Subject: [PATCH 82/85] feat: atualizado schemas para o pacote PL_010b_NT2025_002_v1.21 --- .../Schemas/DFeTiposBasicos_v1.00.xsd | 1097 +++++++++++++++++ NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd | 176 ++- NFe.AppTeste/Schemas/nfe_v4.00.xsd | 1 + NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd | 8 +- .../Schemas/xmldsig-core-schema_v1.01.xsd | 2 +- 5 files changed, 1264 insertions(+), 20 deletions(-) create mode 100644 NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd diff --git a/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd b/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd new file mode 100644 index 000000000..44e4ec49d --- /dev/null +++ b/NFe.AppTeste/Schemas/DFeTiposBasicos_v1.00.xsd @@ -0,0 +1,1097 @@ + + + + + + Tipo string genérico + + + + + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Código de Classificação Tributária do IBS e da CBS + + + + + + + + + Código de Classificação do Crédito Presumido do IBS e da CBS, conforme tabela cCredPres + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais + + + + + + + + + Tipo Decimal com 11 inteiros, podendo ter 4 decimais (utilizado em tags opcionais) + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais + + + + + + + + + Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais + + + + + + + + + Tipo da Operação com Ente Governamental + + + + + + + + + + Tipo de Ente Governamental + + + + + + + + + + + + Tipo de classificação do Crédito Presumido IBS ZFM + + + + + + + + + + + + Grupo de informações da Tributação da NFCom + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Grupo de informações da Tributação da NF3e + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Grupo de informações da Tributação do CTe + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Grupo de informações da Tributação do BPe + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Grupo de informações da Tributação da NFCe + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + + + + Grupo de informações da Tributação da NFe + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + Informar essa opção da Choice para Monofasia + + + + + Informar essa opção da Choice para o CST 800 + + + + + + Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM + + + + + + + Grupo de informações do Imposto Seletivo + + + + + Código Situação Tributária do Imposto Seletivo + + + + + + + Valor do BC + + + + + Alíquota do Imposto Seletivo (percentual) + + + + + Alíquota do Imposto Seletivo (por valor) + + + + + + Unidade de medida apropriada especificada em Lei Ordinaria para fins de apuração do Imposto Seletivo + + + + + + + + + + + Quantidade com abse no campo uTrib informado + + + + + + Valor do Imposto Seletivo calculado + + + + + + + + Grupo de informações de totais do Imposto Seletivo + + + + + Valor Total do Imposto Seletivo + + + + + + + Grupo de informações de totais da CBS/IBS + + + + + Total Base de Calculo + + + + + Totalização do IBS + + + + + + Totalização do IBS de competência da UF + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total do IBS Estadual + + + + + + + + Totalização do IBS de competência Municipal + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total do IBS Municipal + + + + + + + + Valor total do IBS + + + + + Total do Crédito Presumido + + + + + Total do Crédito Presumido Condição Suspensiva + + + + + + + + Totalização da CBS + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total da CBS + + + + + Total do Crédito Presumido + + + + + Total do Crédito Presumido Condição Suspensiva + + + + + + + + + + Grupo de informações de totais da CBS/IBS com monofasia + + + + + Total Base de Calculo + + + + + Totalização do IBS + + + + + + Totalização do IBS de competência da UF + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total do IBS Estadual + + + + + + + + Totalização do IBS de competência Municipal + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total do IBS Municipal + + + + + + + + Valor total do IBS + + + + + Total do Crédito Presumido + + + + + Total do Crédito Presumido Condição Suspensiva + + + + + + + + Totalização da CBS + + + + + + Total do Diferimento + + + + + Total de devoluções de tributos + + + + + Valor total da CBS + + + + + Total do Crédito Presumido + + + + + Total do Crédito Presumido Condição Suspensiva + + + + + + + + Totais da Monofasia + Só deverá ser utilizado para DFe modelos 55 e 65 + + + + + + Valor total do IBS monofásico + + + + + Valor total da CBS monofásica + + + + + Valor total do IBS monofásico sujeito a retenção + + + + + Valor total da CBS monofásica sujeita a retenção + + + + + Valor do IBS monofásico retido anteriormente + + + + + Valor da CBS monofásica retida anteriormente + + + + + + + + + + Tipo Monofasia + + + + Monofasia + + + + Grupo de informações da Tributação Monofásica padrão + + + + + + Quantidade tributada na monofasia + + + + + Alíquota ad rem do IBS + + + + + Alíquota ad rem da CBS + + + + + Valor do IBS monofásico + + + + + Valor da CBS monofásica + + + + + + + + Grupo de informações da Tributação Monofásica sujeita a retenção + + + + + + Quantidade tributada sujeita a retenção. + + + + + Alíquota ad rem do IBS sujeito a retenção + + + + + Valor do IBS monofásico sujeito a retenção + + + + + Alíquota ad rem da CBS sujeita a retenção + + + + + Valor da CBS monofásica sujeita a retenção + + + + + + + + Grupo de informações da Tributação Monofásica retida anteriormente + + + + + + Quantidade tributada retida anteriormente + + + + + Alíquota ad rem do IBS retido anteriormente + + + + + Valor do IBS retido anteriormente + + + + + Alíquota ad rem da CBS retida anteriormente + + + + + Valor da CBS retida anteriormente + + + + + + + + Grupo de informações do diferimento da Tributação Monofásica + + + + + + Percentual do diferimento do imposto monofásico + + + + + Valor do IBS monofásico diferido + + + + + Percentual do diferimento do imposto monofásico + + + + + Valor da CBS monofásica diferida + + + + + + + + Total de IBS monofásico do item + + + + + Total da CBS monofásica do item + + + + + + + Tipo CBS IBS Completo + + + + IBS / CBS + + + + Valor do BC + + + + + + Grupo de informações do IBS na UF + + + + + + Aliquota do IBS de competência das UF + + + + + Grupo de campos do Diferimento + + + + + Grupo de Informações da devolução de tributos + + + + + Grupo de campos da redução de aliquota + + + + + Valor do IBS de competência das UF + + + + + + + + Grupo de Informações do IBS no Município + + + + + + Aliquota do IBS Municipal + + + + + Grupo de campos do Diferimento + + + + + Grupo de Informações da devolução de tributos + + + + + Grupo de campos da redução de aliquota + + + + + Valor do IBS Municipal + + + + + + + + Valor do IBS + + + + + + Grupo de Tributação da CBS + + + + + + Aliquota da CBS + + + + + Grupo de campos do Diferimento + + + + + Grupo de Informações da devolução de tributos + + + + + Grupo de campos da redução de aliquota + + + + + Valor da CBS + + + + + + + + Grupo de informações da Tributação Regular. Informar como seria a tributação caso não cumprida a condição resolutória/suspensiva. Exemplo 1: Art. 442, §4. Operações com ZFM e ALC. Exemplo 2: Operações com suspensão do tributo. + + + + + Grupo de Informações do Crédito Presumido referente ao IBS, quando aproveitado pelo emitente do documento. + + + + + Grupo de Informações do Crédito Presumido referente a CBS, quando aproveitado pelo emitente do documento. + + + + + Grupo de informações da composição do valor do IBS e da CBS em compras governamental + + + + + + + Tipo Redução Base de Cálculo + + + + + Percentual de redução de aliquota do cClassTrib + + + + + Aliquota Efetiva que será aplicada a Base de Calculo + + + + + + + Tipo Crédito Presumido + + + + + Código de Classificação do Crédito Presumido do IBS e da CBS + + + + + Percentual do Crédito Presumido + + + + + + Valor do Crédito Presumido + + + + + Valor do Crédito Presumido Condição Suspensiva, preencher apenas para cCredPres que possui indicação de Condição Suspensiva + + + + + + + + Tipo Diferimento + + + + + Percentual do diferimento + + + + + Valor do diferimento + + + + + + + Tipo Devolução Tributo + + + + + Valor do tributo devolvido. No fornecimento de energia elétrica, água, esgoto e +gás natural e em outras hipóteses definidas no regulamento + + + + + + + Tipo Tributação Regular + + + + + Código da Situação Tributária do IBS e CBS + Informar qual seria o CST caso não cumprida a condição resolutória/suspensiva + + + + + Informar qual seria o cClassTrib caso não cumprida a condição resolutória/suspensiva + + + + + Alíquota do IBS da UF + Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva + + + + + Valor do IBS da UF + Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva + + + + + Alíquota do IBS do Município + Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva + + + + + Valor do IBS do Município + Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva + + + + + Alíquota da CBS + Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva + + + + + Valor da CBS + Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva + + + + + + + Tipo Tributação Compra Governamental + + + + + + Valor que seria devido a UF, sem aplicação do Art. 473. da LC 214/2025 + + + + + + Valor que seria devido ao município, sem aplicação do Art. 473. da LC 214/2025 + + + + + + Valor que seria devido a CBS, sem aplicação do Art. 473. da LC 214/2025 + + + + + + + Tipo Compras Governamentais + Cada DFe que utilizar deverá utilizar esses tipo no grupo ide + + + + + Para administração pública direta e suas autarquias e fundações: +1=União +2=Estados +3=Distrito Federal +4=Municípios + + + + + Percentual de redução de aliquota em compra goverrnamental + + + + + + + Tipo Compras Governamentais + Cada DFe que utilizar deverá utilizar esses tipo no grupo ide + + + + + Para administração pública direta e suas autarquias e fundações: +1=União +2=Estados +3=Distrito Federal +4=Municípios + + + + + Percentual de redução de aliquota em compra goverrnamental + + + + + Tipo da operação com ente governamental: +1 - Fornecimento +2 - Recebimento do Pagamento + + + + + + + Tipo Transferência de Crédito + + + + + Valor do IBS a ser transferido + + + + + Valor da CBS a ser transferida + + + + + + + Tipo Informações do crédito presumido de IBS para fornecimentos a partir da ZFM + + + + + Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM + 0 - Sem crédito presumido; +1 - Bens de consumo final (55%); +2 - Bens de capital (75%); +3 - Bens intermediários (90,25%); +4 - Bens de informática e outros definidos em legislação (100%). +OBS: Percentuais definidos no art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido + + + + + + Valor do crédito presumido calculado sobre o saldo devedor apurado + + + + + diff --git a/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd b/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd index 8f0ccd229..770676266 100644 --- a/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd +++ b/NFe.AppTeste/Schemas/leiauteNFe_v4.00.xsd @@ -1,5 +1,5 @@ - + @@ -17,10 +17,11 @@ - + + Tipo Nota Fiscal Eletrônica @@ -123,6 +124,12 @@ SCAN 900-999 Código do Município de Ocorrência do Fato Gerador (utilizar a tabela do IBGE) + + + Informar o município de ocorrência do fato gerador do fato gerador do IBS / CBS. +Campo preenchido somente quando “indPres = 5 (Operação presencial, fora do estabelecimento) ”, e não tiver endereço do destinatário (Grupo: E05) ou local de entrega (Grupo: G01). + + Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato; 2-DANFe Paisagem;3-DANFe Simplificado; @@ -190,7 +197,25 @@ SCAN 900-999 1 - NFe normal 2 - NFe complementar 3 - NFe de ajuste -4 - Devolução/Retorno +4 - Devolução/Retorno +5 - Nota de crédito +6 - Nota de débito + + + + + Tipo de Nota de Débito: +01=Transferência de créditos para Cooperativas; +02=Anulação de Crédito por Saídas Imunes/Isentas; +03=Débitos de notas fiscais não processadas na apuração; +04=Multa e juros; +05=Transferência de crédito de sucessão. + + + + + + Tipo de Nota de Crédito @@ -466,6 +491,25 @@ Preencher com "2B", quando se tratar de Cupom Fiscal emitido por máqu + + + Grupo de Compras Governamentais + + + + + Informado para abater as parcelas de antecipação de pagamento, conforme Art. 10. § 4º + + + + + + Chave de acesso da NF-e de antecipação de pagamento + + + + + @@ -1037,7 +1081,7 @@ Formato ”CFOP9999”. - Valor unitário de tributação - - alterado para aceitar 0 a 10 casas decimais e 11 inteiros + Valor unitário de tributação - alterado para aceitar 0 a 10 casas decimais e 11 inteiros @@ -1074,10 +1118,20 @@ Formato ”CFOP9999”. + + + Indicador de fornecimento de bem móvel usado: 1-Bem Móvel Usado + + + + + + + + - Delcaração de Importação -(NT 2011/004) + Declaração de Importação (NT 2011/004) @@ -2041,7 +2095,7 @@ ambiente. Valor estimado total de impostos federais, estaduais e municipais - + @@ -5019,6 +5073,16 @@ Substituição Tributaria; + + + Grupo de informações do Imposto Seletivo + + + + + Grupo de informações dos tributos IBS, CBS e Imposto Seletivo + + @@ -5117,6 +5181,36 @@ Substituição Tributaria; + + + Valor total do Item, correspondente à sua participação no total da nota. A soma dos itens deverá corresponder ao total da nota. + + + + + Referenciamento de item de outros DFe + + + + + + Chave de Acesso do DFe referenciado + + + + + Número do item do documento referenciado. Corresponde ao atributo nItem do elemento det do documento original. + + + + + + + + + + + @@ -5415,6 +5509,21 @@ Substituição Tributaria; + + + Valores totais da NF com Imposto Seletivo + + + + + Valores totais da NF com IBS / CBS + + + + + Valor Total da NF considerando os impostos por fora IBS, CBS e IS + + @@ -6292,7 +6401,7 @@ tipo de ato concessório: - + Defensivo Agrícola / Agrotóxico @@ -6303,8 +6412,8 @@ tipo de ato concessório: Número do Receituário ou Receita do Defensivo / Agrotóxico - - + + @@ -6340,7 +6449,7 @@ tipo de ato concessório: - + Série da Guia @@ -6403,9 +6512,18 @@ tipo de ato concessório: - - - + + + + + + + + + + + + @@ -7221,6 +7339,34 @@ alterado para tamanho variavel 1-4. (NT2011/004) + + + + + + + Tipo de Nota de Débito: 01=Transferência de créditos para Cooperativas; 02=Anulação de Crédito por Saídas Imunes/Isentas; 03=Débitos de notas fiscais não processadas na apuração; 04=Multa e juros; 05=Transferência de crédito de sucessão); 06=Pagamento antecipado; 07=Perda em estoque + + + + + + + + + + + + + + + Tipo de Nota de Crédito: 01=Multa e juros; 02=Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25); 03=Retorno + + + + + + @@ -7409,4 +7555,4 @@ alterado para tamanho variavel 1-4. (NT2011/004) - + \ No newline at end of file diff --git a/NFe.AppTeste/Schemas/nfe_v4.00.xsd b/NFe.AppTeste/Schemas/nfe_v4.00.xsd index 4fe917aea..7a2ffb25f 100644 --- a/NFe.AppTeste/Schemas/nfe_v4.00.xsd +++ b/NFe.AppTeste/Schemas/nfe_v4.00.xsd @@ -1,4 +1,5 @@ + diff --git a/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd b/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd index d51b658ef..0ddf6ef7a 100644 --- a/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd +++ b/NFe.AppTeste/Schemas/tiposBasico_v4.00.xsd @@ -61,8 +61,8 @@ - - + + @@ -81,8 +81,8 @@ - - + + diff --git a/NFe.AppTeste/Schemas/xmldsig-core-schema_v1.01.xsd b/NFe.AppTeste/Schemas/xmldsig-core-schema_v1.01.xsd index 76b74b38d..65daee9aa 100644 --- a/NFe.AppTeste/Schemas/xmldsig-core-schema_v1.01.xsd +++ b/NFe.AppTeste/Schemas/xmldsig-core-schema_v1.01.xsd @@ -95,4 +95,4 @@ - + \ No newline at end of file From 82f884416a40767c2e5c46296385f9c666e0a173 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Mon, 22 Sep 2025 15:16:42 -0300 Subject: [PATCH 83/85] =?UTF-8?q?feat:=20adicionado=20novos=20schemas=20do?= =?UTF-8?q?s=20novos=20eventos=20da=20reforma=20tribut=C3=A1ria=20do=20pac?= =?UTF-8?q?ote=20da=20NT=202025.002=20v.1.20=20-=20RTC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.AppTeste/Schemas/e110001_v1.00.xsd | 73 +++++++++++ NFe.AppTeste/Schemas/e112110_v1.00.xsd | 69 +++++++++++ NFe.AppTeste/Schemas/e112120_v1.00 .xsd | 107 ++++++++++++++++ NFe.AppTeste/Schemas/e112130_v1.00.xsd | 119 ++++++++++++++++++ NFe.AppTeste/Schemas/e112140_v1.00.xsd | 107 ++++++++++++++++ NFe.AppTeste/Schemas/e211110_v1.00.xsd | 134 +++++++++++++++++++++ NFe.AppTeste/Schemas/e211120_v1.00.xsd | 124 +++++++++++++++++++ NFe.AppTeste/Schemas/e211124_v1.00.xsd | 107 ++++++++++++++++ NFe.AppTeste/Schemas/e211128_v1.00.xsd | 69 +++++++++++ NFe.AppTeste/Schemas/e211130_v1.00.xsd | 107 ++++++++++++++++ NFe.AppTeste/Schemas/e211140_v1.00.xsd | 107 ++++++++++++++++ NFe.AppTeste/Schemas/e211150_v1.00.xsd | 85 +++++++++++++ NFe.AppTeste/Schemas/e212110_v1.00.xsd | 70 +++++++++++ NFe.AppTeste/Schemas/e212120_v1.00.xsd | 69 +++++++++++ NFe.AppTeste/Schemas/e412120_v1.00.xsd | 88 ++++++++++++++ NFe.AppTeste/Schemas/e412130_v1.00.xsd | 88 ++++++++++++++ NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd | 71 +++-------- 17 files changed, 1540 insertions(+), 54 deletions(-) create mode 100644 NFe.AppTeste/Schemas/e110001_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e112110_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e112120_v1.00 .xsd create mode 100644 NFe.AppTeste/Schemas/e112130_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e112140_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211110_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211120_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211124_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211128_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211130_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211140_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e211150_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e212110_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e212120_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e412120_v1.00.xsd create mode 100644 NFe.AppTeste/Schemas/e412130_v1.00.xsd diff --git a/NFe.AppTeste/Schemas/e110001_v1.00.xsd b/NFe.AppTeste/Schemas/e110001_v1.00.xsd new file mode 100644 index 000000000..63f8df6ae --- /dev/null +++ b/NFe.AppTeste/Schemas/e110001_v1.00.xsd @@ -0,0 +1,73 @@ + + + + + + + Informações do Cancelamento de evento + + + + + + Informar “Cancelamento de Evento" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do evento autorizado a ser cancelado + + + + + + + + + + + Informar o número do Protocolo de Autorização do Evento a ser cancelado + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e112110_v1.00.xsd b/NFe.AppTeste/Schemas/e112110_v1.00.xsd new file mode 100644 index 000000000..01ea2c5de --- /dev/null +++ b/NFe.AppTeste/Schemas/e112110_v1.00.xsd @@ -0,0 +1,69 @@ + + + + + + + Informações do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + + + + + + Descrição do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de efetiva quitação do pagamento integral referente a NFe referenciada. + Valor deve ser igual a "1" + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e112120_v1.00 .xsd b/NFe.AppTeste/Schemas/e112120_v1.00 .xsd new file mode 100644 index 000000000..763f76d70 --- /dev/null +++ b/NFe.AppTeste/Schemas/e112120_v1.00 .xsd @@ -0,0 +1,107 @@ + + + + + + + Informações do Evento de Importação em ALC/ZFM não convertida em isenção + + + + + + Descrição do evento: "Importação em ALC/ZFM não convertida em isenção" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de itens integrados ao ativo imobilizado + + + + + + Valor do IBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção + + + + + Valor do CBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção + + + + + + + + Informar a quantidade que não atendeu os requisitos para a conversão em isenção + + + + + Informar a unidade relativa ao campo gConsumo + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e112130_v1.00.xsd b/NFe.AppTeste/Schemas/e112130_v1.00.xsd new file mode 100644 index 000000000..9c489f0ed --- /dev/null +++ b/NFe.AppTeste/Schemas/e112130_v1.00.xsd @@ -0,0 +1,119 @@ + + + + + + + Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + + + + + + Descrição do evento: "Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor"" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Fornecimento + + + + + + Valor do IBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. + + + + + Valor da CBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. + + + + + + + + Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Informar a unidade relativa ao campo qPerecimento + + + + + + + + + + + + Valor do crédito IBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Valor do crédito CBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e112140_v1.00.xsd b/NFe.AppTeste/Schemas/e112140_v1.00.xsd new file mode 100644 index 000000000..4a7dbf149 --- /dev/null +++ b/NFe.AppTeste/Schemas/e112140_v1.00.xsd @@ -0,0 +1,107 @@ + + + + + + + Informações do Evento de Fornecimento não realizado com pagamento antecipado + + + + + + "Descrição do evento: "Fornecimento não realizado com pagamento antecipado" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Fornecimento + + + + + + Valor do IBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida + + + + + Valor da CBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida. + + + + + + + + Informar a quantidade que não foi fornecida e teve o imposto antecipado + + + + + Informar a unidade relativa ao campo qNaoFornecida + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211110_v1.00.xsd b/NFe.AppTeste/Schemas/e211110_v1.00.xsd new file mode 100644 index 000000000..7f62ed760 --- /dev/null +++ b/NFe.AppTeste/Schemas/e211110_v1.00.xsd @@ -0,0 +1,134 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de crédito presumido + + + + + + Descrição do Evento de Solicitação de Apropriação de crédito presumido + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de crédito presumido por item + + + + + + Valor do base de cálculo do item + + + + + + + + Usar tabela Cred Presumido, para o emitente da nota. + + + + + + + + + + + Percentual do Crédito Presumido + + + + + Valor do Crédito Presumido + + + + + + + + + + + Usar tabela Cred Presumido, para o emitente da nota. + + + + + + + + + + + Percentual do Crédito Presumido + + + + + Valor do Crédito Presumido + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211120_v1.00.xsd b/NFe.AppTeste/Schemas/e211120_v1.00.xsd new file mode 100644 index 000000000..f1db4e512 --- /dev/null +++ b/NFe.AppTeste/Schemas/e211120_v1.00.xsd @@ -0,0 +1,124 @@ + + + + + + + Informações do Evento de Destinação de item para consumo pessoal + + + + + + Descrição do Evento de Destinação de item para consumo pessoal + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Caso NF-e de Importação, informar 1=Empresa Emitente. + Demais casos, informar 2=Empresa destinatária + + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da NF-e de Aquisição + + + + + + Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + + + + Informar a quantidade para consumo de pessoa física + + + + + Informar a unidade relativa ao campo gConsumo + + + + + + + + + + + + + + + + + Informar a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal. + + + + + Corresponde ao atributo “nItem” do elemento “det” do documento referenciado + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211124_v1.00.xsd b/NFe.AppTeste/Schemas/e211124_v1.00.xsd new file mode 100644 index 000000000..2a7ae4d8a --- /dev/null +++ b/NFe.AppTeste/Schemas/e211124_v1.00.xsd @@ -0,0 +1,107 @@ + + + + + + + Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + + + + + + Descrição do evento: “Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Aquisição + + + + + + Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + + + + Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Informar a unidade relativa ao campo qPerecimento + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211128_v1.00.xsd b/NFe.AppTeste/Schemas/e211128_v1.00.xsd new file mode 100644 index 000000000..dd4b2bb5e --- /dev/null +++ b/NFe.AppTeste/Schemas/e211128_v1.00.xsd @@ -0,0 +1,69 @@ + + + + + + + Informações do Evento de Aceite de débito na apuração por emissão de nota de crédito + + + + + + Descrição do evento: "Aceite de débito na apuração por emissão de nota de crédito" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida. Valores: 0 = não aceite; 1 = aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211130_v1.00.xsd b/NFe.AppTeste/Schemas/e211130_v1.00.xsd new file mode 100644 index 000000000..8bc4d9462 --- /dev/null +++ b/NFe.AppTeste/Schemas/e211130_v1.00.xsd @@ -0,0 +1,107 @@ + + + + + + + Informações do Evento de Imobilização de Item + + + + + + Descrição do Evento de Imobilização de Item + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de itens integrados ao ativo imobilizado + + + + + + Valor do IBS relativo à imobilização + + + + + Valor da CBS relativo à imobilização + + + + + + + + Informar a quantidade do item a ser imobilizado + + + + + Informar a unidade relativa ao campo qImobilizado + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211140_v1.00.xsd b/NFe.AppTeste/Schemas/e211140_v1.00.xsd new file mode 100644 index 000000000..92fd6d9c3 --- /dev/null +++ b/NFe.AppTeste/Schemas/e211140_v1.00.xsd @@ -0,0 +1,107 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de Crédito de Combustível + + + + + + Descrição do Evento de Solicitação de Apropriação de Crédito de Combustível + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de consumo de combustíveis + + + + + + Valor do IBS relativo ao consumo de combustível na nota de aquisição + + + + + Valor da CBS relativo ao consumo de combustível na nota de aquisição + + + + + + + + Informar a quantidade de consumo do item + + + + + Informar a unidade relativa ao campo qComb + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e211150_v1.00.xsd b/NFe.AppTeste/Schemas/e211150_v1.00.xsd new file mode 100644 index 000000000..816efb2cc --- /dev/null +++ b/NFe.AppTeste/Schemas/e211150_v1.00.xsd @@ -0,0 +1,85 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + + + + + + Descrição do evento: "Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de crédito + + + + + + Valor da solicitação de crédito a ser apropriado de IBS + + + + + Valor da solicitação de crédito a ser apropriado de CBS + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e212110_v1.00.xsd b/NFe.AppTeste/Schemas/e212110_v1.00.xsd new file mode 100644 index 000000000..3130ee3df --- /dev/null +++ b/NFe.AppTeste/Schemas/e212110_v1.00.xsd @@ -0,0 +1,70 @@ + + + + + + + Informações do Evento de Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 8=Empresa sucessora. + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco; 6=RFB; 8= Empresa sucessora; 9=Outros Órgãos. + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e212120_v1.00.xsd b/NFe.AppTeste/Schemas/e212120_v1.00.xsd new file mode 100644 index 000000000..cb4fe4667 --- /dev/null +++ b/NFe.AppTeste/Schemas/e212120_v1.00.xsd @@ -0,0 +1,69 @@ + + + + + + + Informações do Evento de Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 8=Empresa sucessora. + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e412120_v1.00.xsd b/NFe.AppTeste/Schemas/e412120_v1.00.xsd new file mode 100644 index 000000000..85593c893 --- /dev/null +++ b/NFe.AppTeste/Schemas/e412120_v1.00.xsd @@ -0,0 +1,88 @@ + + + + + + + Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + + + + + + "Descrição do evento: Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 5=Fisco + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + 1–Falta de manifestação de todas as sucessoras; 2 – Outros. + + + + + + + + + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/e412130_v1.00.xsd b/NFe.AppTeste/Schemas/e412130_v1.00.xsd new file mode 100644 index 000000000..b96755fe0 --- /dev/null +++ b/NFe.AppTeste/Schemas/e412130_v1.00.xsd @@ -0,0 +1,88 @@ + + + + + + + Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 5=Fisco + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + 1–Falta de manifestação de todas as sucessoras; 2 – Outros. + + + + + + + + + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd b/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd index 780236b19..a462c3827 100644 --- a/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd +++ b/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd @@ -1,7 +1,3 @@ - - - - @@ -45,6 +41,15 @@ + + + Tipo correspondente ao atributo “nItem” + + + + + + Tipo Código do Município da tabela do IBGE @@ -69,7 +74,7 @@ - + @@ -808,64 +813,22 @@ acrescentado: - - - - - - - + - Tipo Código de orgão (UF da tabela do IBGE + 90 RFB) + Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - Coordenada geográfica Latitude - - - - - - - - Coordenada geográfica Longitude + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais - + + From 7cf5776608864985fa58239f1bd6d0f1fe31d852 Mon Sep 17 00:00:00 2001 From: Agnaldo Silva Date: Tue, 23 Sep 2025 08:49:18 -0300 Subject: [PATCH 84/85] =?UTF-8?q?fix:=20ajustado=20campos=20de=20eventos?= =?UTF-8?q?=20da=20reforma=20tribut=C3=A1ria=20para=20refletir=20o=20model?= =?UTF-8?q?o=20do=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Evento/Informacoes/CreditoBensServicos/gCredito.cs | 2 +- .../Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs | 2 +- .../Evento/Informacoes/CreditoPresumido/gCredPres.cs | 4 ++-- .../Evento/Informacoes/Imobilizacao/gImobilizacao.cs | 2 +- .../Evento/Informacoes/ItemConsumo/DFeReferenciado.cs | 2 +- NFe.Classes/Servicos/Evento/detEvento.cs | 7 +++++++ NFe.Classes/Servicos/Evento/detEventoTipos.cs | 1 + 7 files changed, 14 insertions(+), 6 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs index d7beaf31a..580b43884 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoBensServicos/gCredito.cs @@ -44,7 +44,7 @@ public class gCredito /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. /// [XmlAttribute] - public int nitem { get; set; } + public int nItem { get; set; } /// /// P25 - Valor da solicitação de crédito a ser apropriado de IBS diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs index fea037420..00da22246 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoCombustivel/gConsumoComb.cs @@ -44,7 +44,7 @@ public class gConsumoComb /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. /// [XmlAttribute] - public int nitem { get; set; } + public int nItem { get; set; } /// /// P25 - Valor do IBS relativo ao consumo de combustível na nota de aquisição diff --git a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs index d66f2821f..db3b9a357 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/CreditoPresumido/gCredPres.cs @@ -40,8 +40,8 @@ public class gCredPres /// /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado /// - [XmlAttribute("nitem")] - public int nitem { get; set; } + [XmlAttribute("nItem")] + public int nItem { get; set; } /// /// P25 - Valor do base de cálculo do item diff --git a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs index e6b005026..7510bcf83 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/Imobilizacao/gImobilizacao.cs @@ -44,7 +44,7 @@ public class gImobilizacao /// P24 - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado. /// [XmlAttribute] - public int nitem { get; set; } + public int nItem { get; set; } /// /// P25 - Valor do IBS relativo à imobilização diff --git a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs index 822c72dda..ec594cd51 100644 --- a/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs +++ b/NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/DFeReferenciado.cs @@ -43,6 +43,6 @@ public class DFeReferenciado /// /// P32 - Corresponde ao “nItem” do DFeReferenciado /// - public int nItem { get; set; } + public int nItemDFeRef { get; set; } } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 44bd32a54..f030c48f9 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -382,6 +382,7 @@ public bool ShouldSerializeindQuitacao() /// /// P23 - Informações de crédito presumido por item /// + [XmlElement("gCredPres")] public List gCredPres { get; set; } public bool ShouldSerializegCredPres() @@ -400,6 +401,7 @@ public bool ShouldSerializegCredPres() /// Evento: Importação em ALC/ZFM não convertida em isenção /// Nota: a quantidade de ocorrências não pode ser maior que a quantidade de itens da NF-e de aquisição /// + [XmlElement("gConsumo")] public List gConsumo { get; set; } public bool ShouldSerializegConsumo() => gConsumo != null; @@ -428,6 +430,7 @@ public bool ShouldSerializeindAceitacao() /// /// P23 - Informações de itens integrados ao ativo imobilizado /// + [XmlElement("gImobilizacao")] public List gImobilizacao { get; set; } public bool ShouldSerializegImobilizacao() @@ -442,6 +445,7 @@ public bool ShouldSerializegImobilizacao() /// /// P23 - Informações de consumo de combustíveis /// + [XmlElement("gConsumoComb")] public List gConsumoComb { get; set; } public bool ShouldSerializegConsumoComb() @@ -456,6 +460,7 @@ public bool ShouldSerializegConsumoComb() /// /// P23 - Informações de crédito /// + [XmlElement("gCredito")] public List gCredito { get; set; } public bool ShouldSerializegCredito() @@ -513,6 +518,7 @@ public bool ShouldSerializecMotivo() /// P23 - Informações por item da Nota de Fornecimento /// (Evento: perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor). /// + [XmlElement("gPerecimento")] public List gPerecimento { get; set; } public bool ShouldSerializegPerecimento() => gPerecimento != null; @@ -524,6 +530,7 @@ public bool ShouldSerializecMotivo() /// /// P23 - Informações por item da Nota de Pagamento antecipado /// + [XmlElement("gItemNaoFornecido")] public List gItemNaoFornecido { get; set; } public bool ShouldSerializegItemNaoFornecido() => gItemNaoFornecido != null; diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index ebd15a301..74ac61d8d 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -87,6 +87,7 @@ public enum TipoAutor /// 8 - Empresa sucessora /// [Description("Empresa sucessora")] + [XmlEnum("8")] taEmpresaSucessora = 8, /// From 1ce583dbadf665832438e552713d2dcc73fff3a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Victor?= Date: Tue, 30 Sep 2025 17:02:56 -0300 Subject: [PATCH 85/85] =?UTF-8?q?revert:=20"feat:=20adicionado=20novos=20s?= =?UTF-8?q?chemas=20dos=20novos=20eventos=20da=20reforma=20tribut=C3=A1ria?= =?UTF-8?q?=20do=20pacote=20da=20NT=202025.002=20v.1.20=20-=20RTC"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverte alterações feitas no commit 82f884416a40767c2e5c46296385f9c666e0a173 --- NFe.AppTeste/Schemas/e110001_v1.00.xsd | 73 ----------- NFe.AppTeste/Schemas/e112110_v1.00.xsd | 69 ----------- NFe.AppTeste/Schemas/e112120_v1.00 .xsd | 107 ---------------- NFe.AppTeste/Schemas/e112130_v1.00.xsd | 119 ------------------ NFe.AppTeste/Schemas/e112140_v1.00.xsd | 107 ---------------- NFe.AppTeste/Schemas/e211110_v1.00.xsd | 134 --------------------- NFe.AppTeste/Schemas/e211120_v1.00.xsd | 124 ------------------- NFe.AppTeste/Schemas/e211124_v1.00.xsd | 107 ---------------- NFe.AppTeste/Schemas/e211128_v1.00.xsd | 69 ----------- NFe.AppTeste/Schemas/e211130_v1.00.xsd | 107 ---------------- NFe.AppTeste/Schemas/e211140_v1.00.xsd | 107 ---------------- NFe.AppTeste/Schemas/e211150_v1.00.xsd | 85 ------------- NFe.AppTeste/Schemas/e212110_v1.00.xsd | 70 ----------- NFe.AppTeste/Schemas/e212120_v1.00.xsd | 69 ----------- NFe.AppTeste/Schemas/e412120_v1.00.xsd | 88 -------------- NFe.AppTeste/Schemas/e412130_v1.00.xsd | 88 -------------- NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd | 71 ++++++++--- 17 files changed, 54 insertions(+), 1540 deletions(-) delete mode 100644 NFe.AppTeste/Schemas/e110001_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e112110_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e112120_v1.00 .xsd delete mode 100644 NFe.AppTeste/Schemas/e112130_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e112140_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211110_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211120_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211124_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211128_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211130_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211140_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e211150_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e212110_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e212120_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e412120_v1.00.xsd delete mode 100644 NFe.AppTeste/Schemas/e412130_v1.00.xsd diff --git a/NFe.AppTeste/Schemas/e110001_v1.00.xsd b/NFe.AppTeste/Schemas/e110001_v1.00.xsd deleted file mode 100644 index 63f8df6ae..000000000 --- a/NFe.AppTeste/Schemas/e110001_v1.00.xsd +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - Informações do Cancelamento de evento - - - - - - Informar “Cancelamento de Evento" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Código do evento autorizado a ser cancelado - - - - - - - - - - - Informar o número do Protocolo de Autorização do Evento a ser cancelado - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e112110_v1.00.xsd b/NFe.AppTeste/Schemas/e112110_v1.00.xsd deleted file mode 100644 index 01ea2c5de..000000000 --- a/NFe.AppTeste/Schemas/e112110_v1.00.xsd +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Informações do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente - - - - - - Descrição do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de efetiva quitação do pagamento integral referente a NFe referenciada. - Valor deve ser igual a "1" - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e112120_v1.00 .xsd b/NFe.AppTeste/Schemas/e112120_v1.00 .xsd deleted file mode 100644 index 763f76d70..000000000 --- a/NFe.AppTeste/Schemas/e112120_v1.00 .xsd +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Informações do Evento de Importação em ALC/ZFM não convertida em isenção - - - - - - Descrição do evento: "Importação em ALC/ZFM não convertida em isenção" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações de itens integrados ao ativo imobilizado - - - - - - Valor do IBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção - - - - - Valor do CBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção - - - - - - - - Informar a quantidade que não atendeu os requisitos para a conversão em isenção - - - - - Informar a unidade relativa ao campo gConsumo - - - - - - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e112130_v1.00.xsd b/NFe.AppTeste/Schemas/e112130_v1.00.xsd deleted file mode 100644 index 9c489f0ed..000000000 --- a/NFe.AppTeste/Schemas/e112130_v1.00.xsd +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor - - - - - - Descrição do evento: "Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor"" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações por item da Nota de Fornecimento - - - - - - Valor do IBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. - - - - - Valor da CBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. - - - - - - - - Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento - - - - - Informar a unidade relativa ao campo qPerecimento - - - - - - - - - - - - Valor do crédito IBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento - - - - - Valor do crédito CBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e112140_v1.00.xsd b/NFe.AppTeste/Schemas/e112140_v1.00.xsd deleted file mode 100644 index 4a7dbf149..000000000 --- a/NFe.AppTeste/Schemas/e112140_v1.00.xsd +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Informações do Evento de Fornecimento não realizado com pagamento antecipado - - - - - - "Descrição do evento: "Fornecimento não realizado com pagamento antecipado" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações por item da Nota de Fornecimento - - - - - - Valor do IBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida - - - - - Valor da CBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida. - - - - - - - - Informar a quantidade que não foi fornecida e teve o imposto antecipado - - - - - Informar a unidade relativa ao campo qNaoFornecida - - - - - - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211110_v1.00.xsd b/NFe.AppTeste/Schemas/e211110_v1.00.xsd deleted file mode 100644 index 7f62ed760..000000000 --- a/NFe.AppTeste/Schemas/e211110_v1.00.xsd +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - Informações do Evento de Solicitação de Apropriação de crédito presumido - - - - - - Descrição do Evento de Solicitação de Apropriação de crédito presumido - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 1=Empresa emitente - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações de crédito presumido por item - - - - - - Valor do base de cálculo do item - - - - - - - - Usar tabela Cred Presumido, para o emitente da nota. - - - - - - - - - - - Percentual do Crédito Presumido - - - - - Valor do Crédito Presumido - - - - - - - - - - - Usar tabela Cred Presumido, para o emitente da nota. - - - - - - - - - - - Percentual do Crédito Presumido - - - - - Valor do Crédito Presumido - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do evento de Irregularidade Fiscal - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211120_v1.00.xsd b/NFe.AppTeste/Schemas/e211120_v1.00.xsd deleted file mode 100644 index f1db4e512..000000000 --- a/NFe.AppTeste/Schemas/e211120_v1.00.xsd +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - Informações do Evento de Destinação de item para consumo pessoal - - - - - - Descrição do Evento de Destinação de item para consumo pessoal - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Caso NF-e de Importação, informar 1=Empresa Emitente. - Demais casos, informar 2=Empresa destinatária - - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações por item da NF-e de Aquisição - - - - - - Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal - - - - - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal - - - - - - - - Informar a quantidade para consumo de pessoa física - - - - - Informar a unidade relativa ao campo gConsumo - - - - - - - - - - - - - - - - - Informar a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal. - - - - - Corresponde ao atributo “nItem” do elemento “det” do documento referenciado - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211124_v1.00.xsd b/NFe.AppTeste/Schemas/e211124_v1.00.xsd deleted file mode 100644 index 2a7ae4d8a..000000000 --- a/NFe.AppTeste/Schemas/e211124_v1.00.xsd +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente - - - - - - Descrição do evento: “Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 2=Empresa destinataria - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações por item da Nota de Aquisição - - - - - - Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal - - - - - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal - - - - - - - - Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento - - - - - Informar a unidade relativa ao campo qPerecimento - - - - - - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211128_v1.00.xsd b/NFe.AppTeste/Schemas/e211128_v1.00.xsd deleted file mode 100644 index dd4b2bb5e..000000000 --- a/NFe.AppTeste/Schemas/e211128_v1.00.xsd +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Informações do Evento de Aceite de débito na apuração por emissão de nota de crédito - - - - - - Descrição do evento: "Aceite de débito na apuração por emissão de nota de crédito" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 2=Empresa destinataria - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida. Valores: 0 = não aceite; 1 = aceite. - - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211130_v1.00.xsd b/NFe.AppTeste/Schemas/e211130_v1.00.xsd deleted file mode 100644 index 8bc4d9462..000000000 --- a/NFe.AppTeste/Schemas/e211130_v1.00.xsd +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Informações do Evento de Imobilização de Item - - - - - - Descrição do Evento de Imobilização de Item - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 2=Empresa Destinataria - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações de itens integrados ao ativo imobilizado - - - - - - Valor do IBS relativo à imobilização - - - - - Valor da CBS relativo à imobilização - - - - - - - - Informar a quantidade do item a ser imobilizado - - - - - Informar a unidade relativa ao campo qImobilizado - - - - - - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211140_v1.00.xsd b/NFe.AppTeste/Schemas/e211140_v1.00.xsd deleted file mode 100644 index 92fd6d9c3..000000000 --- a/NFe.AppTeste/Schemas/e211140_v1.00.xsd +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Informações do Evento de Solicitação de Apropriação de Crédito de Combustível - - - - - - Descrição do Evento de Solicitação de Apropriação de Crédito de Combustível - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 2=Empresa Destinataria - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações de consumo de combustíveis - - - - - - Valor do IBS relativo ao consumo de combustível na nota de aquisição - - - - - Valor da CBS relativo ao consumo de combustível na nota de aquisição - - - - - - - - Informar a quantidade de consumo do item - - - - - Informar a unidade relativa ao campo qComb - - - - - - - - - - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do evento de Irregularidade Fiscal - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e211150_v1.00.xsd b/NFe.AppTeste/Schemas/e211150_v1.00.xsd deleted file mode 100644 index 816efb2cc..000000000 --- a/NFe.AppTeste/Schemas/e211150_v1.00.xsd +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Informações do Evento de Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente - - - - - - Descrição do evento: "Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 2=Empresa Destinataria - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Informações de crédito - - - - - - Valor da solicitação de crédito a ser apropriado de IBS - - - - - Valor da solicitação de crédito a ser apropriado de CBS - - - - - - Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação - - - - - - - - Versão do evento de Irregularidade Fiscal - - - - - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e212110_v1.00.xsd b/NFe.AppTeste/Schemas/e212110_v1.00.xsd deleted file mode 100644 index 3130ee3df..000000000 --- a/NFe.AppTeste/Schemas/e212110_v1.00.xsd +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - Informações do Evento de Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão - - - - - - Descrição do evento: "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 8=Empresa sucessora. - Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco; 6=RFB; 8= Empresa sucessora; 9=Outros Órgãos. - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. - Valores: 0=Não Aceite; 1=Aceite. - - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e212120_v1.00.xsd b/NFe.AppTeste/Schemas/e212120_v1.00.xsd deleted file mode 100644 index cb4fe4667..000000000 --- a/NFe.AppTeste/Schemas/e212120_v1.00.xsd +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Informações do Evento de Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão - - - - - - Descrição do evento: "Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 8=Empresa sucessora. - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. - Valores: 0=Não Aceite; 1=Aceite. - - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e412120_v1.00.xsd b/NFe.AppTeste/Schemas/e412120_v1.00.xsd deleted file mode 100644 index 85593c893..000000000 --- a/NFe.AppTeste/Schemas/e412120_v1.00.xsd +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão - - - - - - "Descrição do evento: Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 5=Fisco - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. - - - - - - - - - - - - 1–Falta de manifestação de todas as sucessoras; 2 – Outros. - - - - - - - - - - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/e412130_v1.00.xsd b/NFe.AppTeste/Schemas/e412130_v1.00.xsd deleted file mode 100644 index b96755fe0..000000000 --- a/NFe.AppTeste/Schemas/e412130_v1.00.xsd +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão - - - - - - Descrição do evento: "Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão" - - - - - - - - - - Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. - - - - - Informar 5=Fisco - - - - - - - - - - - Versão do Aplicativo que recebeu o Evento - - - - - Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. - - - - - - - - - - - - 1–Falta de manifestação de todas as sucessoras; 2 – Outros. - - - - - - - - - - - - - - - - - - - - - Versão do leiaute do evento - - - - - - - - - - - diff --git a/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd b/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd index a462c3827..780236b19 100644 --- a/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd +++ b/NFe.AppTeste/Schemas/tiposBasico_v1.03.xsd @@ -1,3 +1,7 @@ + + + + @@ -41,15 +45,6 @@ - - - Tipo correspondente ao atributo “nItem” - - - - - - Tipo Código do Município da tabela do IBGE @@ -74,7 +69,7 @@ - + @@ -813,22 +808,64 @@ acrescentado: - + + + + + + + - Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais + Tipo Código de orgão (UF da tabela do IBGE + 90 RFB) - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais + Coordenada geográfica Latitude - - + + + + + + Coordenada geográfica Longitude + + +