1414import javax .xml .bind .JAXBException ;
1515import java .util .Collections ;
1616import java .util .List ;
17+ import java .util .Optional ;
1718
1819/**
1920 * @author Samuel Oliveira - [email protected] @@ -89,12 +90,12 @@ public static TEnvEvento montaManifestacao(List<Evento> listaManifestacao, Confi
8990 }
9091
9192 /**
92- * Cria o ProcEvento de Cancelamento
93+ * Cria e assina o tag procEventoNFe
9394 *
94- * @param config
95- * @param enviEvento
96- * @param retorno
97- * @return
95+ * @param config Um {@link ConfiguracoesNfe}, interface de configuração da NF-e ou NFC-e.
96+ * @param enviEvento Um {@link TEnvEvento} com a estrutura com a mensagem enviada para o sistema de distribuição.
97+ * @param retorno Um {@link TretEvento} com os dadps do resultado do Envio do Evento.
98+ * @return Uma {@link String} retornando um XML de evento assinado.
9899 * @throws JAXBException
99100 * @throws NfeException
100101 */
@@ -108,7 +109,17 @@ public static String criaProcEventoManifestacao(ConfiguracoesNfe config, TEnvEve
108109
109110 TProcEvento procEvento = new TProcEvento ();
110111 procEvento .setVersao (ConstantesUtil .VERSAO .EVENTO_MANIFESTAR );
111- procEvento .setEvento (XmlNfeUtil .xmlToObject (assinado , TEnvEvento .class ).getEvento ().get (0 ));
112+
113+ Optional <TEvento > optEvento = XmlNfeUtil .xmlToObject (assinado , TEnvEvento .class )
114+ .getEvento ()
115+ .stream ()
116+ .filter (e -> e .getInfEvento ().getChNFe ().equalsIgnoreCase (retorno .getInfEvento ().getChNFe ()))
117+ .findFirst ();
118+
119+ if (optEvento .isPresent ()) {
120+ procEvento .setEvento (optEvento .get ());
121+ }
122+
112123 procEvento .setRetEvento (retorno );
113124
114125 return XmlNfeUtil .objectToXml (procEvento , config .getEncode ());
0 commit comments