1
+ /**
2
+ *
3
+ */
4
+ package br .com .swconsultoria .cte ;
5
+
6
+ import br .com .swconsultoria .cte .dom .ConfiguracoesCte ;
7
+ import br .com .swconsultoria .cte .dom .enuns .AmbienteEnum ;
8
+ import br .com .swconsultoria .cte .dom .enuns .EstadosEnum ;
9
+ import br .com .swconsultoria .cte .dom .enuns .StatusCteEnum ;
10
+ import br .com .swconsultoria .cte .exception .CteException ;
11
+ import br .com .swconsultoria .cte .schema_400 .cteModalRodoviario .Rodo ;
12
+ import br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp ;
13
+ import br .com .swconsultoria .cte .schema_400 .cteSimp .TRetCTeSimp ;
14
+ import br .com .swconsultoria .cte .util .ChaveUtil ;
15
+ import br .com .swconsultoria .cte .util .ConstantesCte ;
16
+ import br .com .swconsultoria .cte .util .ObjetoCTeUtil ;
17
+ import br .com .swconsultoria .cte .util .XmlCteUtil ;
18
+ import lombok .extern .java .Log ;
19
+
20
+ import java .time .LocalDateTime ;
21
+ import java .util .Random ;
22
+ import java .util .logging .Level ;
23
+
24
+ /**
25
+ * @author Ismael Luan Lawrenz
26
+ */
27
+ @ Log
28
+ class TesteEnvioCteSimplifiado {
29
+
30
+ public static void main (String [] args ) {
31
+
32
+ try {
33
+ ConfiguracoesCte config = TesteConfig .iniciaConfiguracoes (EstadosEnum .SC , AmbienteEnum .HOMOLOGACAO );
34
+
35
+ //TODO: Preencher com o cnpj do emissor
36
+ String cnpj = "25149469000118" ;
37
+ int serie = 4 ;
38
+ int numero = 23 ;
39
+
40
+ TCTeSimp cte = preencheObjetoCte (config , cnpj , serie , numero );
41
+
42
+
43
+ // Monta e Assina o XML
44
+ cte = Cte .montaCteSimp (config , cte , true );
45
+
46
+ //Adiciona QRCode
47
+ TCTeSimp .InfCTeSupl infCTeSupl = new TCTeSimp .InfCTeSupl ();
48
+ infCTeSupl .setQrCodCTe (ObjetoCTeUtil .criaQRCode (
49
+ cte .getInfCte ().getId ().substring (3 ),
50
+ config ));
51
+ cte .setInfCTeSupl (infCTeSupl );
52
+
53
+ // Envia a Cte para a Sefaz
54
+ TRetCTeSimp retorno = Cte .enviarCteSimp (config , cte );
55
+
56
+ log .info ("Status: " + retorno .getCStat () + " - " + retorno .getXMotivo ());
57
+
58
+ if (retorno .getCStat ().equals (StatusCteEnum .AUTORIZADO .getCodigo ())) {
59
+ log .info ("Protocolo: " + retorno .getProtCTe ().getInfProt ().getNProt ());
60
+ log .info ("XML Final: " + XmlCteUtil .criaCteSimpProc (cte , retorno .getProtCTe ()));
61
+ }
62
+
63
+ } catch (Exception e ) {
64
+ log .log (Level .SEVERE , "Erro ao enviar Cte" , e );
65
+ }
66
+
67
+ }
68
+
69
+ private static TCTeSimp preencheObjetoCte (ConfiguracoesCte config , String cnpj , int serie , int numero ) throws CteException {
70
+ TCTeSimp cte = new TCTeSimp ();
71
+
72
+
73
+ String tipoEmissao = "1" ;
74
+ String cct = String .format ("%08d" , new Random ().nextInt (99999999 ));
75
+ String modelo = "57" ;
76
+
77
+ ChaveUtil chaveUtil = new ChaveUtil (config .getEstado (),
78
+ cnpj , modelo , serie , numero ,
79
+ tipoEmissao , cct , LocalDateTime .now ());
80
+
81
+ String chave = chaveUtil .getChaveCT ();
82
+
83
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte infCTe = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte ();
84
+ infCTe .setId (chave );
85
+ infCTe .setVersao (ConstantesCte .VERSAO .CTE );
86
+
87
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Ide ide = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Ide ();
88
+ ide .setCUF (config .getEstado ().getCodigoUF ());
89
+ ide .setCCT (cct );
90
+ ide .setCFOP ("5351" );
91
+ ide .setNatOp ("TRANSPORTE INTERNO" );
92
+ ide .setMod (modelo );
93
+ ide .setSerie (String .valueOf (serie ));
94
+ ide .setNCT (String .valueOf (numero ));
95
+ ide .setDhEmi (XmlCteUtil .dataCte (LocalDateTime .now ()));
96
+ ide .setTpImp ("1" );
97
+ ide .setTpEmis (tipoEmissao );
98
+ ide .setCDV (chaveUtil .getDigitoVerificador ());
99
+ ide .setTpAmb (config .getAmbiente ().getCodigo ());
100
+ ide .setTpCTe ("5" );
101
+ ide .setProcEmi ("0" );
102
+ ide .setVerProc ("1.0" );
103
+ ide .setCMunEnv ("4204301" );
104
+ ide .setXMunEnv ("Concordia" );
105
+ ide .setUFEnv (br .com .swconsultoria .cte .schema_400 .cteSimp .TUf .valueOf ("SC" ));
106
+ ide .setModal ("01" );
107
+ ide .setTpServ ("0" );
108
+ ide .setUFIni (br .com .swconsultoria .cte .schema_400 .cteSimp .TUf .valueOf ("SC" ));
109
+ ide .setUFFim (br .com .swconsultoria .cte .schema_400 .cteSimp .TUf .valueOf ("SC" ));
110
+ ide .setRetira ("1" );
111
+ infCTe .setIde (ide );
112
+
113
+
114
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Compl compl = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Compl ();
115
+ compl .setXObs ("FORMA DE PAGAMENTO DEPOSITO BANCARIO,FAVOR ENVIAR COPIA DO COMPROVANTE PARA O TRANSPORTADOR E ANEXAR VIA A DA CONTABILIDADE" );
116
+ infCTe .setCompl (compl );
117
+
118
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Emit emit = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Emit ();
119
+ emit .setCNPJ (cnpj );
120
+ emit .setIE ("251803082" );
121
+ emit .setXNome ("TESTE" );
122
+ emit .setXFant ("TESTE" );
123
+ emit .setCRT ("3" );
124
+
125
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TEndeEmi enderEmit = new br .com .swconsultoria .cte .schema_400 .cteSimp .TEndeEmi ();
126
+ enderEmit .setXLgr ("AV SANTO ANTONIO & CIA" );
127
+ enderEmit .setNro ("0" );
128
+ enderEmit .setXCpl ("QD 17 LT 01-02-03" );
129
+ enderEmit .setXBairro ("PQ STO ANTONIO" );
130
+ enderEmit .setCMun ("4204301" );
131
+ enderEmit .setXMun ("Concordia" );
132
+ enderEmit .setUF (br .com .swconsultoria .cte .schema_400 .cteSimp .TUFSemEX .valueOf ("SC" ));
133
+ enderEmit .setCEP ("72900000" );
134
+ enderEmit .setFone ("6233215175" );
135
+
136
+ emit .setEnderEmit (enderEmit );
137
+ infCTe .setEmit (emit );
138
+
139
+ TCTeSimp .InfCte .Toma toma = new TCTeSimp .InfCte .Toma ();
140
+ toma .setToma ("0" );
141
+ toma .setCNPJ ("83011247002346" );
142
+ toma .setIndIEToma ("1" );
143
+ toma .setIE ("254804438" );
144
+ toma .setXNome ("CTE EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL" );
145
+ toma .
setEmail (
"[email protected] " );
146
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TEndereco enderToma = new br .com .swconsultoria .cte .schema_400 .cteSimp .TEndereco ();
147
+ enderToma .setXLgr ("Rua: Teste" );
148
+ enderToma .setNro ("0" );
149
+ enderToma .setXBairro ("TESTE" );
150
+ enderToma .setCMun ("4204301" );
151
+ enderToma .setXMun ("SANTO ANTONIO DO DESCOBERTO" );
152
+ enderToma .setUF (br .com .swconsultoria .cte .schema_400 .cteSimp .TUf .SC );
153
+ enderToma .setCEP ("44079002" );
154
+ enderToma .setCPais ("1058" );
155
+ enderToma .setXPais ("Brasil" );
156
+ toma .setEnderToma (enderToma );
157
+ infCTe .setToma (toma );
158
+
159
+ TCTeSimp .InfCte .InfCarga infCarga = new TCTeSimp .InfCte .InfCarga ();
160
+ infCarga .setVCarga ("1.00" );
161
+ infCarga .setProPred ("TESTE" );
162
+ TCTeSimp .InfCte .InfCarga .InfQ infQ = new TCTeSimp .InfCte .InfCarga .InfQ ();
163
+ infQ .setCUnid ("04" );
164
+ infQ .setTpMed ("07" );
165
+ infQ .setQCarga ("10000.0000" );
166
+ infCarga .getInfQ ().add (infQ );
167
+ infCTe .setInfCarga (infCarga );
168
+
169
+ TCTeSimp .InfCte .Det det = new TCTeSimp .InfCte .Det ();
170
+ det .setNItem ("1" );
171
+ det .setCMunIni ("4204301" );
172
+ det .setXMunIni ("Concórdia" );
173
+ det .setCMunFim ("4204301" );
174
+ det .setXMunFim ("Concórdia" );
175
+ det .setVPrest ("1.00" );
176
+ det .setVRec ("1.00" );
177
+
178
+
179
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Det .Comp comp = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Det .Comp ();
180
+ comp .setVComp ("500.00" );
181
+ comp .setXNome ("TESTE" );
182
+
183
+ det .getComp ().add (comp );
184
+
185
+ TCTeSimp .InfCte .Det .InfNFe infNFe = new TCTeSimp .InfCte .Det .InfNFe ();
186
+ infNFe .setChNFe ("42241083011247002346550080018136131182627760" );
187
+ det .getInfNFe ().add (infNFe );
188
+ infCTe .getDet ().add (det );
189
+
190
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .InfModal infModal = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .InfModal ();
191
+ infModal .setVersaoModal (ConstantesCte .VERSAO .CTE );
192
+ Rodo rodo = new Rodo ();
193
+ rodo .setRNTRC ("47008950" );
194
+ infModal .setAny (ObjetoCTeUtil .objectToElement (rodo , Rodo .class , "rodo" ));
195
+ infCTe .setInfModal (infModal );
196
+
197
+
198
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Imp imp = new br .com .swconsultoria .cte .schema_400 .cteSimp .TCTeSimp .InfCte .Imp ();
199
+
200
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TImp icms = new br .com .swconsultoria .cte .schema_400 .cteSimp .TImp ();
201
+
202
+ br .com .swconsultoria .cte .schema_400 .cteSimp .TImp .ICMS45 icms45 = new br .com .swconsultoria .cte .schema_400 .cteSimp .TImp .ICMS45 ();
203
+ icms45 .setCST ("40" );
204
+ icms45 .setCBenef ("SC850001" );
205
+ icms45 .setVICMSDeson ("0" );
206
+ icms .setICMS45 (icms45 );
207
+
208
+ imp .setICMS (icms );
209
+
210
+ TCTeSimp .InfCte .Total total = new TCTeSimp .InfCte .Total ();
211
+ total .setVTPrest ("1.00" );
212
+ total .setVTRec ("1.00" );
213
+
214
+ infCTe .setTotal (total );
215
+ infCTe .setImp (imp );
216
+
217
+ cte .setInfCte (infCTe );
218
+ return cte ;
219
+ }
220
+
221
+ }
0 commit comments