Clipper On Line • Ver Tópico - Começando com CTE

Começando com CTE

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

Moderador: Moderadores

 

Começando com CTE

Mensagempor JoséQuintas » 09 Set 2016 16:05

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

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Começando com CTE

Mensagempor JoséQuintas » 09 Set 2016 16:35

Consultar recibo... não aceitou meu xml....kkkkkk

cte2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Começando com CTE

Mensagempor JoséQuintas » 09 Set 2016 16:42

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Começando com CTE

Mensagempor NiltonGM » 26 Set 2016 13:16

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 de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Começando com CTE

Mensagempor JoséQuintas » 26 Set 2016 13:46

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Começando com CTE

Mensagempor JoséQuintas » 26 Set 2016 14:32

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

   ...
   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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Começando com CTE

Mensagempor NiltonGM » 26 Set 2016 16:13

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 de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

Começando com CTE

Mensagempor JoséQuintas » 27 Set 2016 09:04

Espero que todas essas funções e classes q vc mostrou aí estejam lá no projeto


todas as "uma de cada"..... rs

AssinaXml()
SefazClassO
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Projeto hbNFe

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro