• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Samuel-Oliveira / Java_NFe / #2

14 Jun 2026 07:31PM UTC coverage: 14.623%. First build
#2

push

Samuel-Oliveira
Merge branch 'develop'

299 of 1379 new or added lines in 130 files covered. (21.68%)

2702 of 18478 relevant lines covered (14.62%)

0.15 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

77.5
/src/main/java/br/com/swconsultoria/nfe/util/CancelamentoUtil.java
1
package br.com.swconsultoria.nfe.util;
2

3
import br.com.swconsultoria.nfe.Assinar;
4
import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe;
5
import br.com.swconsultoria.nfe.dom.Evento;
6
import br.com.swconsultoria.nfe.dom.enuns.AssinaturaEnum;
7
import br.com.swconsultoria.nfe.dom.enuns.EventosEnum;
8
import br.com.swconsultoria.nfe.exception.NfeException;
9
import br.com.swconsultoria.nfe.schemas_eventos.TEnvEventoCancelamento;
10
import br.com.swconsultoria.nfe.schemas_eventos.TEventoCancelamento;
11
import br.com.swconsultoria.nfe.schemas_eventos.TProcEventoCancelamento;
12
import br.com.swconsultoria.nfe.schemas_eventos.TRetEventoCancelamento;
13

14
import javax.xml.bind.JAXBException;
15
import java.util.Collections;
16
import java.util.List;
17

18
/**
19
 * @author Samuel Oliveira - samuk.exe@hotmail.com
20
 * Data: 02/03/2019 - 22:51
21
 */
22
public class CancelamentoUtil {
23

24
    private CancelamentoUtil() {}
25

26
    /**
27
     * MOnta o Evento de cancelamento unico
28
     *
29
     * @param cancela
30
     * @param configuracao
31
     * @return
32
     * @throws NfeException
33
     */
34
    public static TEnvEventoCancelamento montaCancelamento(Evento cancela, ConfiguracoesNfe configuracao) throws NfeException {
35
        return montaCancelamento(Collections.singletonList(cancela), configuracao);
1✔
36
    }
37

38
    /**
39
     * MOnta o Evento de cancelamento Lote
40
     *
41
     * @param listaCancela
42
     * @param configuracao
43
     * @return
44
     * @throws NfeException
45
     */
46
    public static TEnvEventoCancelamento montaCancelamento(List<Evento> listaCancela, ConfiguracoesNfe configuracao) throws NfeException {
47

48
        if (listaCancela.size() > 20) {
1✔
49
            throw new NfeException("Podem ser enviados no máximo 20 eventos no Lote.");
1✔
50
        }
51

52
        TEnvEventoCancelamento enviEvento = new TEnvEventoCancelamento();
1✔
53
        enviEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_CANCELAMENTO);
1✔
54
        enviEvento.setIdLote("1");
1✔
55

56
        listaCancela.forEach(evento -> {
1✔
57
            String id = "ID" + EventosEnum.CANCELAMENTO.getCodigo() + evento.getChave() + "01";
1✔
58

59
            TEventoCancelamento eventoCancela = new TEventoCancelamento();
1✔
60
            eventoCancela.setVersao(ConstantesUtil.VERSAO.EVENTO_CANCELAMENTO);
1✔
61

62
            TEventoCancelamento.InfEvento infoEvento = new TEventoCancelamento.InfEvento();
1✔
63
            infoEvento.setId(id);
1✔
64
            //MOdificao
65
            infoEvento.setChNFe(evento.getChave());
1✔
66
            infoEvento.setCOrgao(String.valueOf(configuracao.getEstado().getCodigoUF()));
1✔
67
            infoEvento.setTpAmb(configuracao.getAmbiente().getCodigo());
1✔
68

69
            infoEvento.setCPF(evento.getCpf());
1✔
70
            infoEvento.setCNPJ(evento.getCnpj());
1✔
71

72
            infoEvento.setDhEvento(XmlNfeUtil.dataNfe(evento.getDataEvento(), configuracao.getZoneId()));
1✔
73
            infoEvento.setTpEvento(EventosEnum.CANCELAMENTO.getCodigo());
1✔
74
            infoEvento.setNSeqEvento("1");
1✔
75
            infoEvento.setVerEvento(ConstantesUtil.VERSAO.EVENTO_CANCELAMENTO);
1✔
76

77
            TEventoCancelamento.InfEvento.DetEventoCancelamento detEvento = new TEventoCancelamento.InfEvento.DetEventoCancelamento();
1✔
78
            detEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_CANCELAMENTO);
1✔
79
            detEvento.setDescEvento("Cancelamento");
1✔
80
            detEvento.setNProt(evento.getProtocolo());
1✔
81
            detEvento.setXJust(evento.getMotivo());
1✔
82
            infoEvento.setDetEvento(detEvento);
1✔
83
            eventoCancela.setInfEvento(infoEvento);
1✔
84
            enviEvento.getEvento().add(eventoCancela);
1✔
85
        });
1✔
86

87
        return enviEvento;
1✔
88
    }
89

90
    /**
91
     * Cria o ProcEvento de Cancelamento
92
     *
93
     * @param config
94
     * @param enviEvento
95
     * @param retorno
96
     * @return
97
     * @throws JAXBException
98
     * @throws NfeException
99
     */
100
    public static String criaProcEventoCancelamento(ConfiguracoesNfe config, TEnvEventoCancelamento enviEvento, TRetEventoCancelamento retorno) throws JAXBException, NfeException {
101

102
        String xml = XmlNfeUtil.objectToXml(enviEvento, config.getEncode());
×
103
        xml = xml.replace(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "")
×
104
                .replace("<evento v", "<evento xmlns=\"http://www.portalfiscal.inf.br/nfe\" v");
×
105

106
        String assinado = Assinar.assinaNfe(ConfiguracoesUtil.iniciaConfiguracoes(config), xml, AssinaturaEnum.EVENTO);
×
107

NEW
108
        TProcEventoCancelamento procEvento = new TProcEventoCancelamento();
×
109
        procEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_CANCELAMENTO);
×
NEW
110
        procEvento.setEvento(XmlNfeUtil.xmlToObject(assinado, TEnvEventoCancelamento.class).getEvento().get(0));
×
111
        procEvento.setRetEvento(retorno);
×
112

113
        return XmlNfeUtil.objectToXml(procEvento, config.getEncode());
×
114
    }
115

116
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc