-
Notifications
You must be signed in to change notification settings - Fork 41
Envio da CTe
Samuel Oliveira edited this page Feb 17, 2017
·
6 revisions
Exemplo de Como Ficaria o Envio da CT-e.
try{
// Inicia As Configurações
ConfiguracoesIniciaisCte config = PrincipalTeste.iniciaConfigurações();
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe cte = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe();
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte infCTe = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte();
infCTe.setId("CTe" + ChaveCte);
infCTe.setVersao(config.getVersaoCte());
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Ide ide = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Ide();
ide.setCUF(config.getEstado().getCodigoIbge());
ide.setCCT(cct);
ide.setCFOP("5351");
ide.setNatOp("TRANSPORTE INTERNO");
ide.setForPag("2");
ide.setMod("57");
ide.setSerie("1");
ide.setNCT(numero);
ide.setDhEmi(data);
ide.setTpImp("1");
ide.setTpEmis("1");
ide.setCDV(cDV);
ide.setTpAmb(config.getAmbiente());
ide.setTpCTe("0");
ide.setProcEmi("0");
ide.setVerProc("1.0");
ide.setCMunEnv("5219753");
ide.setXMunEnv("Anapolis");
ide.setUFEnv(br.inf.portalfiscal.cte.schema_200.enviCTe.TUf.valueOf("GO"));
ide.setModal("01");
ide.setTpServ("0");
ide.setCMunIni("5219753");
ide.setXMunIni("Anapolis");
ide.setUFIni(br.inf.portalfiscal.cte.schema_200.enviCTe.TUf.valueOf("GO"));
ide.setCMunFim("5219753");
ide.setXMunFim("Anapolis");
ide.setUFFim(br.inf.portalfiscal.cte.schema_200.enviCTe.TUf.valueOf("GO"));
ide.setRetira("1");
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Ide.Toma03 toma3 = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Ide.Toma03();
toma3.setToma("3");
ide.setToma03(toma3);
infCTe.setIde(ide);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Compl compl = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Compl();
compl.setXObs("FORMA DE PAGAMENTO DEPOSITO BANCARIO,FAVOR ENVIAR COPIA DO COMPROVANTE PARA O TRANSPORTADOR E ANEXAR VIA A DA CONTABILIDADE");
infCTe.setCompl(compl);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Emit emit = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Emit();
emit.setCNPJ(cnpj);
emit.setIE(ie);
emit.setXNome(RazaoSocial);
emit.setXFant(Fantasia);
br.inf.portalfiscal.cte.schema_200.enviCTe.TEndeEmi enderEmit = new br.inf.portalfiscal.cte.schema_200.enviCTe.TEndeEmi();
enderEmit.setXLgr("AV SANTO ANTONIO & CIA");
enderEmit.setNro("0");
enderEmit.setXCpl("QD 17 LT 01-02-03");
enderEmit.setXBairro("PQ STO ANTONIO");
enderEmit.setCMun("5219753");
enderEmit.setXMun("SANTO ANTONIO DO DESCOBERTO");
enderEmit.setUF(br.inf.portalfiscal.cte.schema_200.enviCTe.TUFSemEX.valueOf("GO"));
enderEmit.setCEP("72900000");
enderEmit.setFone("6233215175");
emit.setEnderEmit(enderEmit);
infCTe.setEmit(emit);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Rem rem = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Rem();
rem.setCNPJ(CNPJ);
rem.setIE(Ie);
rem.setXNome("CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
rem.setEmail(Email);
br.inf.portalfiscal.cte.schema_200.enviCTe.TEndereco enderRem = new br.inf.portalfiscal.cte.schema_200.enviCTe.TEndereco();
enderRem.setXLgr("Rua: Teste");
enderRem.setNro("0");
enderRem.setXBairro("TESTE");
enderRem.setCMun("5219753");
enderRem.setXMun("SANTO ANTONIO DO DESCOBERTO");
enderRem.setUF(br.inf.portalfiscal.cte.schema_200.enviCTe.TUf.GO);
enderRem.setCEP("75120683");
enderRem.setCPais("1058");
enderRem.setXPais("Brasil");
rem.setEnderReme(enderRem);
infCTe.setRem(rem);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Dest dest = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Dest();
dest.setCNPJ(CNPJ);
dest.setIE(Ie);
dest.setXNome("CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
dest.setEmail(Email);
br.inf.portalfiscal.cte.schema_200.enviCTe.TEndereco enderDest = new br.inf.portalfiscal.cte.schema_200.enviCTe.TEndereco();
enderDest.setXLgr("Rua: Teste");
enderDest.setNro("0");
enderDest.setXBairro("TESTE");
enderDest.setCMun("5219753");
enderDest.setXMun("SANTO ANTONIO DO DESCOBERTO");
enderDest.setUF(br.inf.portalfiscal.cte.schema_200.enviCTe.TUf.GO);
enderDest.setCEP("75120683");
enderDest.setCPais("1058");
enderDest.setXPais("Brasil");
dest.setEnderDest(enderDest);
infCTe.setDest(dest);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.VPrest prest = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.VPrest();
prest.setVTPrest("410.00");
prest.setVRec("410.00");
infCTe.setVPrest(prest);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Imp imp = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.Imp();
br.inf.portalfiscal.cte.schema_200.enviCTe.TImp icms = new br.inf.portalfiscal.cte.schema_200.enviCTe.TImp();
br.inf.portalfiscal.cte.schema_200.enviCTe.TImp.ICMS45 icms45 = new br.inf.portalfiscal.cte.schema_200.enviCTe.TImp.ICMS45();
icms45.setCST("40");
icms.setICMS45(icms45);
imp.setICMS(icms);
infCTe.setImp(imp);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm infCTeNorm = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm();
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfCarga infCarga = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfCarga();
infCarga.setVCarga("29100.00");
infCarga.setProPred("OLEO DIESEL");
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfCarga.InfQ infQ = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfCarga.InfQ();
infQ.setCUnid("04");
infQ.setTpMed("LT");
infQ.setQCarga("10000.0000");
infCarga.getInfQ().add(infQ);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfDoc infDoc = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfDoc();
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfDoc.InfNFe infNFe = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfDoc.InfNFe();
infNFe.setChave(ChaveNfe);
infDoc.getInfNFe().add(infNFe);
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.Seg seg = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.Seg();
seg.setRespSeg("0");
br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfModal infModal = new br.inf.portalfiscal.cte.schema_200.enviCTe.TCTe.InfCte.InfCTeNorm.InfModal();
infModal.setVersaoModal(config.getVersaoCte());
br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.Rodo rodo = new br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.Rodo();
rodo.setRNTRC(RNTRC);
rodo.setDPrev(data);
rodo.setLota("0");
br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.Rodo.Veic veic = new br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.Rodo.Veic();
veic.setCInt("C5");
veic.setRENAVAM(Renavam);
veic.setPlaca(Placa);
veic.setTara("0");
veic.setCapKG("0");
veic.setCapM3("0");
veic.setTpProp("T");
veic.setTpVeic("0");
veic.setTpRod("03");
veic.setTpCar("00");
veic.setUF(br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.TUf.GO);
Prop prop = new Prop();
prop.setCNPJ(Cnpj);
prop.setRNTRC(rntrc);
prop.setXNome(RAzao");
prop.setIE(Ie);
prop.setUF(br.inf.portalfiscal.cte.schema_200.cteModalRodoviario.TUf.GO);
prop.setTpProp("2");
veic.setProp(prop);
rodo.getVeic().add(veic);
Moto moto = new Moto();
moto.setXNome("Nome Motorista");
moto.setCPF(Cpf);
rodo.getMoto().add(moto);
infModal.setAny(ObjetoUtil.objectToElement(rodo, Rodo.class, "rodo"));
infCTeNorm.setInfCarga(infCarga);
infCTeNorm.setInfDoc(infDoc);
infCTeNorm.getSeg().add(seg);
infCTeNorm.setInfModal(infModal);
infCTe.setInfCTeNorm(infCTeNorm);
// Monta EnviCte
TEnviCTe enviCTe = new TEnviCTe();
enviCTe.setVersao(config.getVersaoCte());
enviCTe.setIdLote("1");
cte.setInfCte(infCTe);
enviCTe.getCTe().add(cte);
// MOnta e Assina o XML
enviCTe = Cte.montaCte(enviCTe , true);
// Envia a Cte para a Sefaz
TRetEnviCTe retorno = Cte.enviarCte(enviCTe);
if(!retorno.getCStat().equals("103")){
throw new CteException("Status:" + retorno.getCStat() + " - Motivo:" + retorno.getXMotivo());
}
String recibo = retorno.getInfRec().getNRec();
TConsReciCTe consReciCTe = new TConsReciCTe();
consReciCTe.setVersao(config.getVersaoCte());
consReciCTe.setTpAmb(config.getAmbiente());
consReciCTe.setNRec(recibo);
br.inf.portalfiscal.cte.schema_200.retConsReciCTe.TRetConsReciCTe retornoCte = new br.inf.portalfiscal.cte.schema_200.retConsReciCTe.TRetConsReciCTe();
while(true){
retornoCte = Cte.consultaRecibo(consReciCTe, true);
if(retornoCte.getCStat().equals("105")){
System.out.println("Lote Em Processamento, vai tentar novamente apos 2 Segundo.");
Thread.sleep(2000);
continue;
}else{
break;
}
}
if(!retornoCte.getCStat().equals("104")){
throw new CteException("Status:" + retornoCte.getCStat() + " - " + retornoCte.getXMotivo());
}
System.out.println("Status: " + retornoCte.getProtCTe().get(0).getInfProt().getCStat() + " - " + retornoCte.getProtCTe().get(0).getInfProt().getXMotivo());
System.out.println("Data: " + retornoCte.getProtCTe().get(0).getInfProt().getDhRecbto());
System.out.println("Protocolo: " + retornoCte.getProtCTe().get(0).getInfProt().getNProt());
System.out.println("XML Final: " + XmlUtil.criaCteProc(enviCTe, retornoCte.getProtCTe().get(0)));
} catch (CteException | JAXBException | InterruptedException e) {
System.out.println("Erro:" + e.getMessage());
}