• 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

34.21
/src/main/java/com/fincatto/documentofiscal/cte400/classes/simp/CTeNotaSimpInfoTomador.java
1
package com.fincatto.documentofiscal.cte400.classes.simp;
2

3
import com.fincatto.documentofiscal.DFBase;
4
import com.fincatto.documentofiscal.cte.CTeConfig;
5
import com.fincatto.documentofiscal.cte400.classes.CTIndicadorTomador;
6
import com.fincatto.documentofiscal.cte400.classes.CTTomadorServico;
7
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaEndereco;
8
import com.fincatto.documentofiscal.validadores.DFStringValidador;
9
import org.simpleframework.xml.Element;
10
import org.simpleframework.xml.Namespace;
11
import org.simpleframework.xml.Root;
12

13
/**
14
 * Identificação do tomador do serviço no CT-e Simplificado (grupo toma).
15
 * Diferente do CT-e normal: o tomador pode ser qualquer papel (0 a 4) e o
16
 * indicador de inscrição estadual (indIEToma) é informado dentro deste grupo.
17
 */
18
@Root(name = "toma")
19
@Namespace(reference = CTeConfig.NAMESPACE)
20
public class CTeNotaSimpInfoTomador extends DFBase {
1✔
21
    private static final long serialVersionUID = 1L;
22

23
    @Element(name = "toma")
24
    private CTTomadorServico toma;
25

26
    @Element(name = "indIEToma")
27
    private CTIndicadorTomador indIEToma;
28

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

32
    @Element(name = "CPF", required = false)
33
    private String CPF;
34

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

38
    @Element(name = "xNome")
39
    private String xNome;
40

41
    @Element(name = "ISUF", required = false)
42
    private String ISUF;
43

44
    @Element(name = "fone", required = false)
45
    private String fone;
46

47
    @Element(name = "enderToma")
48
    private CTeNotaEndereco enderToma;
49

50
    @Element(name = "email", required = false)
51
    private String email;
52

53
    public CTTomadorServico getToma() {
NEW
54
        return this.toma;
×
55
    }
56

57
    /**
58
     * Tomador do Serviço. Preencher com: 0-Remetente; 1-Expedidor; 2-Recebedor;
59
     * 3-Destinatário; 4-Terceiro.
60
     */
61
    public void setToma(final CTTomadorServico toma) {
62
        this.toma = toma;
1✔
63
    }
1✔
64

65
    public CTIndicadorTomador getIndIEToma() {
NEW
66
        return this.indIEToma;
×
67
    }
68

69
    /**
70
     * Indicador do papel do tomador na prestação do serviço: 1 - Contribuinte ICMS;
71
     * 2 - Contribuinte isento de inscrição; 9 - Não Contribuinte.
72
     */
73
    public void setIndIEToma(final CTIndicadorTomador indIEToma) {
74
        this.indIEToma = indIEToma;
1✔
75
    }
1✔
76

77
    public String getCNPJ() {
NEW
78
        return this.CNPJ;
×
79
    }
80

81
    /**
82
     * Número do CNPJ do tomador. Informar os zeros não significativos.
83
     */
84
    public void setCNPJ(final String CNPJ) {
85
        DFStringValidador.cnpj(CNPJ);
1✔
86
        this.CNPJ = CNPJ;
1✔
87
    }
1✔
88

89
    public String getCPF() {
NEW
90
        return this.CPF;
×
91
    }
92

93
    /**
94
     * Número do CPF do tomador. Informar os zeros não significativos.
95
     */
96
    public void setCPF(final String CPF) {
NEW
97
        DFStringValidador.cpf(CPF);
×
NEW
98
        this.CPF = CPF;
×
NEW
99
    }
×
100

101
    public String getIE() {
NEW
102
        return this.IE;
×
103
    }
104

105
    /**
106
     * Inscrição Estadual do tomador (ou ISENTO).
107
     */
108
    public void setIE(final String IE) {
NEW
109
        DFStringValidador.inscricaoEstadual(IE);
×
NEW
110
        this.IE = IE;
×
NEW
111
    }
×
112

113
    public String getXNome() {
NEW
114
        return this.xNome;
×
115
    }
116

117
    /**
118
     * Razão Social ou Nome do tomador
119
     */
120
    public void setXNome(final String xNome) {
121
        DFStringValidador.tamanho2ate60(xNome, "Razão Social ou Nome do tomador");
1✔
122
        this.xNome = xNome;
1✔
123
    }
1✔
124

125
    public String getISUF() {
NEW
126
        return this.ISUF;
×
127
    }
128

129
    /**
130
     * Inscrição na SUFRAMA (obrigatório nas operações com áreas de incentivos fiscais).
131
     */
132
    public void setISUF(final String ISUF) {
NEW
133
        this.ISUF = ISUF;
×
NEW
134
    }
×
135

136
    public String getFone() {
NEW
137
        return this.fone;
×
138
    }
139

140
    /**
141
     * Telefone do tomador
142
     */
143
    public void setFone(final String fone) {
NEW
144
        DFStringValidador.telefone(fone);
×
NEW
145
        this.fone = fone;
×
NEW
146
    }
×
147

148
    public CTeNotaEndereco getEnderToma() {
NEW
149
        return this.enderToma;
×
150
    }
151

152
    /**
153
     * Dados do endereço do tomador
154
     */
155
    public void setEnderToma(final CTeNotaEndereco enderToma) {
156
        this.enderToma = enderToma;
1✔
157
    }
1✔
158

159
    public String getEmail() {
NEW
160
        return this.email;
×
161
    }
162

163
    /**
164
     * Endereço de email do tomador
165
     */
166
    public void setEmail(final String email) {
NEW
167
        DFStringValidador.tamanho60(email, "Endereço de email do tomador");
×
NEW
168
        DFStringValidador.email(email);
×
NEW
169
        this.email = email;
×
NEW
170
    }
×
171
}
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