• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wmixvideo / nfe / #9456

23 Jul 2026 08:27PM UTC coverage: 50.851% (-0.9%) from 51.794%
#9456

push

web-flow
Adiciona suporte ao CT-e Simplificado (tpCTe=5, NT 2024.002) (#1180)

* Adiciona suporte nativo ao CT-e Simplificado (tpCTe=5, NT 2024.002)
Implementa o Conhecimento de Transporte Eletrônico Simplificado (Ajuste
SINIEF 46/2023) como variante de modelo 57, seguindo o CT-e OS como molde
e a convenção de nomes = tags XML já usada no IBSCBS.
Classes de domínio (cte400/classes/simp/):
- CTeNotaSimp (raiz CTeSimp), CTeNotaSimpInfo, ...Identificacao, ...Tomador,
  ...Det (+ Comp, InfNFe, InfDocAnt, InfDocAntNFeParcial), ...Total
- Reutiliza emit, infModal, infCarga e imp do CT-e normal
- Raiz CTeSimp sem atributo versao (só infCte o possui)
Webservice e transporte:
- WSRecepcaoCTeSimp (assina infCte, GZip+Base64, síncrono sem lote)
- CTeRecepcaoSimpV4Stub — literais conferidos contra os WSDL reais de
  homologação de MT e SVRS (namespace, operação cteRecepcaoSimp, cteDadosMsg,
  cteRecepcaoSimpResult, soapAction)
- CTeSimpEnvioRetorno/...Dados e CTeSimpProcessado (cteSimpProc)
- Overload WSFacade.enviaCTe(CTeNotaSimp)
Autorizador e validação:
- CTAutorizador400.getCteRecepcaoSimp nos 8 autorizadores (produção +
  homologação); MT usa path atípico cte-ws/services/
- DFXMLValidador.validaNotaCteSimp400 (cteSimp_v4.00.xsd, RTC 1.14)
Teste:
- CTeNotaSimpTest faz round-trip serializa→valida contra o XSD; toda a
  estrutura de negócio valida (só falta Signature, aplicado no envio)

* Adiciona suporte nativo ao CT-e Simplificado (tpCTe=5, NT 2024.002)
Implementa o Conhecimento de Transporte Eletrônico Simplificado (Ajuste
SINIEF 46/2023) como variante de modelo 57, seguindo o CT-e OS como molde
e a convenção de nomes = tags XML já usada no IBSCBS.
Classes de domínio (cte400/classes/simp/):
- CTeNotaSimp (raiz CTeSimp), CTeNotaSimpInfo, ...Identificacao, ...Tomador,
  ...Det (+ Comp, InfNFe, InfDocAnt, InfDocAntNFeParcial), ...Total
- Reutiliza emit, infModal, infCarga e imp do CT-e normal
- Raiz CTeSimp sem atributo versao (só infCte o possui)
Webservice e transpor... (continued)

130 of 324 new or added lines in 15 files covered. (40.12%)

711 existing lines in 42 files now uncovered.

15094 of 29683 relevant lines covered (50.85%)

0.51 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.49
/src/main/java/com/fincatto/documentofiscal/validadores/DFIntegerValidador.java
1
package com.fincatto.documentofiscal.validadores;
2

3
public abstract class DFIntegerValidador {
×
4

5
    public static void tamanho4(final Integer valor, final String info) {
6
        DFIntegerValidador.limite(valor, 9999, info);
1✔
7
    }
1✔
8

9
    public static void tamanho5(final Integer valor, final String info) {
10
        DFIntegerValidador.limite(valor, 99999, info);
1✔
11
    }
1✔
12

13
    public static void tamanho7(final Integer valor, final String info) {
14
        DFIntegerValidador.limite(valor, 9999999, info);
1✔
15
    }
1✔
16

17
    public static void tamanho9(final Integer valor, final String info) {
18
        DFIntegerValidador.limite(valor, 999999999, info);
1✔
19
    }
1✔
20

21
    public static void exatamente7(final Integer valor, final String info) {
22
        DFIntegerValidador.intervalo(valor, 1000000, 9999999, info);
1✔
23
    }
1✔
24

25
    public static void exatamente4(final int valor, final String info) {
26
        DFIntegerValidador.intervalo(valor, 1000, 9999, info);
1✔
27
    }
1✔
28

29
    public static void tamanho3(final int valor, final String info) {
30
        DFIntegerValidador.limite(valor, 999, info);
1✔
31
    }
1✔
32

33
    public static void tamanho3maximo990(final int valor, final String info) {
34
        DFIntegerValidador.limite(valor, 990, info);
1✔
35
    }
1✔
36

37
    public static void exatamente6(final Integer valor, final String info) {
38
        DFIntegerValidador.intervalo(valor, 100000, 999999, info);
1✔
39
    }
1✔
40

41
    public static void tamanho6(final Integer valor, final String info) {
42
        DFIntegerValidador.limite(valor, 999999, info);
1✔
43
    }
1✔
44

45
    public static void exatamente1(final Integer valor, final String info) {
46
        DFIntegerValidador.limite(valor, 9, info);
1✔
47
    }
1✔
48

49
    public static void tamanho1a2(final int valor, final String info) {
50
        DFIntegerValidador.intervalo(valor, 1, 99, info);
1✔
51
    }
1✔
52

53
    public static void tamanho1a3(final int valor, final String info) {
UNCOV
54
        DFIntegerValidador.intervalo(valor, 1, 999, info);
×
UNCOV
55
    }
×
56

57
    public static void exatamente2(final Integer valor, final String info) {
58
        DFIntegerValidador.intervalo(valor, 10, 99, info);
1✔
59
    }
1✔
60
    public static void valor1(final Integer valor, final String info) {
UNCOV
61
        DFIntegerValidador.intervalo(valor, 1, 1, info);
×
UNCOV
62
    }
×
63
    private static void limite(final Integer valor, final int maximo, final String info) {
64
        if (valor != null && valor > maximo) {
1✔
65
            throw new NumberFormatException("Valor extrapolou o tamanho do campo " + info);
1✔
66
        }
67
    }
1✔
68

69
    private static void intervalo(final Integer valor, final int minimo, final int maximo, final String info) {
70
        if (valor != null && (valor < minimo || valor > maximo)) {
1✔
71
            throw new NumberFormatException(String.format("Valor %s tem tamanho fora do intervalo de [%s-%s]", info, minimo, maximo));
1✔
72
        }
73
    }
1✔
74
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc