• 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

53.85
/src/main/java/com/fincatto/documentofiscal/DFConfig.java
1
package com.fincatto.documentofiscal;
2

3
import com.fincatto.documentofiscal.utils.DFPersister;
4
import com.fincatto.documentofiscal.utils.DFSocketFactory;
5

6
import org.simpleframework.xml.core.Persister;
7

8
import java.security.KeyStore;
9
import java.security.KeyStoreException;
10
import java.util.TimeZone;
11

12
/**
13
 * @author Caio Configuracao basica do sistema de documentos fiscais.
14
 */
15
public abstract class DFConfig {
1✔
16
    
17
    public static final TimeZone TIMEZONE_SP = TimeZone.getTimeZone("America/Sao_Paulo");
1✔
18
    private Persister persister;
19
    
20
    /**
21
     * Indica o ambiente de trabalho, se em producao ou homologacao.
22
     *
23
     * @return Ambiente de trabalho.
24
     */
25
    public DFAmbiente getAmbiente() {
26
        return DFAmbiente.HOMOLOGACAO;
1✔
27
    }
28
    
29
    /**
30
     * Indica o modelo do documento fiscal
31
     *
32
     * @return Modelo documento fiscal.
33
     */
34
    public DFModelo getModelo() {
35
        return DFModelo.NFE;
1✔
36
    }
37
    
38
    /**
39
     * Unidade da federacao do emissor das notas.
40
     *
41
     * @return Unidade da federacao do emissor.
42
     */
43
    public abstract DFUnidadeFederativa getCUF();
44
    
45
    /**
46
     * KeyStore contendo o certificado pessoal do emissor. <br>
47
     * Esse certificado e fornecido por uma autoridade certificadora. <br>
48
     * Em caso de duvidas, consulte seu contador.
49
     *
50
     * @return KeyStore do certificado pessoal.
51
     * @throws KeyStoreException Caso nao consiga carregar o KeyStore.
52
     */
53
    public abstract KeyStore getCertificadoKeyStore() throws KeyStoreException;
54
    
55
    /**
56
     * Retorna o nome do alias do certificado dentro do {@link KeyStore} retornado por {@link #getCertificadoKeyStore()}. Caso seja retornado {@code null}, sera utilizado o primeiro alias do {@link KeyStore}.
57
     *
58
     * @return o nome do alias do certificado ou {@code null}
59
     */
60
    public String getCertificadoAlias() {
UNCOV
61
        return null;
×
62
    }
63
    
64
    /**
65
     * Senha do certificado pessoal do emissor, contido dentro do KeyStore do certificado.
66
     *
67
     * @return Senha do certificado.
68
     * @see #getCertificadoKeyStore()
69
     */
70
    public abstract String getCertificadoSenha();
71
    
72
    /**
73
     * KeyStore contendo a cadeia de certificados da SEFAZ de destino. <br>
74
     * Para gerar a cadeia, use o utilitario fornecido com a biblioteca:<br>
75
     * FileUtils.writeByteArrayToFile(new File("/tmp/producao.cacerts"), NFGeraCadeiaCertificados.geraCadeiaCertificados(NFAmbiente.PRODUCAO, "senha"));
76
     *
77
     * @return KeyStore da cadeia de certificados.
78
     * @throws KeyStoreException Caso nao consiga carregar o KeyStore.
79
     */
80
    public abstract KeyStore getCadeiaCertificadosKeyStore() throws KeyStoreException;
81
    
82
    /**
83
     * Senha da cadeia de certificados, contida dentro do KeyStore da cadeia.
84
     *
85
     * @return Senha da cadeia de certificados.
86
     * @see #getCadeiaCertificadosKeyStore()
87
     */
88
    public abstract String getCadeiaCertificadosSenha();
89
    
90
    /**
91
     * Protocolo de SSL, usado pela SEFAZ para receber as notas.
92
     * Habilita mais de um parametro pra ssl.
93
     *
94
     * @return Protocolo SSL da SEFAZ de origem.
95
     */
96
    public String[] getSSLProtocolos() {
97
        return new String[]{"TLSv1.2"};
1✔
98
    }
99

100
    /**
101
     * Timeout a ser utilizado em cada requisição feita ao SEFAZ de origem.
102
     * Deve ser maior que zero, se não, será utilizado {@link DFSocketFactory#TIMEOUT_PADRAO_EM_MILLIS}
103
     *
104
     * @return timeout da requisição em millisegundos
105
     */
106
    public int getTimeoutRequisicaoEmMillis() {
107
        return DFSocketFactory.TIMEOUT_PADRAO_EM_MILLIS;
1✔
108
    }
109

110
    /**
111
     * Timeout do socket
112
     * Deve ser zero ou maior, se não, será utilizado {@link DFSocketFactory#SO_TIMEOUT_PADRAO_EM_MILLIS}
113
     * @return timeout da requisição em millisegundos
114
     */
115
    public int getSoTimeoutEmMillis() {
UNCOV
116
        return DFSocketFactory.SO_TIMEOUT_PADRAO_EM_MILLIS;
×
117
    }
118
    
119
    /**
120
     * Retorna o timezone a ser usado no sistema.
121
     * Por padrao, vai usar o timezone default da maquina.
122
     *
123
     * @return TimeZone a ser utilizado.
124
     */
125
    public TimeZone getTimeZone() {
126
        return TimeZone.getDefault();
1✔
127
    }
128
    
129
    /**
130
     * Retorna o persister a ser usado para serializacao dos objetos.
131
     * Por padrao vai usar o {@link DFPersister} com o {@link TimeZone} definido em {@link #getTimeZone()}.
132
     *
133
     * @return Persister a ser utilizado.
134
     */
135
    public Persister getPersister() {
UNCOV
136
        if (this.persister == null) {
×
UNCOV
137
            this.persister = new DFPersister();
×
138
        }
UNCOV
139
        return this.persister;
×
140
    }
141
    
142
    /**
143
     * Codigo de Seguranca do Responsavel Tecnico - CSRT(NT 2018.005)
144
     *
145
     * @return Codigo de seguranca do responsavel tecnico.
146
     * @see <a href="http://www.nfe.fazenda.gov.br/portal/informe.aspx?ehCTG=false&Informe=hDS5co/qWOc=">Informativo(acessado em 10/04/19 as 11:30)</a>
147
     * @see <a href="http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=j/im9zMlcIE=">Baixar PDF(acessado em 10/04/19 as 11:30)</a>
148
     */
149
    public String getCSRT() {
UNCOV
150
        return "";
×
151
    }
152
}
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