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