From 913349786e658c9203200a6db4125f8f2c210422 Mon Sep 17 00:00:00 2001 From: Bruno Silva Date: Tue, 11 Jul 2023 10:52:53 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20ajuste=20na=20gera=C3=A7=C3=A3o=20de=20x?= =?UTF-8?q?ml=20de=20evento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajuste na geração de XML de evento para considerar entradas em lotes. --- .../nfe/util/ManifestacaoUtil.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/util/ManifestacaoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/ManifestacaoUtil.java index d81960a1..d4a14282 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/ManifestacaoUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/ManifestacaoUtil.java @@ -14,6 +14,7 @@ import javax.xml.bind.JAXBException; import java.util.Collections; import java.util.List; +import java.util.Optional; /** * @author Samuel Oliveira - samuk.exe@hotmail.com @@ -89,12 +90,12 @@ public static TEnvEvento montaManifestacao(List listaManifestacao, Confi } /** - * Cria o ProcEvento de Cancelamento + * Cria e assina o tag procEventoNFe * - * @param config - * @param enviEvento - * @param retorno - * @return + * @param config Um {@link ConfiguracoesNfe}, interface de configuração da NF-e ou NFC-e. + * @param enviEvento Um {@link TEnvEvento} com a estrutura com a mensagem enviada para o sistema de distribuição. + * @param retorno Um {@link TretEvento} com os dadps do resultado do Envio do Evento. + * @return Uma {@link String} retornando um XML de evento assinado. * @throws JAXBException * @throws NfeException */ @@ -108,7 +109,17 @@ public static String criaProcEventoManifestacao(ConfiguracoesNfe config, TEnvEve TProcEvento procEvento = new TProcEvento(); procEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_MANIFESTAR); - procEvento.setEvento(XmlNfeUtil.xmlToObject(assinado, TEnvEvento.class).getEvento().get(0)); + + Optional optEvento = XmlNfeUtil.xmlToObject(assinado, TEnvEvento.class) + .getEvento() + .stream() + .filter(e -> e.getInfEvento().getChNFe().equalsIgnoreCase(retorno.getInfEvento().getChNFe())) + .findFirst(); + + if (optEvento.isPresent()) { + procEvento.setEvento(optEvento.get()); + } + procEvento.setRetEvento(retorno); return XmlNfeUtil.objectToXml(procEvento, config.getEncode());