• 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

79.27
/src/main/java/com/fincatto/documentofiscal/nfe310/classes/nota/NFNotaInfoIdentificacao.java
1
package com.fincatto.documentofiscal.nfe310.classes.nota;
2

3
import com.fincatto.documentofiscal.DFAmbiente;
4
import com.fincatto.documentofiscal.DFBase;
5
import com.fincatto.documentofiscal.DFModelo;
6
import com.fincatto.documentofiscal.DFUnidadeFederativa;
7
import com.fincatto.documentofiscal.nfe.NFTipoEmissao;
8
import com.fincatto.documentofiscal.nfe310.classes.*;
9
import com.fincatto.documentofiscal.validadores.DFIntegerValidador;
10
import com.fincatto.documentofiscal.validadores.DFListValidador;
11
import com.fincatto.documentofiscal.validadores.DFStringValidador;
12
import org.simpleframework.xml.Element;
13
import org.simpleframework.xml.ElementList;
14

15
import java.time.ZonedDateTime;
16
import java.util.List;
17

18
public class NFNotaInfoIdentificacao extends DFBase {
1✔
19
    private static final long serialVersionUID = -2568396066960865875L;
20
    
21
    @Element(name = "cUF")
22
    private DFUnidadeFederativa uf;
23
    
24
    @Element(name = "cNF")
25
    private String codigoRandomico;
26
    
27
    @Element(name = "natOp")
28
    private String naturezaOperacao;
29
    
30
    @Element(name = "indPag")
31
    private NFFormaPagamentoPrazo formaPagamento;
32
    
33
    @Element(name = "mod")
34
    private DFModelo modelo;
35
    
36
    @Element(name = "serie")
37
    private String serie;
38
    
39
    @Element(name = "nNF")
40
    private String numeroNota;
41
    
42
    @Element(name = "dhEmi")
43
    private ZonedDateTime dataHoraEmissao;
44

45
    @Element(name = "dhSaiEnt", required = false)
46
    private ZonedDateTime dataHoraSaidaOuEntrada;
47
    
48
    @Element(name = "tpNF")
49
    private NFTipo tipo;
50
    
51
    @Element(name = "idDest")
52
    private NFIdentificadorLocalDestinoOperacao identificadorLocalDestinoOperacao;
53
    
54
    @Element(name = "cMunFG")
55
    private String codigoMunicipio;
56
    
57
    @Element(name = "tpImp")
58
    private NFTipoImpressao tipoImpressao;
59
    
60
    @Element(name = "tpEmis")
61
    private NFTipoEmissao tipoEmissao;
62
    
63
    @Element(name = "cDV")
64
    private Integer digitoVerificador;
65
    
66
    @Element(name = "tpAmb")
67
    private DFAmbiente ambiente;
68
    
69
    @Element(name = "finNFe")
70
    private NFFinalidade finalidade;
71
    
72
    @Element(name = "indFinal")
73
    private NFOperacaoConsumidorFinal operacaoConsumidorFinal;
74
    
75
    @Element(name = "indPres")
76
    private NFIndicadorPresencaComprador indicadorPresencaComprador;
77
    
78
    @Element(name = "procEmi")
79
    private NFProcessoEmissor programaEmissor;
80
    
81
    @Element(name = "verProc")
82
    private String versaoEmissor;
83

84
    @Element(name = "dhCont", required = false)
85
    private ZonedDateTime dataHoraContigencia;
86

87
    @Element(name = "xJust", required = false)
88
    private String justificativaEntradaContingencia;
89

90
    @ElementList(entry = "NFref", inline = true, required = false)
91
    private List<NFInfoReferenciada> referenciadas;
92

93
    public void setUf(final DFUnidadeFederativa uf) {
94
        this.uf = uf;
1✔
95
    }
1✔
96

97
    public void setCodigoRandomico(final String codigoRandomico) {
98
        DFStringValidador.exatamente8(codigoRandomico, "Codigo Randomico");
1✔
99
        this.codigoRandomico = codigoRandomico;
1✔
100
    }
1✔
101

102
    public void setNaturezaOperacao(final String naturezaOperacao) {
103
        DFStringValidador.tamanho60(naturezaOperacao, "Natureza da Operacao");
1✔
104
        this.naturezaOperacao = naturezaOperacao;
1✔
105
    }
1✔
106

107
    public void setFormaPagamento(final NFFormaPagamentoPrazo formaPagamento) {
108
        this.formaPagamento = formaPagamento;
1✔
109
    }
1✔
110

111
    public void setModelo(final DFModelo modelo) {
112
        this.modelo = modelo;
1✔
113
    }
1✔
114

115
    public void setSerie(final String serie) {
116
        DFStringValidador.tamanho3(serie, "Serie");
1✔
117
        this.serie = serie;
1✔
118
    }
1✔
119

120
    public void setNumeroNota(final String numeroNota) {
121
        DFStringValidador.tamanho9(numeroNota, "Numero da Nota");
1✔
122
        this.numeroNota = numeroNota;
1✔
123
    }
1✔
124

125
    public void setDataHoraEmissao(final ZonedDateTime dataEmissao) {
126
        this.dataHoraEmissao = dataEmissao;
1✔
127
    }
1✔
128

129
    public void setDataHoraSaidaOuEntrada(final ZonedDateTime dataHoraSaidaOuEntrada) {
130
        this.dataHoraSaidaOuEntrada = dataHoraSaidaOuEntrada;
1✔
131
    }
1✔
132

133
    public void setTipo(final NFTipo tipo) {
134
        this.tipo = tipo;
1✔
135
    }
1✔
136

137
    public void setCodigoMunicipio(final String codigoMunicipio) {
138
        DFStringValidador.exatamente7N(codigoMunicipio, "Codigo Municipio");
1✔
139
        this.codigoMunicipio = codigoMunicipio;
1✔
140
    }
1✔
141

142
    public void setReferenciadas(final List<NFInfoReferenciada> referenciadas) {
143
        DFListValidador.tamanho500(referenciadas, "Referenciadas");
1✔
144
        this.referenciadas = referenciadas;
1✔
145
    }
1✔
146

147
    public void setTipoImpressao(final NFTipoImpressao tipoImpressao) {
148
        this.tipoImpressao = tipoImpressao;
1✔
149
    }
1✔
150

151
    public void setTipoEmissao(final NFTipoEmissao tipoEmissao) {
152
        this.tipoEmissao = tipoEmissao;
1✔
153
    }
1✔
154

155
    public void setDigitoVerificador(final Integer digitoVerificador) {
156
        DFIntegerValidador.exatamente1(digitoVerificador, "DV");
1✔
157
        this.digitoVerificador = digitoVerificador;
1✔
158
    }
1✔
159

160
    public void setAmbiente(final DFAmbiente ambiente) {
161
        this.ambiente = ambiente;
1✔
162
    }
1✔
163

164
    public void setFinalidade(final NFFinalidade finalidade) {
165
        this.finalidade = finalidade;
1✔
166
    }
1✔
167

168
    public void setProgramaEmissor(final NFProcessoEmissor programaEmissor) {
169
        this.programaEmissor = programaEmissor;
1✔
170
    }
1✔
171

172
    public void setVersaoEmissor(final String versaoEmissor) {
173
        DFStringValidador.tamanho20(versaoEmissor, "Versao Emissor");
1✔
174
        this.versaoEmissor = versaoEmissor;
1✔
175
    }
1✔
176

177
    public void setDataHoraContigencia(final ZonedDateTime dataHoraContigencia) {
178
        this.dataHoraContigencia = dataHoraContigencia;
1✔
179
    }
1✔
180

181
    public void setJustificativaEntradaContingencia(final String justificativaEntradaContingencia) {
182
        DFStringValidador.tamanho15a256(justificativaEntradaContingencia, "Justificativa Entrada Contingencia");
1✔
183
        this.justificativaEntradaContingencia = justificativaEntradaContingencia;
1✔
184
    }
1✔
185

186
    public void setIdentificadorLocalDestinoOperacao(final NFIdentificadorLocalDestinoOperacao identificadorLocalDestinoOperacao) {
187
        this.identificadorLocalDestinoOperacao = identificadorLocalDestinoOperacao;
1✔
188
    }
1✔
189

190
    public void setOperacaoConsumidorFinal(final NFOperacaoConsumidorFinal operacaoConsumidorFinal) {
191
        this.operacaoConsumidorFinal = operacaoConsumidorFinal;
1✔
192
    }
1✔
193

194
    public void setIndicadorPresencaComprador(final NFIndicadorPresencaComprador indicadorPresencaComprador) {
195
        this.indicadorPresencaComprador = indicadorPresencaComprador;
1✔
196
    }
1✔
197

198
    public DFUnidadeFederativa getUf() {
199
        return this.uf;
1✔
200
    }
201

202
    public String getCodigoRandomico() {
203
        return this.codigoRandomico;
1✔
204
    }
205

206
    public String getNaturezaOperacao() {
UNCOV
207
        return this.naturezaOperacao;
×
208
    }
209

210
    public NFFormaPagamentoPrazo getFormaPagamento() {
211
        return this.formaPagamento;
×
212
    }
213

214
    public DFModelo getModelo() {
215
        return this.modelo;
1✔
216
    }
217

218
    public String getSerie() {
219
        return this.serie;
1✔
220
    }
221

222
    public String getNumeroNota() {
223
        return this.numeroNota;
1✔
224
    }
225

226
    public ZonedDateTime getDataHoraEmissao() {
227
        return this.dataHoraEmissao;
1✔
228
    }
229

230
    public ZonedDateTime getDataHoraSaidaOuEntrada() {
UNCOV
231
        return this.dataHoraSaidaOuEntrada;
×
232
    }
233

234
    public NFTipo getTipo() {
235
        return this.tipo;
×
236
    }
237

238
    public NFIdentificadorLocalDestinoOperacao getIdentificadorLocalDestinoOperacao() {
239
        return this.identificadorLocalDestinoOperacao;
×
240
    }
241

242
    public String getCodigoMunicipio() {
243
        return this.codigoMunicipio;
×
244
    }
245

246
    public NFTipoImpressao getTipoImpressao() {
247
        return this.tipoImpressao;
×
248
    }
249

250
    public NFTipoEmissao getTipoEmissao() {
251
        return this.tipoEmissao;
1✔
252
    }
253

254
    public Integer getDigitoVerificador() {
UNCOV
255
        return this.digitoVerificador;
×
256
    }
257

258
    public DFAmbiente getAmbiente() {
259
        return this.ambiente;
×
260
    }
261

262
    public NFFinalidade getFinalidade() {
263
        return this.finalidade;
×
264
    }
265

266
    public NFOperacaoConsumidorFinal getOperacaoConsumidorFinal() {
267
        return this.operacaoConsumidorFinal;
×
268
    }
269

270
    public NFIndicadorPresencaComprador getIndicadorPresencaComprador() {
271
        return this.indicadorPresencaComprador;
×
272
    }
273

274
    public NFProcessoEmissor getProgramaEmissor() {
275
        return this.programaEmissor;
×
276
    }
277

278
    public String getVersaoEmissor() {
279
        return this.versaoEmissor;
×
280
    }
281

282
    public ZonedDateTime getDataHoraContigencia() {
283
        return this.dataHoraContigencia;
×
284
    }
285

286
    public String getJustificativaEntradaContingencia() {
287
        return this.justificativaEntradaContingencia;
×
288
    }
289

290
    public List<NFInfoReferenciada> getReferenciadas() {
291
        return this.referenciadas;
×
292
    }
293
}
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