Página 1 de 1

CTe

Enviado: 16 Jul 2012 22:51
por marcos.gurupi
Caros, estou precisando desenvolver algo para conhecimento de transporte eletronico, procurei algo em acbr... mas nao encontrei. Alguem teria um exemplo em xhb para que eu estude?

CTe

Enviado: 16 Jul 2012 23:25
por sygecom
Olá Marcos,
Você pode pegar como base de uso a HBNFE, que pode ser 100% usado com xHarbour

CTe

Enviado: 16 Jul 2012 23:46
por JoséQuintas
Resumindo o o projeto em geral, de TUDO:

Tem o XML do documento. Este é o que leva assinatura.
Tem o XML do lote, onde um dos blocos é o documento.
Tem o XML do SOAP, onde um dos blocos é o lote.
Aonde não precisa lote, o próprio documento será o lote.
E a comunicação com a fazenda é o envio desse XML-SOAP e recebimento de um XML de resposta.
Basicamente é isso.
Isso vale pra NFE, CTE, CCE, e tudo mais.

No geral é tempo e paciência, porque montar tudo é fácil, mas é trabalhoso.
Considerando que é tudo igual, basta acrescentar as outras coisas no projeto hbnfe, ou fazer CTE separado.

CTe

Enviado: 17 Jul 2012 00:39
por JoséQuintas
Esqueci de mencionar...
Dá uma olhada em algumas rotinas que postei no tópico da hbnfe.
Elas podem ajudar a clarear a idéia.

Por enquanto, aqui vai a consulta de CTE, foi a única parte que fiz do CTE e funciona.
Como tudo é no mesmo estilo, serve de base inicial para o resto:
Obs. A função de SOAP tem na hbnfe, mas cheguei a postar a parte também no tópico dela, é rotina única pra tudo.

Código: Selecionar todos


Procedure SefazConsultaCte(cChave,cCertificateCN)

Local cAmbiente, cUrlWs, cSOAPAction, cXmlResp, cXmlDados, cXmlSoap

cAmbiente := "1"
cXmlResp  := "*ERRO*"

cUrlWs := GetUrlWs(UfCodigo(Substr(cChave,1,2)),"cteconsultaprotocolo")

cXmlDados := ""
cXmlDados += [<consSitCTe versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte">]
cXmlDados += [<tpAmb>] + cAmbiente + [</tpAmb>] 
cXmlDados += [<xServ>CONSULTAR</xServ>]
cXmlDados += [<chCTe>] + cChave + [</chCTe>]
cXmlDados += [</consSitCTe>]

cXmlSoap := ""
cXmlSoap += [<?xml version="1.0" encoding="UTF-8"?>]
cXmlSoap += [<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">]
cXmlSoap +=    [<soap12:Header>]
cXmlSoap +=       [<cteCabecMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CteConsulta">]
cXmlSoap +=          [<cUF>] + Substr(cChave,1,2) + [</cUF>]
cXmlSoap +=          [<versaoDados>1.04</versaoDados>]
cXmlSoap +=       [</cteCabecMsg>]
cXmlSoap +=    [</soap12:Header>]
cXmlSoap +=    [<soap12:Body>]
cXmlSoap +=       [<cteDadosMsg xmlns="http://www.portalfiscal.inf.br/cte/wsdl/CteConsulta">]
cXmlSoap += cXmlDados
cXmlSoap +=    [</cteDadosMsg>]
cXmlSoap +=    [</soap12:Body>]
cXmlSoap += [</soap12:Envelope>]


cSoapAction := [http://www.portalfiscal.inf.br/cte/wsdl/CteConsulta/cteConsultaCT]
cXmlResp := MsXmlSoapPost( cUrlWs, cXmlSoap, cSoapAction, cCertificateCN)
Return cXmlResp