Skip to content

Commit 3acbaf6

Browse files
Correcoes EConf
1 parent a0cf9c2 commit 3acbaf6

File tree

9 files changed

+114
-496
lines changed

9 files changed

+114
-496
lines changed

docs/.idea/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/.idea/dbnavigator.xml

Lines changed: 0 additions & 461 deletions
This file was deleted.

docs/.idea/docs.iml

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/.idea/modules.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/main/java/br/com/swconsultoria/nfe/util/ManifestacaoUtil.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ public static TEnvEvento montaManifestacao(List<Evento> listaManifestacao, Confi
5656

5757
listaManifestacao.forEach(manifestacao -> {
5858

59-
String id = "ID" + manifestacao.getTipoManifestacao().getCodigo() + manifestacao.getChave() + "01";
59+
String id =
60+
"ID" + manifestacao.getTipoManifestacao().getCodigo() + manifestacao.getChave() + ChaveUtil.completarComZerosAEsquerda(String.valueOf(manifestacao.getSequencia()), 2);
6061

6162
TEvento evento = new TEvento();
6263
evento.setVersao(ConstantesUtil.VERSAO.EVENTO_MANIFESTAR);
@@ -72,7 +73,7 @@ public static TEnvEvento montaManifestacao(List<Evento> listaManifestacao, Confi
7273
infEvento.setChNFe(manifestacao.getChave());
7374
infEvento.setDhEvento(XmlNfeUtil.dataNfe(manifestacao.getDataEvento(), configuracao.getZoneId()));
7475
infEvento.setTpEvento(manifestacao.getTipoManifestacao().getCodigo());
75-
infEvento.setNSeqEvento("1");
76+
infEvento.setNSeqEvento(String.valueOf(manifestacao.getSequencia()));
7677
infEvento.setVerEvento(ConstantesUtil.VERSAO.EVENTO_MANIFESTAR);
7778

7879
TEvento.InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento();
@@ -92,9 +93,9 @@ public static TEnvEvento montaManifestacao(List<Evento> listaManifestacao, Confi
9293
/**
9394
* Cria e assina o tag procEventoNFe
9495
*
95-
* @param config Um {@link ConfiguracoesNfe}, interface de configuração da NF-e ou NFC-e.
96+
* @param config Um {@link ConfiguracoesNfe}, interface de configuração da NF-e ou NFC-e.
9697
* @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+
* @param retorno Um {@link TretEvento} com os dadps do resultado do Envio do Evento.
9899
* @return Uma {@link String} retornando um XML de evento assinado.
99100
* @throws JAXBException
100101
* @throws NfeException
@@ -111,10 +112,10 @@ public static String criaProcEventoManifestacao(ConfiguracoesNfe config, TEnvEve
111112
procEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_MANIFESTAR);
112113

113114
Optional<TEvento> optEvento = XmlNfeUtil.xmlToObject(assinado, TEnvEvento.class)
114-
.getEvento()
115-
.stream()
116-
.filter(e -> e.getInfEvento().getChNFe().equalsIgnoreCase(retorno.getInfEvento().getChNFe()))
117-
.findFirst();
115+
.getEvento()
116+
.stream()
117+
.filter(e -> e.getInfEvento().getChNFe().equalsIgnoreCase(retorno.getInfEvento().getChNFe()))
118+
.findFirst();
118119

119120
if (optEvento.isPresent()) {
120121
procEvento.setEvento(optEvento.get());

src/main/java/br/com/swconsultoria/nfe/util/WebServiceUtil.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@ public static String getUrl(ConfiguracoesNfe config, DocumentoEnum tipoDocumento
181181
lookupSectionKey = config.getAmbiente().equals(AmbienteEnum.HOMOLOGACAO) ? "NFe_AN_H" : "NFe_AN_P";
182182
Map<String, String> nationalSectionMap = iniData.get(lookupSectionKey);
183183
finalUrl = getIniValueIgnoreCase(nationalSectionMap, tipoServico.getServico());
184+
} else if (verificaServicosAmbienteSVRS(tipoServico)) {
185+
lookupSectionKey = config.getAmbiente().equals(AmbienteEnum.HOMOLOGACAO) ? "NFe_SVRS_H" : "NFe_SVRS_P";
186+
Map<String, String> nationalSectionMap = iniData.get(lookupSectionKey);
187+
finalUrl = getIniValueIgnoreCase(nationalSectionMap, tipoServico.getServico());
184188
} else if (verificaSeContingenciaSvcNfe(config, tipoDocumento, tipoServico)) {
185189
if (verificaEstadosComServidorProprio(config)) {
186190
lookupSectionKey = tipoDocumento.getTipo() + "_SVRS_" + (config.getAmbiente().equals(AmbienteEnum.HOMOLOGACAO) ? "H" : "P");
@@ -228,6 +232,11 @@ private static boolean verificaServicosAmbienteNacional(ServicosEnum tipoServico
228232
tipoServico.equals(ServicosEnum.EPEC);
229233
}
230234

235+
private static boolean verificaServicosAmbienteSVRS(ServicosEnum tipoServico) {
236+
return tipoServico.equals(ServicosEnum.ECONF) ||
237+
tipoServico.equals(ServicosEnum.CANC_ECONF);
238+
}
239+
231240
private static boolean verificaEstadosConsultaCadastro(ConfiguracoesNfe config, ServicosEnum tipoServico) {
232241
return tipoServico.equals(ServicosEnum.CONSULTA_CADASTRO) && (
233242
config.getEstado().equals(EstadosEnum.PA) ||
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package br.com.swconsultoria.nfe.exemplos;
2+
3+
import br.com.swconsultoria.nfe.Nfe;
4+
import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe;
5+
import br.com.swconsultoria.nfe.dom.enuns.AmbienteEnum;
6+
import br.com.swconsultoria.nfe.dom.enuns.EstadosEnum;
7+
import br.com.swconsultoria.nfe.exception.NfeException;
8+
import br.com.swconsultoria.nfe.schema.envEventoEConf.DetEvento;
9+
import br.com.swconsultoria.nfe.schema.envEventoEConf.TEvento;
10+
import br.com.swconsultoria.nfe.schema.envEventoEConf.TUfEmi;
11+
import br.com.swconsultoria.nfe.schema.eventoEConf.TRetEnvEvento;
12+
import br.com.swconsultoria.nfe.util.XmlNfeUtil;
13+
14+
import java.time.LocalDateTime;
15+
16+
/**
17+
* @author Samuel Oliveira
18+
*
19+
*/
20+
public class EConfTeste {
21+
22+
public static void main(String[] args) {
23+
24+
try {
25+
26+
// Inicia As Configurações
27+
ConfiguracoesNfe config = ConfiguracaoTeste.iniciaConfiguracoes(EstadosEnum.GO, AmbienteEnum.HOMOLOGACAO);
28+
29+
// Monta o Evento
30+
br.com.swconsultoria.nfe.schema.envEventoEConf.TEnvEvento envEvento = new br.com.swconsultoria.nfe.schema.envEventoEConf.TEnvEvento();
31+
envEvento.setVersao("1.00");
32+
envEvento.setIdLote("1");
33+
34+
TEvento evento = new TEvento();
35+
evento.setVersao("1.00");
36+
TEvento.InfEvento infEvento = new TEvento.InfEvento();
37+
infEvento.setId("ID" + "110750" + "52250810732644000128550010000927501960446967" + "01");
38+
infEvento.setCOrgao("92");
39+
infEvento.setTpAmb("2");
40+
infEvento.setCNPJ("10732644000128");
41+
infEvento.setChNFe("52250810732644000128550010000927501960446967");
42+
infEvento.setDhEvento(XmlNfeUtil.dataNfe(LocalDateTime.now()));
43+
infEvento.setTpEvento("110750");
44+
infEvento.setNSeqEvento("1");
45+
infEvento.setVerEvento("1.00");
46+
47+
DetEvento detEvento = new DetEvento();
48+
detEvento.setVersao("1.00");
49+
detEvento.setDescEvento("ECONF");
50+
detEvento.setVerAplic("1.00");
51+
infEvento.setDetEvento(detEvento);
52+
evento.setInfEvento(infEvento);
53+
envEvento.getEvento().add(evento);
54+
55+
DetEvento.DetPag detPag = new DetEvento.DetPag();
56+
detPag.setIndPag("1");
57+
detPag.setTPag("04");
58+
detPag.setVPag("500.00");
59+
detPag.setDPag("2025-10-21");
60+
detPag.setCNPJPag("10440482000154");
61+
detPag.setUFPag(TUfEmi.GO);
62+
detPag.setTBand("02");
63+
detPag.setCNPJIF("10440482000154");
64+
detPag.setCAut("JFMfVe");
65+
envEvento.getEvento().get(0).getInfEvento().getDetEvento().getDetPag().add(detPag);
66+
67+
System.out.println(XmlNfeUtil.objectToXml(envEvento));
68+
69+
//Envia a ECONF
70+
TRetEnvEvento retorno = Nfe.econf(config, envEvento, true);
71+
72+
if (!retorno.getCStat().equals("128")) {
73+
throw new NfeException(retorno.getCStat() + " - " + retorno.getXMotivo());
74+
}
75+
76+
if (!retorno.getRetEvento().get(0).getInfEvento().getCStat().equals("135")) {
77+
throw new NfeException(retorno.getRetEvento().get(0).getInfEvento().getCStat() + " - " + retorno.getRetEvento().get(0).getInfEvento().getXMotivo());
78+
}
79+
80+
//Resultado
81+
System.out.println();
82+
retorno.getRetEvento().forEach(resultado -> {
83+
System.out.println("# Chave: " + resultado.getInfEvento().getChNFe());
84+
System.out.println("# Status: " + resultado.getInfEvento().getCStat() + " - " + resultado.getInfEvento().getXMotivo());
85+
System.out.println("# Protocolo: " + resultado.getInfEvento().getNProt());
86+
});
87+
88+
} catch (Exception e) {
89+
System.err.println();
90+
System.err.println(e.getMessage());
91+
}
92+
93+
}
94+
95+
}

src/test/java/br/com/swconsultoria/nfe/exemplos/EnvioNfeTeste.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private static void Envia() {
4848
ConfiguracoesNfe config = ConfiguracaoTeste.iniciaConfiguracoes(EstadosEnum.GO, AmbienteEnum.HOMOLOGACAO);
4949

5050
//Informe o Numero da NFe
51-
int numeroNfe = 92750;
51+
int numeroNfe = 92752;
5252
//Informe o CNPJ do Emitente da NFe
5353
String cnpj = "10732644000128";
5454
//Informe a data de Emissao da NFe

0 commit comments

Comments
 (0)