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

wmixvideo / nfe / #6985

02 Jun 2016 11:49PM UTC coverage: 79.364% (+3.7%) from 75.706%
#6985

push

travis-ci

fincatto
Atualizado xsd de validacao de envio de lote, que valida as notas com assinatura.
Atualizado para versão 2.0.0-SNAPSHOT, pois o codigo quebrou a compatibilidade.

0 of 1 new or added line in 1 file covered. (0.0%)

349 existing lines in 68 files now uncovered.

4742 of 5975 relevant lines covered (79.36%)

50.29 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 com.fincatto.nfe310.NFeConfig;
4
import com.fincatto.nfe310.assinatura.AssinaturaDigital;
5
import com.fincatto.nfe310.classes.NFAutorizador31;
6
import com.fincatto.nfe310.classes.NFModelo;
7
import com.fincatto.nfe310.classes.evento.NFEnviaEventoRetorno;
8
import com.fincatto.nfe310.classes.evento.cancelamento.NFEnviaEventoCancelamento;
9
import com.fincatto.nfe310.classes.evento.cancelamento.NFEventoCancelamento;
10
import com.fincatto.nfe310.classes.evento.cancelamento.NFInfoCancelamento;
11
import com.fincatto.nfe310.classes.evento.cancelamento.NFInfoEventoCancelamento;
12
import com.fincatto.nfe310.parsers.NotaFiscalChaveParser;
13
import com.fincatto.nfe310.persister.NFPersister;
14
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub;
15
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsg;
16
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsgE;
17
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeDadosMsg;
18
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeRecepcaoEventoResult;
19
import org.apache.axiom.om.OMElement;
20
import org.apache.axiom.om.util.AXIOMUtil;
21
import org.joda.time.DateTime;
22
import org.slf4j.Logger;
23
import org.slf4j.LoggerFactory;
24

25
import java.math.BigDecimal;
26
import java.util.Collections;
27

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

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

39
    NFEnviaEventoRetorno cancelaNotaAssinada(final String chaveAcesso, final String eventoAssinadoXml) throws Exception {
UNCOV
40
        final OMElement omElementResult = this.efetuaCancelamento(eventoAssinadoXml, chaveAcesso);
×
41
        return new NFPersister().read(NFEnviaEventoRetorno.class, omElementResult.toString());
×
42
    }
43

44
    NFEnviaEventoRetorno cancelaNota(final String chaveAcesso, final String numeroProtocolo, final String motivo) throws Exception {
45
        final String cancelamentoNotaXML = this.gerarDadosCancelamento(chaveAcesso, numeroProtocolo, motivo).toString();
×
UNCOV
46
        final String xmlAssinado = new AssinaturaDigital(this.config).assinarDocumento(cancelamentoNotaXML);
×
UNCOV
47
        final OMElement omElementResult = this.efetuaCancelamento(xmlAssinado, chaveAcesso);
×
UNCOV
48
        return new NFPersister().read(NFEnviaEventoRetorno.class, omElementResult.toString());
×
49
    }
50

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

56
        final RecepcaoEventoStub.NfeCabecMsgE cabecalhoE = new NfeCabecMsgE();
×
57
        cabecalhoE.setNfeCabecMsg(cabecalho);
×
58

59
        final RecepcaoEventoStub.NfeDadosMsg dados = new NfeDadosMsg();
×
UNCOV
60
        final OMElement omElementXML = AXIOMUtil.stringToOM(xmlAssinado);
×
61
        WSCancelamento.LOGGER.debug(omElementXML.toString());
×
62
        dados.setExtraElement(omElementXML);
×
63

64
        final NotaFiscalChaveParser parser = new NotaFiscalChaveParser(chaveAcesso);
×
UNCOV
65
        final NFAutorizador31 autorizador = NFAutorizador31.valueOfChaveAcesso(chaveAcesso);
×
66
        final String urlWebService = NFModelo.NFCE.equals(parser.getModelo()) ? autorizador.getNfceRecepcaoEvento(this.config.getAmbiente()) : autorizador.getRecepcaoEvento(this.config.getAmbiente());
×
UNCOV
67
        if (urlWebService == null) {
×
UNCOV
68
            throw new IllegalArgumentException("Nao foi possivel encontrar URL para RecepcaoEvento " + parser.getModelo().name() + ", autorizador " + autorizador.name());
×
69
        }
70

UNCOV
71
        final NfeRecepcaoEventoResult nfeRecepcaoEvento = new RecepcaoEventoStub(urlWebService).nfeRecepcaoEvento(dados, cabecalhoE);
×
72
        final OMElement omElementResult = nfeRecepcaoEvento.getExtraElement();
×
73
        WSCancelamento.LOGGER.debug(omElementResult.toString());
×
74
        return omElementResult;
×
75
    }
76

77
    private NFEnviaEventoCancelamento gerarDadosCancelamento(final String chaveAcesso, final String numeroProtocolo, final String motivo) {
78
        final NotaFiscalChaveParser chaveParser = new NotaFiscalChaveParser(chaveAcesso);
×
79

80
        final NFInfoCancelamento cancelamento = new NFInfoCancelamento();
×
81
        cancelamento.setDescricaoEvento(WSCancelamento.DESCRICAO_EVENTO);
×
82
        cancelamento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
83
        cancelamento.setJustificativa(motivo);
×
84
        cancelamento.setProtocoloAutorizacao(numeroProtocolo);
×
85

86
        final NFInfoEventoCancelamento infoEvento = new NFInfoEventoCancelamento();
×
87
        infoEvento.setAmbiente(this.config.getAmbiente());
×
88
        infoEvento.setChave(chaveAcesso);
×
UNCOV
89
        infoEvento.setCnpj(chaveParser.getCnpjEmitente());
×
90
        infoEvento.setDataHoraEvento(DateTime.now());
×
91
        infoEvento.setId(String.format("ID%s%s0%s", WSCancelamento.EVENTO_CANCELAMENTO, chaveAcesso, "1"));
×
92
        infoEvento.setNumeroSequencialEvento(1);
×
UNCOV
93
        infoEvento.setOrgao(chaveParser.getNFUnidadeFederativa());
×
94
        infoEvento.setCodigoEvento(WSCancelamento.EVENTO_CANCELAMENTO);
×
95
        infoEvento.setVersaoEvento(WSCancelamento.VERSAO_LEIAUTE);
×
96
        infoEvento.setCancelamento(cancelamento);
×
97

98
        final NFEventoCancelamento evento = new NFEventoCancelamento();
×
UNCOV
99
        evento.setInfoEvento(infoEvento);
×
UNCOV
100
        evento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
101

UNCOV
102
        final NFEnviaEventoCancelamento enviaEvento = new NFEnviaEventoCancelamento();
×
UNCOV
103
        enviaEvento.setEvento(Collections.singletonList(evento));
×
UNCOV
104
        enviaEvento.setIdLote("1");
×
UNCOV
105
        enviaEvento.setVersao(WSCancelamento.VERSAO_LEIAUTE);
×
UNCOV
106
        return enviaEvento;
×
107
    }
108
}
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

© 2025 Coveralls, Inc