• 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

82.05
/src/main/java/com/fincatto/documentofiscal/nfe310/classes/nota/NFNotaInfoItemImpostoIPI.java
1
package com.fincatto.documentofiscal.nfe310.classes.nota;
2

3
import com.fincatto.documentofiscal.DFBase;
4
import com.fincatto.documentofiscal.validadores.DFBigIntegerValidador;
5
import com.fincatto.documentofiscal.validadores.DFStringValidador;
6
import org.simpleframework.xml.Element;
7

8
import java.math.BigInteger;
9

10
public class NFNotaInfoItemImpostoIPI extends DFBase {
11
    private static final long serialVersionUID = 3354365738012803301L;
12

13
    @Element(name = "clEnq", required = false)
14
    private String classeEnquadramento;
15

16
    @Element(name = "CNPJProd", required = false)
17
    private String cnpjProdutor;
18

19
    @Element(name = "cSelo", required = false)
20
    private String codigoSelo;
21

22
    @Element(name = "qSelo", required = false)
23
    private BigInteger quantidadeSelo;
24
    
25
    @Element(name = "cEnq")
26
    private String codigoEnquadramento;
27

28
    @Element(name = "IPITrib", required = false)
29
    private NFNotaInfoItemImpostoIPITributado tributado;
30

31
    @Element(name = "IPINT", required = false)
32
    private NFNotaInfoItemImpostoIPINaoTributado naoTributado;
33

34
    public NFNotaInfoItemImpostoIPI() {
1✔
35
        this.classeEnquadramento = null;
1✔
36
        this.cnpjProdutor = null;
1✔
37
        this.codigoSelo = null;
1✔
38
        this.quantidadeSelo = null;
1✔
39
        this.codigoEnquadramento = null;
1✔
40
        this.tributado = null;
1✔
41
        this.naoTributado = null;
1✔
42
    }
1✔
43

44
    public void setClasseEnquadramento(final String classeEnquadramento) {
45
        DFStringValidador.exatamente5(classeEnquadramento, "Classe Enquadramento IPI Item");
1✔
46
        this.classeEnquadramento = classeEnquadramento;
1✔
47
    }
1✔
48

49
    public void setCnpjProdutor(final String cnpjProdutor) {
50
        DFStringValidador.cnpj(cnpjProdutor);
1✔
51
        this.cnpjProdutor = cnpjProdutor;
1✔
52
    }
1✔
53

54
    public void setCodigoSelo(final String codigoSelo) {
55
        DFStringValidador.tamanho60(codigoSelo, "Codigo Selo IPI Item");
1✔
56
        this.codigoSelo = codigoSelo;
1✔
57
    }
1✔
58

59
    public void setQuantidadeSelo(final BigInteger quantidadeSelo) {
60
        DFBigIntegerValidador.tamanho12(quantidadeSelo, "Quantidade Selo IPI Item");
1✔
61
        this.quantidadeSelo = quantidadeSelo;
1✔
62
    }
1✔
63

64
    public void setCodigoEnquadramento(final String codigoEnquadramento) {
65
        DFStringValidador.exatamente3(codigoEnquadramento, "Codigo Enquadramento IPI Item");
1✔
66
        this.codigoEnquadramento = codigoEnquadramento;
1✔
67
    }
1✔
68

69
    public void setTributado(final NFNotaInfoItemImpostoIPITributado tributado) {
70
        if (this.naoTributado != null) {
1✔
71
            throw new IllegalStateException("IPI tributado e nao tributado sao mutuamente exclusivos");
1✔
72
        }
73
        this.tributado = tributado;
1✔
74
    }
1✔
75

76
    public void setNaoTributado(final NFNotaInfoItemImpostoIPINaoTributado naoTributado) {
77
        if (this.tributado != null) {
1✔
78
            throw new IllegalStateException("IPI tributado e nao tributado sao mutuamente exclusivos");
1✔
79
        }
80
        this.naoTributado = naoTributado;
1✔
81
    }
1✔
82

83
    public String getClasseEnquadramento() {
UNCOV
84
        return this.classeEnquadramento;
×
85
    }
86

87
    public String getCnpjProdutor() {
UNCOV
88
        return this.cnpjProdutor;
×
89
    }
90

91
    public String getCodigoSelo() {
UNCOV
92
        return this.codigoSelo;
×
93
    }
94

95
    public BigInteger getQuantidadeSelo() {
UNCOV
96
        return this.quantidadeSelo;
×
97
    }
98

99
    public String getCodigoEnquadramento() {
UNCOV
100
        return this.codigoEnquadramento;
×
101
    }
102

103
    public NFNotaInfoItemImpostoIPITributado getTributado() {
UNCOV
104
        return this.tributado;
×
105
    }
106

107
    public NFNotaInfoItemImpostoIPINaoTributado getNaoTributado() {
UNCOV
108
        return this.naoTributado;
×
109
    }
110
}
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