Começando com CTE

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

As rotinas de CTE que estavam na classe eram pra versão antiga, CTE 1.00.
Comecei a testar e ajustar.
Após uns 10 minutos de alteração, fiz meu primeiro envio.... rs
cte.png

- Atualizar endereços de webservice
- Atualizar número de versão do CTE de 1.00 pra 2.00
- Atualizar nome do serviço
- Atualizar nome da SOAP Action

Só pra mostrar que o principal funciona, os detalhes é que podem precisar de ajuste.
E não tem muito aonde mexer

Código: Selecionar todos

METHOD CTeLoteEnvia( cXml, cLote, cUF, cCertificado, cAmbiente ) CLASS SefazClass

   ::cVersaoXml   := "2.00"
   ::cServico     := "http://www.portalfiscal.inf.br/cte/wsdl/CteRecepcao"
   ::cSoapAction  := "cteRecepcaoLote"
   ::cWebService  := ::GetWebService( ::cUF, WS_CTE_RECEPCAO, ::cAmbiente, WS_PROJETO_CTE )
   ::cXmlDados    := ""
   ::cXmlDados    += [<envicte versao="] + ::cVersaoXml + [" xmlns="http://www.portalfiscal.inf.br/cte">]
   // FOR nCont = 1 TO Len( Lotes )
   ::cXmlDados    += XmlTag( "idLote", cLote )
   ::cXmlDados    += cXml
   // NEXT
   ::cXmlDados    += [</envicte>]
   ::XmlSoapPost( ::cUF, ::cCertificado, WS_PROJETO_CTE )

   RETURN ::cXmlRetorno
...
   CASE cUF == "SP" .AND. cAmbiente == WS_AMBIENTE_HOMOLOGACAO
      DO CASE
      CASE nWsServico == WS_CTE_RECEPCAO ;               cUrlWs := "https://homologacao.nfe.fazenda.sp.gov.br/cteWEB/services/cteRecepcao.asmx"
Consultar Recibo vai ser mais demorado, esse não existe ainda na classe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

Consultar recibo... não aceitou meu xml....kkkkkk
cte2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

Ok, corrigido a consulta, faltou o xmlns="www.portalfiscal.inf.br/cte"

Minha dedução de ser esse problema foi pela resposta anterior:
acusou erro no namespace, e o número de recibo veio zerado, o que significa que nem aceitou a consulta, então o erro era no XML de consulta.


Agora o problema é o XML do CTE mesmo, e que aceita normalmente no emissor.
cte4.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Começando com CTE

Mensagem por NiltonGM »

Olá José Quintas,

Se precisar de alguns XMLs de CTE's autorizados para estudar é só pedir, tenho interesse em desenvolver as rotinas para criar o XML, Certifca-lo com o CD.(não sei como fazer isso), transmitir a Sefaz, pegar status da Sefaz e gerar o PDF (DACTE), trabalho com conhecimento desde a década de 80 e com CTE desde qdo inventaram, porem sempre terceirizei a transmissão e PDF do CTE, meu TMS envia ao parceiro via JSON as informações para seu webservice e me retornam a DACTE e status, só que meu parceiro não está atendendo muito bem no suporte pois ultimamente seu webservice tem dado muito problemas, por isso precisava desenrolar eu mesmo esse processo mas não sei como fazer, acho q se eu estudar esse projeto hbNEFe que é semelhante ao CTE/MDF-e devo conseguir fazer, vejo q vc já consegue enviar e pegar status de CTE, parabéns! Seus exemplos me ajudarão muito.
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

Valeu, mas está ok essa parte.

Não sei se entendeu a classe Sefaz, é pra NFE, CTE, MDFE e o que mais puder ser adicionado.

Pra mim a novidade está sendo colocar em prática a emissão própria pra CTE e MDFE, mas não o documento em si.
autorizados.png
292.282 NFE (modelo 55)
8.877 CTE (modelo 57 )
2.571 MDFE ( modelo 58)

Até que emiti bastante CTE e MDFE, tudo gerando XML assinado para o emissor gratuito.

Daquele dia pra cá, já é sem o emissor gratuito.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

A propósito...
Como está minha rotina de CTE no momento, já autorizando:

Código: Selecionar todos

   ...
   cTxtXml +=       [</infDoc>]
   CteBlocoSeguro( @cTxtXml, cSegEmpresa, cSegApolice, cSegAverbacao, nValNot )
   CteBlocoInfModal( @cTxtXml, cRntrc, dDatPre )
   cTxtXml +=    [</infCTeNorm>]
   cTxtXml += [</infCte>]
   cTxtXml += [</CTe>]
   cRetorno := AssinaXml( @cTxtXml, NomeCertificado( "CARBOLUB" ) )
   hb_memoWrit( "NFE\CTE-" + AllTrim( cCteNum ) + "-Assinado.xml", cTxtXml )
   IF cRetorno == "OK"
      oSefaz := SefazClass()
      oSefaz:CteLoteEnvia( cTxtXml, "1", "SP", NomeCertificado( "CARBOLUB" ), "1" )
      IF oSefaz:cStatus $ "100,101,202,302"
         hb_MemoWrit( hb_cwd() + "..\CARBOLUB\IMPORTA\CTE-" + cCteNum + "-" + oSefaz:cStatus + "-Autorizado.xml", oSefaz:cXmlAutorizado )
         ShellExecuteOpen( UnidanfePDF( oSefaz:cXmlAutorizado ) )
         MsgExclamation( iif( oSefaz:cStatus == "100", "CTE Autorizado", "CTE Denegado" ) )
      ELSE
         hb_MemoWrit( "NFE\CTE-" + cCteNum + "-02-Assinado.xml",  cTxtXml )
         hb_MemoWrit( "NFE\CTE-" + cCteNum + "-03-Envelope.xml",  oSefaz:cXmlSoap )
         hb_MemoWrit( "NFE\CTE-" + cCteNum + "-04-Recibo.xml",    oSefaz:cXmlRecibo )
         hb_MemoWrit( "NFE\CTE-" + cCteNum + "-05-Protocolo.xml", oSefaz:cXmlProtocolo )
         hb_MemoWrit( "NFE\CTE-" + cCteNum + "-06-Retorno.xml",   oSefaz:cXmlRetorno )
         IF ! Empty( oSefaz:cMotivo )
            MsgExclamation( "Erro " + oSefaz:cStatus + " " + oSefaz:cMotivo )
         ELSE
            MsgExclamation( "Erro desconhecido " + Pad( oSefaz:cXmlProtocolo, 1000 ) )
         ENDIF
      ENDIF
   ENDIF
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Começando com CTE

Mensagem por NiltonGM »

Que legal Zeh, vou baixar o projeto NFe e ver se consigo colocar o Certificado Digital no XML e depois autorizar o CTE junto a Sefaz. Espero que todas essas funções e classes q vc mostrou aí estejam lá no projeto.
De antemão agradeço o compartilhamento.

Dei o primeiro passo, baixei tudo do seu link https://github.com/JoseQuintas/sefazclass
Agora é regaçar as mangas e engolir os caroços!! rs

Abraço!
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Começando com CTE

Mensagem por JoséQuintas »

Espero que todas essas funções e classes q vc mostrou aí estejam lá no projeto
todas as "uma de cada"..... rs

Código: Selecionar todos

AssinaXml()
SefazClassO
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder