Skip to content

Commit ce8a010

Browse files
committed
criado teste do envio do cte simplificado
1 parent 69a2b08 commit ce8a010

File tree

3 files changed

+269
-2
lines changed

3 files changed

+269
-2
lines changed

src/test/java/br/com/swconsultoria/cte/TesteConfig.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,5 @@ public static ConfiguracoesCte iniciaConfiguracoes(EstadosEnum estado, AmbienteE
2323

2424
return ConfiguracoesCte.criarConfiguracoes(estado, ambiente,
2525
certificado, "schemas");
26-
2726
}
28-
2927
}
Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
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+
}

wsdl/CTeRecepcaoSimpV4.wsdl

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSimpV4" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="CTeRecepcaoSimpV4" targetNamespace="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSimpV4">
3+
<wsdl:types>
4+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSimpV4" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSimpV4" version="1.0">
5+
<xs:element name="cteDadosMsg" type="xs:string"/>
6+
<xs:element name="cteRecepcaoSimpResult">
7+
<xs:complexType>
8+
<xs:sequence>
9+
<xs:any namespace="##other" processContents="skip"/>
10+
</xs:sequence>
11+
</xs:complexType>
12+
</xs:element>
13+
</xs:schema>
14+
</wsdl:types>
15+
<wsdl:message name="cteRecepcaoSimpResponse">
16+
<wsdl:part element="tns:cteRecepcaoSimpResult" name="cteRecepcaoSimpResult">
17+
</wsdl:part>
18+
</wsdl:message>
19+
<wsdl:message name="cteRecepcaoSimp">
20+
<wsdl:part element="tns:cteDadosMsg" name="cteDadosMsg">
21+
</wsdl:part>
22+
</wsdl:message>
23+
<wsdl:portType name="CTeRecepcaoSimpV4Soap12">
24+
<wsdl:operation name="cteRecepcaoSimp">
25+
<wsdl:input message="tns:cteRecepcaoSimp" name="cteRecepcaoSimp">
26+
</wsdl:input>
27+
<wsdl:output message="tns:cteRecepcaoSimpResponse" name="cteRecepcaoSimpResponse">
28+
</wsdl:output>
29+
</wsdl:operation>
30+
</wsdl:portType>
31+
<wsdl:binding name="CTeRecepcaoSimpV4SoapBinding" type="tns:CTeRecepcaoSimpV4Soap12">
32+
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
33+
<wsdl:operation name="cteRecepcaoSimp">
34+
<soap12:operation soapAction="http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSimpV4/cteRecepcaoSimp" style="document"/>
35+
<wsdl:input name="cteRecepcaoSimp">
36+
<soap12:body use="literal"/>
37+
</wsdl:input>
38+
<wsdl:output name="cteRecepcaoSimpResponse">
39+
<soap12:body use="literal"/>
40+
</wsdl:output>
41+
</wsdl:operation>
42+
</wsdl:binding>
43+
<wsdl:service name="CTeRecepcaoSimpV4">
44+
<wsdl:port binding="tns:CTeRecepcaoSimpV4SoapBinding" name="CTeRecepcaoSimpV4Soap12">
45+
<soap12:address location="http://cte.sefaz.mt.gov.br/cte-ws/services/CTeRecepcaoSimpV4"/>
46+
</wsdl:port>
47+
</wsdl:service>
48+
</wsdl:definitions>

0 commit comments

Comments
 (0)