From 06cb521c93f5a7126b8ba1c90706592fd647a8c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Wed, 30 Oct 2024 13:46:45 -0300 Subject: [PATCH 01/14] =?UTF-8?q?Adicionado=20vari=C3=A1veis=20faltantes?= =?UTF-8?q?=20do=20leiaoute=20mensagem=20de=20entrada?= 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 | 28 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 938e74a55..05e4dfe86 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -32,9 +32,11 @@ /********************************************************************************/ using System; using System.Collections.Generic; +using System.Runtime.ConstrainedExecution; using System.Xml.Serialization; using DFe.Classes.Entidades; using DFe.Utils; +using NFe.Classes.Informacoes; using NFe.Classes.Informacoes.Identificacao.Tipos; using Shared.NFe.Classes.Servicos.Evento; @@ -262,5 +264,23 @@ public bool ShouldSerializelongGPS() #endregion + #region Ator Interessado NFe + /// + /// P23 - Pessoas autorizadas a acessar o XML da NF-e + /// + [XmlElement("autXML")] + public List autXML { get; set; } + + /// + /// P26 - 0 = Não permite; + /// 1 = Permite o transportador autorizado pelo + /// emitente ou destinatário autorizar outros + /// transportadores para ter acesso ao download da + /// NF-e + /// + public TipoAutorizacao? tpAutorizacao { get; set; } + + #endregion + } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index c2e3832d2..d4af31e59 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -31,6 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ using System.ComponentModel; +using System.Runtime.ConstrainedExecution; using System.Xml.Serialization; namespace NFe.Classes.Servicos.Evento @@ -128,4 +129,31 @@ public enum MotivoInsucesso [XmlEnum("4")] Outros = 4 } + /// + /// 0 – Não permite; + /// 1 – Permite o transportador autorizado pelo + /// emitente ou destinatário autorizar outros + /// transportadores para ter acesso ao download da + /// NF-e + /// + public enum TipoAutorizacao + { + + /// + /// 0 – Não permite + /// + [Description("Não permite")] + [XmlEnum("0")] + taEmpresaDestinataria = 0, + + /// + /// 1 – Permite o transportador autorizado pelo + /// emitente ou destinatário autorizar outros + /// transportadores para ter acesso ao download da + /// NF-e + /// + [Description("Permite")] + [XmlEnum("1")] + taEmpresaEmitente = 1 + } } \ No newline at end of file From 7ffdf1dc09785d663804bdd2f62f25215a84ca89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Wed, 30 Oct 2024 13:55:40 -0300 Subject: [PATCH 02/14] Adicionado Signature em retEvento --- NFe.Classes/Servicos/Evento/retEvento.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NFe.Classes/Servicos/Evento/retEvento.cs b/NFe.Classes/Servicos/Evento/retEvento.cs index 69b2b26cd..b76620d85 100644 --- a/NFe.Classes/Servicos/Evento/retEvento.cs +++ b/NFe.Classes/Servicos/Evento/retEvento.cs @@ -31,6 +31,7 @@ /* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */ /********************************************************************************/ using System.Xml.Serialization; +using DFe.Classes.Assinatura; namespace NFe.Classes.Servicos.Evento { @@ -47,5 +48,12 @@ public class retEvento /// HR11 - Grupo de informações do registro do Evento /// public infEventoRet infEvento { get; set; } + + /// + /// HP22 - Assinatura Digital do documento XML, a assinatura deverá ser aplicada no elemento infEvento. + /// A decisão de assinar a mensagem fica da critério da UF. + /// + [XmlElement(Namespace = "http://www.w3.org/2000/09/xmldsig#")] + public Signature Signature { get; set; } } } \ No newline at end of file From 403f52eb383599a99266acb7393eb154d6684655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Thu, 31 Oct 2024 14:22:25 -0300 Subject: [PATCH 03/14] Adicionado Ator Interessado na NF-e em NFeServicosTipos --- NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 8b3dadc3f..58f5c4e0a 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -69,6 +69,11 @@ public enum ServicoNFe /// RecepcaoEventoManifestacaoDestinatario, + /// + /// serviço destinado à recepção de mensagem do Evento de Ator Interessado da NF-e + /// + RecepcaoEventoAtorInteressado, + /// /// serviço destinado à recepção de mensagens de lote de NF-e versão 2.0 /// @@ -162,6 +167,7 @@ public enum IndicadorSincronizacao /// 110140 - EPEC /// 110111 - Cancelamento /// 110112 - Cancelamento por substituição + /// 110150 - Ator Interessado na NF-e /// 210200 – Confirmação da Operação /// 210210 – Ciência da Emissão /// 210220 – Desconhecimento da Operação @@ -196,6 +202,13 @@ public enum NFeTipoEvento [Description("Cancelamento por substituicao")] [XmlEnum("110112")] TeNfeCancelamentoSubstituicao = 110112, + + /// + /// 110150 - Ator Interessado na NF-e + /// + [Description("Ator Interessado na NF-e")] + [XmlEnum("110150")] + TeNfeAtorInteressadoNFe = 110150, /// /// 110192 - Insucesso na Entrega da NF-e From 0fd109b86a3e1732b83fc0a68206dcc2162dfe69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Thu, 31 Oct 2024 14:23:52 -0300 Subject: [PATCH 04/14] Adicionado VersaoRecepcaoEventoAtorInteressado em ConfiguracaoServico --- NFe.Utils/ConfiguracaoServico.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/NFe.Utils/ConfiguracaoServico.cs b/NFe.Utils/ConfiguracaoServico.cs index 5cab4964d..fcfbf1e74 100644 --- a/NFe.Utils/ConfiguracaoServico.cs +++ b/NFe.Utils/ConfiguracaoServico.cs @@ -63,6 +63,7 @@ public sealed class ConfiguracaoServico : INotifyPropertyChanged private VersaoServico _versaoRecepcaoEventoInsucessoEntrega; private VersaoServico _versaoRecepcaoEventoEpec; private VersaoServico _versaoRecepcaoEventoManifestacaoDestinatario; + private VersaoServico _versaoRecepcaoEventoAtorInteressado; private VersaoServico _versaoNfeRecepcao; private VersaoServico _versaoNfeRetRecepcao; private VersaoServico _versaoNfeConsultaCadastro; @@ -238,6 +239,7 @@ private void AtualizaVersoes() VersaoRecepcaoEventoInsucessoEntrega = obterVersao(ServicoNFe.RecepcaoEventoInsucessoEntregaNFe); VersaoRecepcaoEventoEpec = obterVersao(ServicoNFe.RecepcaoEventoEpec); VersaoRecepcaoEventoManifestacaoDestinatario = obterVersao(ServicoNFe.RecepcaoEventoManifestacaoDestinatario); + VersaoRecepcaoEventoAtorInteressado = obterVersao(ServicoNFe.RecepcaoEventoAtorInteressado); VersaoNfeRecepcao = obterVersao(ServicoNFe.NfeRecepcao); VersaoNfeRetRecepcao = obterVersao(ServicoNFe.NfeRetRecepcao); VersaoNfeConsultaCadastro = obterVersao(ServicoNFe.NfeConsultaCadastro); @@ -313,6 +315,20 @@ public VersaoServico VersaoRecepcaoEventoManifestacaoDestinatario } } + /// + /// Versão do serviço RecepcaoEvento para Ator interessado + /// + public VersaoServico VersaoRecepcaoEventoAtorInteressado + { + get { return _versaoRecepcaoEventoAtorInteressado; } + set + { + if (value == _versaoRecepcaoEventoAtorInteressado) return; + _versaoRecepcaoEventoAtorInteressado = value; + OnPropertyChanged(); + } + } + /// /// Versão do serviço NfeRecepcao /// From f52ee785390eafaf1b52f9a840d62ac627440ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Fri, 1 Nov 2024 10:56:05 -0300 Subject: [PATCH 05/14] Adicionado Ator Interessado em Enderecador --- NFe.Utils/Enderecos/Enderecador.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NFe.Utils/Enderecos/Enderecador.cs b/NFe.Utils/Enderecos/Enderecador.cs index 36de39cd4..f675d1fc5 100644 --- a/NFe.Utils/Enderecos/Enderecador.cs +++ b/NFe.Utils/Enderecos/Enderecador.cs @@ -1594,6 +1594,9 @@ private static List CarregarEnderecosServicos() addServico(new[] { ServicoNFe.NfeDownloadNF }, versao2E3, hom, TipoEmissao.teNormal, estado, modelo, "https://hom.nfe.fazenda.gov.br/NfeDownloadNF/NfeDownloadNF.asmx"); if (modelo != ModeloDocumento.NFCe) addServico(new[] { ServicoNFe.NFeDistribuicaoDFe }, versao1, hom, TipoEmissao.teNormal, estado, modelo, "https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"); + + // Ator Interessado + addServico(new[] { ServicoNFe.RecepcaoEventoAtorInteressado }, versao1, hom, TipoEmissao.teNormal, estado, modelo, "https://hom1.nfe.fazenda.gov.br/NFeRecepcaoEvento4/NFeRecepcaoEvento4.asmx"); } } @@ -1623,6 +1626,9 @@ private static List CarregarEnderecosServicos() addServico(new[] { ServicoNFe.NfeDownloadNF }, versao2E3, prod, TipoEmissao.teNormal, estado, modelo, "https://www.nfe.fazenda.gov.br/NfeDownloadNF/NfeDownloadNF.asmx"); if (modelo != ModeloDocumento.NFCe) addServico(new[] { ServicoNFe.NFeDistribuicaoDFe }, versao1, prod, TipoEmissao.teNormal, estado, modelo, "https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"); + + // Ator Interessado + addServico(new[] { ServicoNFe.RecepcaoEventoAtorInteressado }, versao1, prod, TipoEmissao.teNormal, estado, modelo, "https://www.nfe.fazenda.gov.br/NFeRecepcaoEvento4/NFeRecepcaoEvento4.asmx"); } } @@ -1684,6 +1690,8 @@ public static void CarregarEnderecos() return cfgServico.VersaoRecepcaoEventoEpec; case ServicoNFe.RecepcaoEventoManifestacaoDestinatario: return cfgServico.VersaoRecepcaoEventoManifestacaoDestinatario; + case ServicoNFe.RecepcaoEventoAtorInteressado: + return cfgServico.VersaoRecepcaoEventoAtorInteressado; case ServicoNFe.NfeRecepcao: return cfgServico.VersaoNfeRecepcao; case ServicoNFe.NfeRetRecepcao: From ae685d00045b7f3ce09e315d3e7599f0160ae162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Fri, 1 Nov 2024 11:34:04 -0300 Subject: [PATCH 06/14] Adicionado ServicoNfe RecepcaoEventoAtorInteressado em ServicoNfceFactory --- NFe.AppTeste/MainWindow.xaml | 6 ++- NFe.AppTeste/MainWindow.xaml.cs | 61 ++++++++++++++++++++++++++- NFe.Servicos/ServicoNfeFactory.cs | 3 ++ NFe.Servicos/ServicosNFe.cs | 68 ++++++++++++++++++++++++++++++- 4 files changed, 133 insertions(+), 5 deletions(-) diff --git a/NFe.AppTeste/MainWindow.xaml b/NFe.AppTeste/MainWindow.xaml index f84e452b9..81fb5b165 100644 --- a/NFe.AppTeste/MainWindow.xaml +++ b/NFe.AppTeste/MainWindow.xaml @@ -904,7 +904,7 @@ - + [Description("Não permite")] [XmlEnum("0")] - taEmpresaDestinataria = 0, + NaoPermite = 0, /// /// 1 – Permite o transportador autorizado pelo @@ -154,6 +154,6 @@ public enum TipoAutorizacao /// [Description("Permite")] [XmlEnum("1")] - taEmpresaEmitente = 1 + Permite = 1 } } \ No newline at end of file diff --git a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs index 58f5c4e0a..1d3ac0969 100644 --- a/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs +++ b/NFe.Classes/Servicos/Tipos/NFeServicosTipos.cs @@ -204,9 +204,9 @@ public enum NFeTipoEvento TeNfeCancelamentoSubstituicao = 110112, /// - /// 110150 - Ator Interessado na NF-e + /// 110150 - Ator interessado na NF-e /// - [Description("Ator Interessado na NF-e")] + [Description("Ator interessado na NF-e")] [XmlEnum("110150")] TeNfeAtorInteressadoNFe = 110150, diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index dcb7159f3..11c027cfb 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -616,7 +616,7 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, var cOrgaoAutor = ufAutor ?? _cFgServico.cUF; var tpAutor = TipoAutor.taEmpresaEmitente; var verAplic = versaoAplicativo ?? "1.0"; - List autXML = new List { new autXML { CPF = cnpjTransportador } }; + List autXML = new List { new autXML { CNPJ = cnpjTransportador } }; var detEvento = new detEvento { versao = versao, @@ -624,7 +624,8 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, cOrgaoAutor = cOrgaoAutor, tpAutor = tpAutor, verAplic = verAplic, - autXML = autXML + autXML = autXML, + tpAutorizacao = TipoAutorizacao.Permite }; // Configuração das Informações do Evento (infEvento) From ba3fe3e0ad277dbad627a5352f6dcddacbf2fc01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Mon, 4 Nov 2024 14:48:14 -0300 Subject: [PATCH 10/14] Ajustado RecepcaoEventoAtorInteressado --- NFe.Classes/Servicos/Evento/detEvento.cs | 41 ++++++++++++------------ NFe.Servicos/ServicosNFe.cs | 26 +++++---------- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index 05e4dfe86..e6670fc38 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -56,20 +56,6 @@ public class detEvento /// public string descEvento { get; set; } - #region Carta de Correção - - /// - /// HP20 - Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores. - /// - public string xCorrecao { get; set; } - - /// - /// HP20a - Condições de uso da Carta de Correção - /// - public string xCondUso { get; set; } - - #endregion - #region EPEC /// @@ -266,21 +252,36 @@ public bool ShouldSerializelongGPS() #region Ator Interessado NFe /// - /// P23 - Pessoas autorizadas a acessar o XML da NF-e + /// P23 - Pessoas autorizadas a acessar o XML da NF-e /// [XmlElement("autXML")] public List autXML { get; set; } /// - /// P26 - 0 = Não permite; - /// 1 = Permite o transportador autorizado pelo - /// emitente ou destinatário autorizar outros - /// transportadores para ter acesso ao download da - /// NF-e + /// P26 - 0 = Não permite; + /// 1 = Permite o transportador autorizado pelo + /// emitente ou destinatário autorizar outros + /// transportadores para ter acesso ao download da + /// NF-e /// public TipoAutorizacao? tpAutorizacao { get; set; } #endregion + #region Carta de Correção + + /// + /// HP20 - Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores. + /// + public string xCorrecao { get; set; } + + /// + /// HP20a - Condições de uso da Carta de Correção. + /// P27 - Condição de uso do tipo de autorização para o transportador. + /// + public string xCondUso { get; set; } + + #endregion + } } \ No newline at end of file diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 11c027cfb..73221e15a 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -606,29 +606,21 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, int sequenciaEvento, string cpfcnpj, string chaveNFe, string cnpjTransportador, Estado? ufAutor = null, string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { - // Definindo a versão do serviço para o evento "Ator Interessado na NF-e" var versaoServico = ServicoNFe.RecepcaoEventoCancelmento.VersaoServicoParaString( _cFgServico.VersaoRecepcaoEventoAtorInteressado); - // Configuração do Detalhe do Evento (detEvento) - var versao = versaoServico; - var descEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe.Descricao(); - var cOrgaoAutor = ufAutor ?? _cFgServico.cUF; - var tpAutor = TipoAutor.taEmpresaEmitente; - var verAplic = versaoAplicativo ?? "1.0"; - List autXML = new List { new autXML { CNPJ = cnpjTransportador } }; var detEvento = new detEvento { - versao = versao, - descEvento = descEvento, - cOrgaoAutor = cOrgaoAutor, - tpAutor = tpAutor, - verAplic = verAplic, - autXML = autXML, - tpAutorizacao = TipoAutorizacao.Permite + versao = versaoServico, + descEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe.Descricao(), + cOrgaoAutor = ufAutor ?? _cFgServico.cUF, + tpAutor = TipoAutor.taEmpresaEmitente, + verAplic = versaoAplicativo ?? "1.0", + autXML = new List { new autXML { CNPJ = cnpjTransportador } }, + tpAutorizacao = TipoAutorizacao.Permite, + xCondUso = "O emitente ou destinatário da NF-e, declara que permite o transportador declarado no campo CNPJ/CPF deste evento a autorizar os transportadores subcontratados ou redespachados a terem acesso ao download da NF-e" }; - // Configuração das Informações do Evento (infEvento) var infEvento = new infEventoEnv { cOrgao = Estado.AN, @@ -641,13 +633,11 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, detEvento = detEvento }; - // Definindo CNPJ ou CPF do autor conforme o tamanho do campo if (cpfcnpj.Length == 11) infEvento.CPF = cpfcnpj; else infEvento.CNPJ = cpfcnpj; - // Criando o evento e configurando o retorno var evento = new evento { versao = versaoServico, infEvento = infEvento }; var retorno = RecepcaoEvento(idlote, new List { evento }, ServicoNFe.RecepcaoEventoAtorInteressado, _cFgServico.VersaoRecepcaoEventoAtorInteressado, true); From 85a7a2b4fd5bf90a511f3c3f82dc5562cfde4598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Tue, 5 Nov 2024 10:09:02 -0300 Subject: [PATCH 11/14] Ajustes na qualidade do servico RecepcaoEventoAtorInteressado --- NFe.Servicos/ServicosNFe.cs | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 73221e15a..5220ba0fa 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -591,19 +591,19 @@ private RetornoRecepcaoEvento RecepcaoEventoCancelamento(NFeTipoEvento tipoEvent } /// - /// Recepção do Evento "Ator Interessado na NF-e - Transportador" + /// Processa a recepção do evento "Ator Interessado na NF-e - Transportador" /// - /// Nº do lote + /// Número do lote /// Sequência do evento - /// CNPJ ou CPF do autor do evento + /// CNPJ ou CPF do autor do evento /// Chave da NFe - /// CNPJ do transportador interessado + /// CNPJ ou CPF do ator interessado /// Unidade federativa do autor /// Versão do aplicativo do autor do evento /// Data e hora do evento - /// Retorno da recepção do evento + /// Resultado da recepção do evento public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, - int sequenciaEvento, string cpfcnpj, string chaveNFe, string cnpjTransportador, + int sequenciaEvento, string cpfCnpjAtorEvento, string chaveNFe, string cnpfCnpjAtorInteressado, Estado? ufAutor = null, string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { var versaoServico = ServicoNFe.RecepcaoEventoCancelmento.VersaoServicoParaString( @@ -614,9 +614,9 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, versao = versaoServico, descEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe.Descricao(), cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = TipoAutor.taEmpresaEmitente, + tpAutor = TipoAutor.taEmpresaDestinataria, verAplic = versaoAplicativo ?? "1.0", - autXML = new List { new autXML { CNPJ = cnpjTransportador } }, + autXML = new List { new autXML { CNPJ = cnpfCnpjAtorInteressado } }, tpAutorizacao = TipoAutorizacao.Permite, xCondUso = "O emitente ou destinatário da NF-e, declara que permite o transportador declarado no campo CNPJ/CPF deste evento a autorizar os transportadores subcontratados ou redespachados a terem acesso ao download da NF-e" }; @@ -630,15 +630,17 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, tpEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe, nSeqEvento = sequenciaEvento, verEvento = versaoServico, - detEvento = detEvento + detEvento = detEvento, + CPF = cpfCnpjAtorEvento.Length == 11 ? cpfCnpjAtorEvento : null, + CNPJ = cpfCnpjAtorEvento.Length == 11 ? null : cpfCnpjAtorEvento }; - if (cpfcnpj.Length == 11) - infEvento.CPF = cpfcnpj; - else - infEvento.CNPJ = cpfcnpj; + var evento = new evento + { + versao = versaoServico, + infEvento = infEvento + }; - var evento = new evento { versao = versaoServico, infEvento = infEvento }; var retorno = RecepcaoEvento(idlote, new List { evento }, ServicoNFe.RecepcaoEventoAtorInteressado, _cFgServico.VersaoRecepcaoEventoAtorInteressado, true); From e00cf927fe5a2a7a7011e4ead67338d3a9b5ed35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Tue, 5 Nov 2024 17:08:40 -0300 Subject: [PATCH 12/14] =?UTF-8?q?Ajuste=20no=20bot=C3=A3o=20de=20ator=20in?= =?UTF-8?q?teressado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.AppTeste/MainWindow.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NFe.AppTeste/MainWindow.xaml b/NFe.AppTeste/MainWindow.xaml index eab5145f4..7a793539b 100644 --- a/NFe.AppTeste/MainWindow.xaml +++ b/NFe.AppTeste/MainWindow.xaml @@ -975,7 +975,7 @@ public TipoAutorizacao? tpAutorizacao { get; set; } + public bool ShouldSerializetpAutorizacao() + { + return tpAutorizacao != null; + } + #endregion #region Carta de Correção diff --git a/NFe.Classes/Servicos/Evento/detEventoTipos.cs b/NFe.Classes/Servicos/Evento/detEventoTipos.cs index 3ccfa2842..bcf74bd1d 100644 --- a/NFe.Classes/Servicos/Evento/detEventoTipos.cs +++ b/NFe.Classes/Servicos/Evento/detEventoTipos.cs @@ -129,6 +129,7 @@ public enum MotivoInsucesso [XmlEnum("4")] Outros = 4 } + /// /// 0 – Não permite; /// 1 – Permite o transportador autorizado pelo @@ -138,7 +139,6 @@ public enum MotivoInsucesso /// public enum TipoAutorizacao { - /// /// 0 – Não permite /// diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index 6fa71eacf..dcb1d02ac 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -601,15 +601,19 @@ private RetornoRecepcaoEvento RecepcaoEventoCancelamento(NFeTipoEvento tipoEvent /// Sequência do evento /// CNPJ ou CPF do autor do evento /// Chave da NFe - /// CNPJ ou CPF do ator interessado + /// CNPJ ou CPF do ator interessado emitente de CT-e + /// Tipo do autor gerador do evento + /// Tipo de autorização do ator interessado /// Unidade federativa do autor /// Versão do aplicativo do autor do evento /// Data e hora do evento /// Resultado da recepção do evento - public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, - int sequenciaEvento, string cpfCnpjAtorEvento, string chaveNFe, string cnpfCnpjAtorInteressado, + public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, int sequenciaEvento, string cpfCnpjAtorEvento, + string chaveNFe, string cnpfCnpjAtorInteressado, TipoAutor? tipoAutor = null, TipoAutorizacao? tipoAutorizacao = null, Estado? ufAutor = null, string versaoAplicativo = null, DateTimeOffset? dhEvento = null) { + var tipoAutorEmitenteOuDestinataria = tipoAutor == TipoAutor.taEmpresaEmitente || tipoAutor == TipoAutor.taEmpresaDestinataria; + var versaoServico = ServicoNFe.RecepcaoEventoCancelmento.VersaoServicoParaString( _cFgServico.VersaoRecepcaoEventoAtorInteressado); @@ -618,11 +622,20 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, versao = versaoServico, descEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe.Descricao(), cOrgaoAutor = ufAutor ?? _cFgServico.cUF, - tpAutor = TipoAutor.taEmpresaDestinataria, + tpAutor = tipoAutor, verAplic = versaoAplicativo ?? "1.0", - autXML = new List { new autXML { CNPJ = cnpfCnpjAtorInteressado } }, - tpAutorizacao = TipoAutorizacao.Permite, - xCondUso = "O emitente ou destinatário da NF-e, declara que permite o transportador declarado no campo CNPJ/CPF deste evento a autorizar os transportadores subcontratados ou redespachados a terem acesso ao download da NF-e" + autXML = new List + { + new autXML + { + CPF = cnpfCnpjAtorInteressado.Length == 11 ? cnpfCnpjAtorInteressado : null, + CNPJ = cnpfCnpjAtorInteressado.Length == 11 ? null : cnpfCnpjAtorInteressado + } + }, + tpAutorizacao = tipoAutorEmitenteOuDestinataria ? tipoAutorizacao : null, + xCondUso = tipoAutorEmitenteOuDestinataria + ? "O emitente ou destinatário da NF-e, declara que permite o transportador declarado no campo CNPJ/CPF deste evento a autorizar os transportadores subcontratados ou redespachados a terem acesso ao download da NF-e" + : null }; var infEvento = new infEventoEnv From 42ee16699bbe9b44f0a2ed0f6e6973a6863fcdd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Bernardo?= Date: Thu, 7 Nov 2024 15:12:31 -0300 Subject: [PATCH 14/14] =?UTF-8?q?Corre=C3=A7=C3=B5es=20revis=C3=A3o=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NFe.AppTeste/MainWindow.xaml.cs | 7 +++---- NFe.Classes/Servicos/Evento/detEvento.cs | 1 + NFe.Classes/Servicos/Evento/retEvento.cs | 2 +- NFe.Servicos/ServicosNFe.cs | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/NFe.AppTeste/MainWindow.xaml.cs b/NFe.AppTeste/MainWindow.xaml.cs index 644479370..1409fa640 100644 --- a/NFe.AppTeste/MainWindow.xaml.cs +++ b/NFe.AppTeste/MainWindow.xaml.cs @@ -2274,11 +2274,10 @@ private void BtnAtorInteressado_Click(object sender, RoutedEventArgs e) var idlote = Funcoes.InpuBox(this, titulo, "Identificador de controle do Lote de envio:", "1"); if (string.IsNullOrEmpty(idlote)) throw new Exception("A Id do Lote deve ser informada!"); - var sequenciaEvento = Funcoes.InpuBox(this, titulo, "Número sequencial do evento:", "1"); - if (string.IsNullOrEmpty(sequenciaEvento)) - throw new Exception("O número sequencial deve ser informado!"); + var sequenciaEvento = Funcoes.InpuBox(this, titulo, "Número sequencial do evento:", "2"); + if (string.IsNullOrEmpty(sequenciaEvento)) throw new Exception("O número sequencial deve ser informado!"); - var chave = Funcoes.InpuBox(this, titulo, "Chave da NFe:", "35240311656919000154550750000008281647961399"); + var chave = Funcoes.InpuBox(this, titulo, "Chave da NFe:", "28241132876302000114550010000090041001283454"); if (string.IsNullOrEmpty(chave)) throw new Exception("A Chave deve ser informada!"); if (chave.Length != 44) throw new Exception("Chave deve conter 44 caracteres!"); diff --git a/NFe.Classes/Servicos/Evento/detEvento.cs b/NFe.Classes/Servicos/Evento/detEvento.cs index ac5bea6a2..774547c93 100644 --- a/NFe.Classes/Servicos/Evento/detEvento.cs +++ b/NFe.Classes/Servicos/Evento/detEvento.cs @@ -316,6 +316,7 @@ public bool ShouldSerializedetPag() } #endregion + #region Ator Interessado NFe /// /// P23 - Pessoas autorizadas a acessar o XML da NF-e diff --git a/NFe.Classes/Servicos/Evento/retEvento.cs b/NFe.Classes/Servicos/Evento/retEvento.cs index b76620d85..88a3d8bc2 100644 --- a/NFe.Classes/Servicos/Evento/retEvento.cs +++ b/NFe.Classes/Servicos/Evento/retEvento.cs @@ -50,7 +50,7 @@ public class retEvento public infEventoRet infEvento { get; set; } /// - /// HP22 - Assinatura Digital do documento XML, a assinatura deverá ser aplicada no elemento infEvento. + /// HR91 - Assinatura Digital do documento XML, a assinatura deverá ser aplicada no elemento infEvento. /// A decisão de assinar a mensagem fica da critério da UF. /// [XmlElement(Namespace = "http://www.w3.org/2000/09/xmldsig#")] diff --git a/NFe.Servicos/ServicosNFe.cs b/NFe.Servicos/ServicosNFe.cs index dcb1d02ac..3473a0c3a 100644 --- a/NFe.Servicos/ServicosNFe.cs +++ b/NFe.Servicos/ServicosNFe.cs @@ -642,14 +642,14 @@ public RetornoRecepcaoEvento RecepcaoEventoAtorInteressado(int idlote, int seque { cOrgao = Estado.AN, tpAmb = _cFgServico.tpAmb, + CNPJ = cpfCnpjAtorEvento.Length == 11 ? null : cpfCnpjAtorEvento, + CPF = cpfCnpjAtorEvento.Length == 11 ? cpfCnpjAtorEvento : null, chNFe = chaveNFe, dhEvento = dhEvento ?? DateTime.Now, tpEvento = NFeTipoEvento.TeNfeAtorInteressadoNFe, nSeqEvento = sequenciaEvento, verEvento = versaoServico, - detEvento = detEvento, - CPF = cpfCnpjAtorEvento.Length == 11 ? cpfCnpjAtorEvento : null, - CNPJ = cpfCnpjAtorEvento.Length == 11 ? null : cpfCnpjAtorEvento + detEvento = detEvento }; var evento = new evento