Skip to content

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());
}
Clone this wiki locally