• 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.25
/src/main/java/com/fincatto/documentofiscal/nfe400/classes/nota/NFNotaInfoDestinatario.java
1
package com.fincatto.documentofiscal.nfe400.classes.nota;
2

3
import org.apache.commons.lang3.StringUtils;
4
import org.simpleframework.xml.Element;
5
import org.simpleframework.xml.convert.Convert;
6

7
import com.fincatto.documentofiscal.DFBase;
8
import com.fincatto.documentofiscal.nfe400.classes.NFEndereco;
9
import com.fincatto.documentofiscal.nfe400.converters.NFStringNullToEmptyConverter;
10
import com.fincatto.documentofiscal.validadores.DFStringValidador;
11

12
public class NFNotaInfoDestinatario extends DFBase {
1✔
13
    private static final long serialVersionUID = 5245421887189198219L;
14

15
    @Element(name = "CNPJ", required = false)
16
    private String cnpj;
17

18
    @Element(name = "CPF", required = false)
19
    private String cpf;
20

21
    @Element(name = "idEstrangeiro", required = false)
22
    @Convert(NFStringNullToEmptyConverter.class)
23
    private String idEstrangeiro;
24

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

28
    @Element(name = "enderDest", required = false)
29
    private NFEndereco endereco;
30
    
31
    @Element(name = "indIEDest")
32
    private NFIndicadorIEDestinatario indicadorIEDestinatario;
33

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

37
    @Element(name = "ISUF", required = false)
38
    private String inscricaoSuframa;
39

40
    @Element(name = "IM", required = false)
41
    private String inscricaoMunicipal;
42

43
    @Element(name = "email", required = false)
44
    private String email;
45

46
    public String getCnpj() {
UNCOV
47
        return this.cnpj;
×
48
    }
49

50
    public void setCnpj(final String cnpj) {
51
        if (this.cpf != null) {
1✔
52
            throw new IllegalStateException("Nao deve setar CNPJ se CPF esteja setado");
1✔
53
        }
54
        DFStringValidador.cnpj(cnpj);
1✔
55
        this.cnpj = cnpj;
1✔
56
    }
1✔
57

58
    public void setCpf(final String cpf) {
59
        if (this.cnpj != null) {
1✔
60
            throw new IllegalStateException("Nao deve setar CPF se CNPJ esteja setado");
1✔
61
        }
62
        DFStringValidador.cpf(cpf);
1✔
63
        this.cpf = cpf;
1✔
64
    }
1✔
65

66
    public String getCpfj() {
67
        if (StringUtils.isNotBlank(this.cpf)) {
1✔
UNCOV
68
            return this.cpf;
×
69
        } else if (StringUtils.isNotBlank(this.cnpj)) {
1✔
70
            return this.cnpj;
1✔
71
        }
UNCOV
72
        return this.idEstrangeiro;
×
73
    }
74

75
    public String getCpf() {
UNCOV
76
        return this.cpf;
×
77
    }
78

79
    public void setRazaoSocial(final String razaoSocial) {
80
        DFStringValidador.tamanho60(razaoSocial, "Razao Social Destinatario");
1✔
81
        this.razaoSocial = razaoSocial;
1✔
82
    }
1✔
83

84
    public void setEndereco(final NFEndereco endereco) {
85
        this.endereco = endereco;
1✔
86
    }
1✔
87

88
    public void setInscricaoEstadual(final String inscricaoEstadual) {
89
        if (StringUtils.isNotBlank(this.idEstrangeiro)) {
1✔
90
            throw new IllegalStateException("Não deve informar Inscrição Estadual se ID Estrangeiro esteja informado");
1✔
91
        }
92
        DFStringValidador.inscricaoEstadual(inscricaoEstadual);
1✔
93
        this.inscricaoEstadual = inscricaoEstadual;
1✔
94
    }
1✔
95

96
    public void setInscricaoSuframa(final String inscricaoSuframa) {
97
        DFStringValidador.tamanho8a9N(inscricaoSuframa, "Inscricao Suframa Destinatario");
1✔
98
        this.inscricaoSuframa = inscricaoSuframa;
1✔
99
    }
1✔
100

101
    public void setEmail(final String email) {
102
        DFStringValidador.tamanho60(email, "Email Destinatario");
1✔
103
        this.email = email;
1✔
104
    }
1✔
105

106
    public void setIdEstrangeiro(final String idEstrangeiro) {
107
        if (StringUtils.isNotBlank(idEstrangeiro)) {
1✔
108
            if (StringUtils.isNotBlank(this.inscricaoEstadual)) {
1✔
109
                throw new IllegalStateException("N\u00E3o deve informar ID Estrangeiro se Inscri\u00E7\u00E3o Estadual esteja informado");
1✔
110
            }
111
            DFStringValidador.tamanho5a20(idEstrangeiro, "ID Estrangeiro Destinatario");
1✔
112
        }
113
        this.idEstrangeiro = idEstrangeiro;
1✔
114
    }
1✔
115

116
    public void setIndicadorIEDestinatario(final NFIndicadorIEDestinatario indicadorIEDestinatario) {
117
        this.indicadorIEDestinatario = indicadorIEDestinatario;
1✔
118
    }
1✔
119

120
    public void setInscricaoMunicipal(final String inscricaoMunicipal) {
121
        DFStringValidador.tamanho15(inscricaoMunicipal, "IM Destinatario");
1✔
122
        this.inscricaoMunicipal = inscricaoMunicipal;
1✔
123
    }
1✔
124

125
    public String getIdEstrangeiro() {
UNCOV
126
        return this.idEstrangeiro;
×
127
    }
128

129
    public String getRazaoSocial() {
UNCOV
130
        return this.razaoSocial;
×
131
    }
132

133
    public NFEndereco getEndereco() {
UNCOV
134
        return this.endereco;
×
135
    }
136

137
    public NFIndicadorIEDestinatario getIndicadorIEDestinatario() {
138
        return this.indicadorIEDestinatario;
1✔
139
    }
140

141
    public String getInscricaoEstadual() {
UNCOV
142
        return this.inscricaoEstadual;
×
143
    }
144

145
    public String getInscricaoSuframa() {
UNCOV
146
        return this.inscricaoSuframa;
×
147
    }
148

149
    public String getInscricaoMunicipal() {
UNCOV
150
        return this.inscricaoMunicipal;
×
151
    }
152

153
    public String getEmail() {
UNCOV
154
        return this.email;
×
155
    }
156
}
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