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

wmixvideo / nfe / #9348

07 Jul 2026 02:20PM UTC coverage: 50.838% (+23.8%) from 26.996%
#9348

push

web-flow
Nt2020.005 (#1175)

* Implementação de serviço de recepção síncrono do MDF-e (MDFeRecepcaoSinc). Serviços Assíncronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001.

* Revert "Implementação de serviço de recepção síncrono do MDF-e (MDFeRecepcaoSinc). Serviços Assíncronos serão desativados na data de 30 de Junho de 2024 conforme versa a NT 2024.001."

This reverts commit d597f6919.

* Atualização dos schemas e campos conforme NT2023.004.

* Correção da Tag DFeReferenciado e adicionado validação para chave de acesso.

* Corrigindo a estrutura da Classe TCIBS - faltava o field vIBS.

Adiciondo static nas inner class para possibilitar a desserialização do xml do CT-e.

* Correção do set que deve ser um BigDecimal.

* Adequa campos nDI, nAdicao, nSeqAdic e nDraw à NT 2020.005 v1.21

Ajustes no grupo I01 (Declaração de Importação) do NFe 4.00 conforme
Nota Técnica 2020.005 v1.21 (seções 2.1.2, 2.1.8 e 3.2 do leiaute):

- nDI (I19): tamanho máximo alterado de 12 para 15 caracteres.
- nAdicao (I26): campo passa de obrigatório (1-1) para opcional (0-1),
  já que não deve ser preenchido no caso de DUImp.
- nSeqAdic (I27): tamanho máximo alterado de 3 para 5 dígitos.
- nDraw (I29a / I51 - detExport): campo deixa de ser numérico e passa
  a ser alfanumérico, com tamanho máximo de 20 caracteres (antes,
  numérico com até 11 dígitos).

Classes alteradas:
- NFNotaInfoItemProdutoDeclaracaoImportacao (nDI)
- NFNotaInfoItemProdutoDeclaracaoImportacaoAdicao (nAdicao, nSeqAdic, nDraw)
- NFNotaInfoItemDetalheExportacao (nDraw)
- DFIntegerValidador (novo método tamanho5)

Testes unitários correspondentes atualizados para refletir os novos
limites e a mudança de tipo do campo nDraw (BigInteger -> String).

---------

Co-authored-by: ediva <ediva@emsnote5>
Co-authored-by: Walter Portugal <walter@softlandsistemas.com.br>

10 of 10 new or added lines in 5 files covered. (100.0%)

2949 existing lines in 402 files now uncovered.

14927 of 29362 relevant lines covered (50.84%)

0.51 hits per line

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

90.91
/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/evento/MDFeInfoEvento.java
1
package com.fincatto.documentofiscal.mdfe3.classes.nota.evento;
2

3
import com.fincatto.documentofiscal.DFAmbiente;
4
import com.fincatto.documentofiscal.DFBase;
5
import com.fincatto.documentofiscal.validadores.DFBigDecimalValidador;
6
import com.fincatto.documentofiscal.validadores.DFIntegerValidador;
7
import com.fincatto.documentofiscal.validadores.DFStringValidador;
8
import org.simpleframework.xml.Attribute;
9
import org.simpleframework.xml.Element;
10

11
import java.math.BigDecimal;
12
import java.time.ZonedDateTime;
13
import org.simpleframework.xml.Root;
14

15
/**
16
 * Tipo Evento
17
 */
18
@Root(name = "infEvento")
19
public class MDFeInfoEvento extends DFBase {
1✔
20
    private static final long serialVersionUID = -9002694768514200146L;
21

22
    @Attribute(name = "Id", required = false)
23
    private String id;
24

25
    @Element(name = "cOrgao", required = false)
26
    private String orgao;
27

28
    @Element(name = "tpAmb")
29
    private DFAmbiente ambiente;
30

31
    @Element(name = "CNPJ", required = false)
32
    private String cnpj;
33

34
    @Element(name = "CPF", required = false)
35
    private String cpf;
36

37
    @Element(name = "chMDFe")
38
    private String chave;
39

40
    @Element(name = "dhEvento")
41
    private ZonedDateTime dataHoraEvento;
42

43
    @Element(name = "tpEvento")
44
    private String codigoEvento;
45

46
    @Element(name = "nSeqEvento")
47
    private Integer numeroSequencialEvento;
48

49
    @Element(name = "verEvento", required = false)
50
    private String versaoEvento;
51

52
    /**
53
     * Detalhamento do evento específico (cancelamento, encerramento, registro de passagem).
54
     */
55
    @Element(name = "detEvento")
56
    private MDFeDetalhamentoEvento detEvento;
57

58
    public void setOrgao(final String orgao) {
59
        this.orgao = orgao;
1✔
60
    }
1✔
61

62
    public void setVersaoEvento(final BigDecimal versaoEvento) {
UNCOV
63
        this.versaoEvento = DFBigDecimalValidador.tamanho5Com2CasasDecimais(versaoEvento, "Versao do Evento");
×
UNCOV
64
    }
×
65

66
    public String getId() {
67
        return this.id;
1✔
68
    }
69

70
    public void setId(final String id) {
71
        DFStringValidador.exatamente54(id, "Info Evento  ID");
1✔
72
        this.id = id;
1✔
73
    }
1✔
74

75
    public DFAmbiente getAmbiente() {
76
        return this.ambiente;
1✔
77
    }
78

79
    public void setAmbiente(final DFAmbiente ambiente) {
80
        this.ambiente = ambiente;
1✔
81
    }
1✔
82

83
    public String getCnpj() {
84
        return this.cnpj;
1✔
85
    }
86

87
    public void setCnpj(final String cnpj) {
88
        DFStringValidador.cnpj(cnpj);
1✔
89
        this.cnpj = cnpj;
1✔
90
    }
1✔
91

92
    public String getCpf() {
93
        return cpf;
1✔
94
    }
95

96
    public void setCpf(String cpf) {
97
        DFStringValidador.cpf(cpf);
1✔
98
        this.cpf = cpf;
1✔
99
    }
1✔
100

101
    public String getChave() {
102
        return this.chave;
1✔
103
    }
104

105
    public void setChave(final String chave) {
106
        DFStringValidador.exatamente44(chave, "Info Evento Cancelamento Chave");
1✔
107
        this.chave = chave;
1✔
108
    }
1✔
109

110
    public ZonedDateTime getDataHoraEvento() {
111
        return this.dataHoraEvento;
1✔
112
    }
113

114
    public void setDataHoraEvento(final ZonedDateTime dataHoraEvento) {
115
        this.dataHoraEvento = dataHoraEvento;
1✔
116
    }
1✔
117

118
    public String getCodigoEvento() {
119
        return this.codigoEvento;
1✔
120
    }
121

122
    public void setCodigoEvento(final String codigoEvento) {
123
        DFStringValidador.exatamente6N(codigoEvento, "Info Evento Cancelamento Codigo");
1✔
124
        this.codigoEvento = codigoEvento;
1✔
125
    }
1✔
126

127
    public int getNumeroSequencialEvento() {
128
        return this.numeroSequencialEvento;
1✔
129
    }
130

131
    public void setNumeroSequencialEvento(final int numeroSequencialEvento) {
132
        DFIntegerValidador.tamanho1a2(numeroSequencialEvento, "Numero Sequencial Evento");
1✔
133
        this.numeroSequencialEvento = numeroSequencialEvento;
1✔
134
    }
1✔
135

136
    public String getVersaoEvento() {
137
        return this.versaoEvento;
1✔
138
    }
139

140
    public String getOrgao() {
141
        return this.orgao;
1✔
142
    }
143

144
    public void setNumeroSequencialEvento(final Integer numeroSequencialEvento) {
UNCOV
145
        this.numeroSequencialEvento = numeroSequencialEvento;
×
UNCOV
146
    }
×
147

148
    public void setVersaoEvento(final String versaoEvento) {
149
        this.versaoEvento = versaoEvento;
1✔
150
    }
1✔
151

152
    public MDFeDetalhamentoEvento getDetEvento() {
153
        return this.detEvento;
1✔
154
    }
155

156
    public void setDetEvento(final MDFeDetalhamentoEvento detEvento) {
157
        this.detEvento = detEvento;
1✔
158
    }
1✔
159
}
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