• 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

52.27
/src/main/java/com/fincatto/documentofiscal/cte400/classes/simp/CTeNotaSimpInfo.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.nota.CTeNotaInfoAutorizacaoDownload;
6
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoCTeNormalCobranca;
7
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoCTeNormalInfoCarga;
8
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoCTeNormalInfoModal;
9
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoEmitente;
10
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoInformacoesRelativasImpostos;
11
import com.fincatto.documentofiscal.cte400.classes.nota.CTeNotaInfoResponsavelTecnico;
12
import com.fincatto.documentofiscal.validadores.DFListValidador;
13
import com.fincatto.documentofiscal.validadores.DFStringValidador;
14
import org.simpleframework.xml.Attribute;
15
import org.simpleframework.xml.Element;
16
import org.simpleframework.xml.ElementList;
17
import org.simpleframework.xml.Namespace;
18
import org.simpleframework.xml.Root;
19

20
import java.util.List;
21

22
/**
23
 * Informações do CT-e Simplificado (grupo infCte). A ordem dos elementos segue o
24
 * XSD cteSimp_v4.00.xsd. Reaproveita os grupos comuns ao CT-e normal (emit,
25
 * infCarga, infModal, imp, cobr, autXML, infRespTec) e traz o próprio grupo det.
26
 */
27
@Root(name = "infCte")
28
@Namespace(reference = CTeConfig.NAMESPACE)
29
public class CTeNotaSimpInfo extends DFBase {
1✔
30
    public static final String IDENT = "CTe";
31
    private static final long serialVersionUID = 1L;
32

33
    @Attribute(name = "Id")
34
    private String id;
35

36
    @Attribute(name = "versao")
37
    private String versao;
38

39
    @Element(name = "ide")
40
    private CTeNotaSimpInfoIdentificacao ide;
41

42
    @Element(name = "emit")
43
    private CTeNotaInfoEmitente emit;
44

45
    @Element(name = "toma")
46
    private CTeNotaSimpInfoTomador toma;
47

48
    @Element(name = "infCarga")
49
    private CTeNotaInfoCTeNormalInfoCarga infCarga;
50

51
    @ElementList(name = "det", inline = true)
52
    private List<CTeNotaSimpInfoDet> det;
53

54
    @Element(name = "infModal")
55
    private CTeNotaInfoCTeNormalInfoModal infModal;
56

57
    @Element(name = "cobr", required = false)
58
    private CTeNotaInfoCTeNormalCobranca cobr;
59

60
    @Element(name = "imp")
61
    private CTeNotaInfoInformacoesRelativasImpostos imp;
62

63
    @Element(name = "total")
64
    private CTeNotaSimpInfoTotal total;
65

66
    @ElementList(name = "autXML", inline = true, required = false)
67
    private List<CTeNotaInfoAutorizacaoDownload> autXML;
68

69
    @Element(name = "infRespTec", required = false)
70
    private CTeNotaInfoResponsavelTecnico infRespTec;
71

72
    public String getId() {
NEW
73
        return this.id;
×
74
    }
75

76
    /**
77
     * Identificador da tag a ser assinada. Informar a chave de acesso do CT-e,
78
     * precedida do literal "CTe".
79
     */
80
    public void setId(final String id) {
81
        DFStringValidador.exatamente44(id, "Identificador");
1✔
82
        this.id = CTeNotaSimpInfo.IDENT + id;
1✔
83
    }
1✔
84

85
    /**
86
     * Chave de acesso a partir do identificador.
87
     */
88
    public String getChaveAcesso() {
NEW
89
        return this.id.replace(CTeNotaSimpInfo.IDENT, "");
×
90
    }
91

92
    public String getVersao() {
NEW
93
        return this.versao;
×
94
    }
95

96
    /**
97
     * Versão do leiaute
98
     */
99
    public void setVersao(final String versao) {
100
        this.versao = versao;
1✔
101
    }
1✔
102

103
    public CTeNotaSimpInfoIdentificacao getIde() {
NEW
104
        return this.ide;
×
105
    }
106

107
    public void setIde(final CTeNotaSimpInfoIdentificacao ide) {
108
        this.ide = ide;
1✔
109
    }
1✔
110

111
    public CTeNotaInfoEmitente getEmit() {
NEW
112
        return this.emit;
×
113
    }
114

115
    public void setEmit(final CTeNotaInfoEmitente emit) {
116
        this.emit = emit;
1✔
117
    }
1✔
118

119
    public CTeNotaSimpInfoTomador getToma() {
NEW
120
        return this.toma;
×
121
    }
122

123
    public void setToma(final CTeNotaSimpInfoTomador toma) {
124
        this.toma = toma;
1✔
125
    }
1✔
126

127
    public CTeNotaInfoCTeNormalInfoCarga getInfCarga() {
NEW
128
        return this.infCarga;
×
129
    }
130

131
    public void setInfCarga(final CTeNotaInfoCTeNormalInfoCarga infCarga) {
132
        this.infCarga = infCarga;
1✔
133
    }
1✔
134

135
    public List<CTeNotaSimpInfoDet> getDet() {
NEW
136
        return this.det;
×
137
    }
138

139
    /**
140
     * Detalhamento das entregas / prestações (1 a 999 itens).
141
     */
142
    public void setDet(final List<CTeNotaSimpInfoDet> det) {
143
        DFListValidador.tamanho990(det, "Detalhamento das prestacoes (det)");
1✔
144
        this.det = det;
1✔
145
    }
1✔
146

147
    public CTeNotaInfoCTeNormalInfoModal getInfModal() {
NEW
148
        return this.infModal;
×
149
    }
150

151
    public void setInfModal(final CTeNotaInfoCTeNormalInfoModal infModal) {
152
        this.infModal = infModal;
1✔
153
    }
1✔
154

155
    public CTeNotaInfoCTeNormalCobranca getCobr() {
NEW
156
        return this.cobr;
×
157
    }
158

159
    public void setCobr(final CTeNotaInfoCTeNormalCobranca cobr) {
NEW
160
        this.cobr = cobr;
×
NEW
161
    }
×
162

163
    public CTeNotaInfoInformacoesRelativasImpostos getImp() {
NEW
164
        return this.imp;
×
165
    }
166

167
    public void setImp(final CTeNotaInfoInformacoesRelativasImpostos imp) {
168
        this.imp = imp;
1✔
169
    }
1✔
170

171
    public CTeNotaSimpInfoTotal getTotal() {
NEW
172
        return this.total;
×
173
    }
174

175
    public void setTotal(final CTeNotaSimpInfoTotal total) {
176
        this.total = total;
1✔
177
    }
1✔
178

179
    public List<CTeNotaInfoAutorizacaoDownload> getAutXML() {
NEW
180
        return this.autXML;
×
181
    }
182

183
    public void setAutXML(final List<CTeNotaInfoAutorizacaoDownload> autXML) {
NEW
184
        DFListValidador.tamanho10(autXML, "Autorizados para download do XML do DF-e");
×
NEW
185
        this.autXML = autXML;
×
NEW
186
    }
×
187

188
    public CTeNotaInfoResponsavelTecnico getInfRespTec() {
NEW
189
        return this.infRespTec;
×
190
    }
191

192
    public void setInfRespTec(final CTeNotaInfoResponsavelTecnico infRespTec) {
NEW
193
        this.infRespTec = infRespTec;
×
NEW
194
    }
×
195
}
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