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

wmixvideo / nfe / #6654

20 Nov 2015 08:23PM UTC coverage: 79.804% (+0.5%) from 79.328%
#6654

push

travis-ci

fincatto
Corrigido teste atrelado a classe de info de partilha de icms

4394 of 5506 relevant lines covered (79.8%)

50.76 hits per line

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

0.0
/src/main/java/com/fincatto/nfe310/webservices/WSCancelamento.java
1
package com.fincatto.nfe310.webservices;
2

3
import java.math.BigDecimal;
4
import java.util.Arrays;
5

6
import org.apache.axiom.om.OMElement;
7
import org.apache.axiom.om.util.AXIOMUtil;
8
import org.apache.log4j.Logger;
9
import org.joda.time.LocalDateTime;
10
import org.simpleframework.xml.core.Persister;
11
import org.simpleframework.xml.stream.Format;
12

13
import com.fincatto.nfe310.NFeConfig;
14
import com.fincatto.nfe310.assinatura.AssinaturaDigital;
15
import com.fincatto.nfe310.classes.NFAutorizador31;
16
import com.fincatto.nfe310.classes.evento.NFEnviaEventoRetorno;
17
import com.fincatto.nfe310.classes.evento.cancelamento.NFEnviaEventoCancelamento;
18
import com.fincatto.nfe310.classes.evento.cancelamento.NFEventoCancelamento;
19
import com.fincatto.nfe310.classes.evento.cancelamento.NFInfoCancelamento;
20
import com.fincatto.nfe310.classes.evento.cancelamento.NFInfoEventoCancelamento;
21
import com.fincatto.nfe310.parsers.NotaFiscalChaveParser;
22
import com.fincatto.nfe310.transformers.NFRegistryMatcher;
23
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub;
24
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsg;
25
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsgE;
26
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeDadosMsg;
27
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeRecepcaoEventoResult;
28

29
class WSCancelamento {
30
    private static final String DESCRICAO_EVENTO = "Cancelamento";
31
    private static final BigDecimal VERSAO_LEIAUTE = new BigDecimal("1.00");
×
32
    private static final String EVENTO_CANCELAMENTO = "110111";
33
    private static final Logger LOG = Logger.getLogger(WSCancelamento.class);
×
34
    private final NFeConfig config;
35

36
    public WSCancelamento(final NFeConfig config) {
×
37
        this.config = config;
×
38
    }
×
39

40
    public NFEnviaEventoRetorno cancelaNota(final String chaveAcesso, final String numeroProtocolo, final String motivo) throws Exception {
41
        final String cancelamentoNotaXML = this.gerarDadosCancelamento(chaveAcesso, numeroProtocolo, motivo).toString();
×
42
        final String xmlAssinado = new AssinaturaDigital(this.config).assinarDocumento(cancelamentoNotaXML);
×
43
        final OMElement omElementResult = this.efetuaCancelamento(xmlAssinado, chaveAcesso);
×
44

45
        return new Persister(new NFRegistryMatcher(), new Format(0)).read(NFEnviaEventoRetorno.class, omElementResult.toString());
×
46
    }
47

48
    private OMElement efetuaCancelamento(final String xmlAssinado, final String chaveAcesso) throws Exception {
49
        final RecepcaoEventoStub.NfeCabecMsg cabecalho = new NfeCabecMsg();
×
50
        cabecalho.setCUF(this.config.getCUF().getCodigoIbge());
×
51
        cabecalho.setVersaoDados(WSCancelamento.VERSAO_LEIAUTE.toPlainString());
×
52

53
        final RecepcaoEventoStub.NfeCabecMsgE cabecalhoE = new NfeCabecMsgE();
×
54
        cabecalhoE.setNfeCabecMsg(cabecalho);
×
55

56
        final RecepcaoEventoStub.NfeDadosMsg dados = new NfeDadosMsg();
×
57
        final OMElement omElementXML = AXIOMUtil.stringToOM(xmlAssinado);
×
58
        WSCancelamento.LOG.debug(omElementXML);
×
59
        dados.setExtraElement(omElementXML);
×
60

61
        final String urlWebService = NFAutorizador31.valueOfChaveAcesso(chaveAcesso).getRecepcaoEvento(this.config.getAmbiente());
×
62
        final NfeRecepcaoEventoResult nfeRecepcaoEvento = new RecepcaoEventoStub(urlWebService).nfeRecepcaoEvento(dados, cabecalhoE);
×
63
        final OMElement omElementResult = nfeRecepcaoEvento.getExtraElement();
×
64
        WSCancelamento.LOG.debug(omElementResult.toString());
×
65

66
        return omElementResult;
×
67
    }
68

69
    private NFEnviaEventoCancelamento gerarDadosCancelamento(final String chaveAcesso, final String numeroProtocolo, final String motivo) {
70
        final NotaFiscalChaveParser chaveParser = new NotaFiscalChaveParser(chaveAcesso);
×
71

72
        final NFInfoCancelamento cancelamento = new NFInfoCancelamento();
×
73
        cancelamento.setDescricaoEvento(WSCancelamento.DESCRICAO_EVENTO);
×
74
        cancelamento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
75
        cancelamento.setJustificativa(motivo);
×
76
        cancelamento.setProtocoloAutorizacao(numeroProtocolo);
×
77

78
        final NFInfoEventoCancelamento infoEvento = new NFInfoEventoCancelamento();
×
79
        infoEvento.setAmbiente(this.config.getAmbiente());
×
80
        infoEvento.setChave(chaveAcesso);
×
81
        infoEvento.setCnpj(chaveParser.getCnpjEmitente());
×
82
        infoEvento.setDataHoraEvento(LocalDateTime.now());
×
83
        infoEvento.setId(String.format("ID%s%s0%s", WSCancelamento.EVENTO_CANCELAMENTO, chaveAcesso, "1"));
×
84
        infoEvento.setNumeroSequencialEvento(1);
×
85
        infoEvento.setOrgao(chaveParser.getNFUnidadeFederativa());
×
86
        infoEvento.setCodigoEvento(WSCancelamento.EVENTO_CANCELAMENTO);
×
87
        infoEvento.setVersaoEvento(WSCancelamento.VERSAO_LEIAUTE);
×
88
        infoEvento.setCancelamento(cancelamento);
×
89

90
        final NFEventoCancelamento evento = new NFEventoCancelamento();
×
91
        evento.setInfoEvento(infoEvento);
×
92
        evento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
93

94
        final NFEnviaEventoCancelamento enviaEvento = new NFEnviaEventoCancelamento();
×
95
        enviaEvento.setEvento(Arrays.asList(evento));
×
96
        enviaEvento.setIdLote("1");
×
97
        enviaEvento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
98
        return enviaEvento;
×
99
    }
100
}
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