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

wmixvideo / nfe / #6290

19 Apr 2016 08:37PM UTC coverage: 80.934% (+2.4%) from 78.549%
#6290

push

travis-ci

fincatto
Corrigido testes.

4470 of 5523 relevant lines covered (80.93%)

52.06 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/WSCartaCorrecao.java
1
package com.fincatto.nfe310.webservices;
2

3
import java.math.BigDecimal;
4
import java.rmi.RemoteException;
5
import java.util.Arrays;
6

7
import javax.xml.stream.XMLStreamException;
8

9
import org.apache.axiom.om.OMElement;
10
import org.apache.axiom.om.util.AXIOMUtil;
11
import org.apache.axis2.AxisFault;
12
import org.apache.log4j.Logger;
13
import org.joda.time.DateTime;
14
import org.simpleframework.xml.core.Persister;
15
import org.simpleframework.xml.stream.Format;
16

17
import com.fincatto.nfe310.NFeConfig;
18
import com.fincatto.nfe310.assinatura.AssinaturaDigital;
19
import com.fincatto.nfe310.classes.NFAutorizador31;
20
import com.fincatto.nfe310.classes.evento.NFEnviaEventoRetorno;
21
import com.fincatto.nfe310.classes.evento.NFEvento;
22
import com.fincatto.nfe310.classes.evento.NFInfoEvento;
23
import com.fincatto.nfe310.classes.evento.NFTipoEvento;
24
import com.fincatto.nfe310.classes.evento.cartacorrecao.NFEnviaEventoCartaCorrecao;
25
import com.fincatto.nfe310.parsers.NotaFiscalChaveParser;
26
import com.fincatto.nfe310.transformers.NFRegistryMatcher;
27
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub;
28
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsg;
29
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeCabecMsgE;
30
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeDadosMsg;
31
import com.fincatto.nfe310.webservices.gerado.RecepcaoEventoStub.NfeRecepcaoEventoResult;
32

33
class WSCartaCorrecao {
34
    private final static Logger LOG = Logger.getLogger(WSCartaCorrecao.class);
×
35
    private static final String EVENTO_CARTA_CORRECAO = "110110";
36
    private static final BigDecimal VERSAO_LEIAUTE = new BigDecimal("1.00");
×
37
    private final NFeConfig config;
38

39
    public WSCartaCorrecao(final NFeConfig config) {
×
40
        this.config = config;
×
41
    }
×
42

43
    public NFEnviaEventoRetorno corrigeNota(final String chaveAcesso, final String textoCorrecao, final int numeroSequencialEvento) throws Exception {
44
        final String cartaCorrecaoXML = this.gerarDadosCartaCorrecao(chaveAcesso, textoCorrecao, numeroSequencialEvento).toString();
×
45
        final String xmlAssinado = new AssinaturaDigital(this.config).assinarDocumento(cartaCorrecaoXML);
×
46
        final OMElement omElementResult = this.efetuaCorrecao(xmlAssinado);
×
47

48
        return new Persister(new NFRegistryMatcher(), new Format(0)).read(NFEnviaEventoRetorno.class, omElementResult.toString());
×
49
    }
50

51
    private OMElement efetuaCorrecao(final String xmlAssinado) throws XMLStreamException, RemoteException, AxisFault {
52
        final RecepcaoEventoStub.NfeCabecMsg cabecalho = new NfeCabecMsg();
×
53
        cabecalho.setCUF(this.config.getCUF().getCodigoIbge());
×
54
        cabecalho.setVersaoDados(WSCartaCorrecao.VERSAO_LEIAUTE.toPlainString());
×
55

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

59
        final RecepcaoEventoStub.NfeDadosMsg dados = new NfeDadosMsg();
×
60
        final OMElement omElementXML = AXIOMUtil.stringToOM(xmlAssinado);
×
61
        WSCartaCorrecao.LOG.debug(omElementXML);
×
62
        dados.setExtraElement(omElementXML);
×
63

64
        final String urlWebService = NFAutorizador31.valueOfCodigoUF(this.config.getCUF()).getRecepcaoEvento(this.config.getAmbiente());
×
65
        final NfeRecepcaoEventoResult nfeRecepcaoEvento = new RecepcaoEventoStub(urlWebService).nfeRecepcaoEvento(dados, cabecalhoE);
×
66
        final OMElement omElementResult = nfeRecepcaoEvento.getExtraElement();
×
67
        WSCartaCorrecao.LOG.debug(omElementResult.toString());
×
68

69
        return omElementResult;
×
70
    }
71

72
    private NFEnviaEventoCartaCorrecao gerarDadosCartaCorrecao(final String chaveAcesso, final String textoCorrecao, final int numeroSequencialEvento) {
73
        final NotaFiscalChaveParser chaveParser = new NotaFiscalChaveParser(chaveAcesso);
×
74

75
        final NFTipoEvento cartaCorrecao = new NFTipoEvento();
×
76
        cartaCorrecao.setCondicaoUso("A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. 7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularizacao de erro ocorrido na emissao de documento fiscal, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da operacao ou da prestacao; II - a correcao de dados cadastrais que implique mudanca do remetente ou do destinatario; III - a data de emissao ou de saida.");
×
77
        cartaCorrecao.setTextoCorrecao(textoCorrecao);
×
78
        cartaCorrecao.setDescricaoEvento("Carta de Correcao");
×
79
        cartaCorrecao.setVersao(WSCartaCorrecao.VERSAO_LEIAUTE);
×
80

81
        final NFInfoEvento infoEvento = new NFInfoEvento();
×
82
        infoEvento.setAmbiente(this.config.getAmbiente());
×
83
        infoEvento.setDadosEvento(cartaCorrecao);
×
84
        infoEvento.setChave(chaveAcesso);
×
85
        infoEvento.setCnpj(chaveParser.getCnpjEmitente());
×
86
        infoEvento.setDataHoraEvento(DateTime.now());
×
87
        infoEvento.setId(String.format("ID%s%s0%s", WSCartaCorrecao.EVENTO_CARTA_CORRECAO, chaveAcesso, numeroSequencialEvento));
×
88
        infoEvento.setNumeroSequencialEvento(numeroSequencialEvento);
×
89
        infoEvento.setOrgao(chaveParser.getNFUnidadeFederativa());
×
90
        infoEvento.setTipoEvento(WSCartaCorrecao.EVENTO_CARTA_CORRECAO);
×
91
        infoEvento.setVersaoEvento(WSCartaCorrecao.VERSAO_LEIAUTE);
×
92

93
        final NFEvento evento = new NFEvento();
×
94
        evento.setInfoEvento(infoEvento);
×
95
        evento.setVersao(WSCartaCorrecao.VERSAO_LEIAUTE);
×
96

97
        final NFEnviaEventoCartaCorrecao enviaEvento = new NFEnviaEventoCartaCorrecao();
×
98
        enviaEvento.setEvento(Arrays.asList(evento));
×
99
        enviaEvento.setIdLote("1");
×
100
        enviaEvento.setVersao(WSCartaCorrecao.VERSAO_LEIAUTE);
×
101
        return enviaEvento;
×
102
    }
103
}
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