• 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

35.29
/src/main/java/com/fincatto/documentofiscal/mdfe3/classes/nota/MDFInfoSeguroResponsavel.java
1
package com.fincatto.documentofiscal.mdfe3.classes.nota;
2

3
import org.apache.commons.lang3.StringUtils;
4
import org.simpleframework.xml.Element;
5
import org.simpleframework.xml.Namespace;
6
import org.simpleframework.xml.Root;
7

8
import com.fincatto.documentofiscal.DFBase;
9
import com.fincatto.documentofiscal.mdfe3.classes.def.MDFTipoResponsavelSeguro;
10
import com.fincatto.documentofiscal.validadores.DFStringValidador;
11

12
/**
13
 * Created by Eldevan Nery Junior on 07/12/17.
14
 * <h1>Informações do responsável pelo seguro da carga</h1>
15
 */
16
@Root(name = "infResp")
17
@Namespace(reference = "http://www.portalfiscal.inf.br/mdfe")
18
public class MDFInfoSeguroResponsavel extends DFBase {
1✔
19
    private static final long serialVersionUID = -7502457926490945458L;
20

21
    private static final String INFO = "Responsável pelo seguro da carga";
22

23
    @Element(name = "respSeg")
24
    private MDFTipoResponsavelSeguro responsavelSeguro;
25

26
    @Element(name = "CNPJ", required = false)
27
    private String cnpj;
28

29
    @Element(name = "CPF", required = false)
30
    private String cpf;
31

32
    public String getCnpj() {
UNCOV
33
        return this.cnpj;
×
34
    }
35

36
    /**
37
     * Número do CNPJ do responsável pelo seguro<br>
38
     * Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa jurídica
39
     */
40
    public void setCnpj(final String cnpj) {
41
        if (this.cpf != null) {
1✔
UNCOV
42
            throw new IllegalStateException("Nao deve setar CNPJ se CPF esteja setado em " + MDFInfoSeguroResponsavel.INFO);
×
43
        }
44
        this.cnpj = DFStringValidador.cnpj(cnpj, MDFInfoSeguroResponsavel.INFO);
1✔
45
    }
1✔
46

47
    public String getCpf() {
UNCOV
48
        return this.cpf;
×
49
    }
50

51
    /**
52
     * Número do CPF do responsável pelo seguro<br>
53
     * Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte - pessoa física
54
     */
55
    public void setCpf(final String cpf) {
56
        if (this.cnpj != null) {
×
UNCOV
57
            throw new IllegalStateException("Nao deve setar CPF se CNPJ esteja setado em " + MDFInfoSeguroResponsavel.INFO);
×
58
        }
59
        this.cpf = DFStringValidador.cpf(cpf, MDFInfoSeguroResponsavel.INFO);
×
UNCOV
60
    }
×
61

62
    public MDFTipoResponsavelSeguro getResponsavelSeguro() {
UNCOV
63
        return this.responsavelSeguro;
×
64
    }
65

66
    public void setResponsavelSeguro(final MDFTipoResponsavelSeguro responsavelSeguro) {
67
        this.responsavelSeguro = responsavelSeguro;
1✔
68
    }
1✔
69

70
    /**
71
     * @return
72
     */
73
    @Override
74
    public String toString() {
75
        // Valida regra : Obrigatório apenas se responsável pelo seguro for (2) responsável pela contratação do transporte.
76
        if (StringUtils.isBlank(this.getCnpj()) && StringUtils.isBlank(this.getCpf()) && this.getResponsavelSeguro().equals(MDFTipoResponsavelSeguro.CONTRATANTE_MDFE)) {
×
77
            throw new IllegalStateException("Obrigatório CPF ou CNPJ do responsável pelo seguro para (2) responsável pela contratação do transporte.");
×
78
        }
79
        return super.toString();
×
80
    }
81
}
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