Clipper On Line • Ver Tópico - Novo projeto

Novo projeto

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

Moderador: Moderadores

 

Novo projeto

Mensagempor JoséQuintas » 27 Jul 2015 19:45

Pra não depender de autorização, e pra ficar bem clara a proposta, endereço separado.
Depois veremos o que fazer.

Não tem conversão de TXT: Xml chegou pra ficar. Aprender é fácil, e aqui no fórum podemos ajudar.

Não lê do disco: Sabe usar MemoRead(), então pode ler do jeito que quiser.

Não salva no disco: Sabe usar MemoWrit(), então sabe salvar do jeito que quiser.

Só trabalha com XML: pensou em rotina pra gerar INI, melhor gerar no padrão nacional que é XML.
Mudou o projeto? Ok. Só alterar os XMLs/strings.

Ainda não tá pronta pra 3.10: Vamos descobrir que letras alterar.

Precisa tempo e paciência: Uma única letra faz não funcionar, então tempo e paciência pra descobrir essa letra são necessários.

O ponto de partida está aí.
Daqui pra frente é descobrir que "letras" precisa alterar.

Sugestão: começar pela consulta protocolo, assim dá uma visão exata do que esperar, e no momento é uma das que uso 24 horas, então sei que funciona.

https://github.com/JoseQuintas/SpedSefazClass

Como usar o github:
Precisa do software GIT.
Pra baixar, aqui digitei no prompt pra usar a pasta SpedSefazClass\:
git clone https://github.com/JoseQuintas/SpedSefazClass.git SpedSefazClass


a partir daí, pra atualizar, é entrar na pasta SpedSefazClass e digitar:
git pull


Nota: Exatamente igual no Harbour, só muda endereço, afinal é no mesmo GITHUB.
Também serve o link direto pra quem não quer o git: [url]https://github.com/JoseQuintas/SpedSefazClass/archive/master.zip[url]
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor JoséQuintas » 27 Jul 2015 19:55

Assinatura:

   aDelimitadores := { ;
      { "<enviMDFe",   "</MDFe></enviMDFe>" }, ;
      { "<eventoMDFe", "</eventoMDFe>" }, ;
      { "<eventoCTe",  "</eventoCTe>" }, ;
      { "<infMDFe",    "</MDFe>" }, ;
      { "<infCte",     "</CTe>" }, ;
      { "<infNFe",     "</NFe>" }, ;
      { "<infDPEC",    "</envDPEC>" }, ;
      { "<infInut",    "<inutNFe>" }, ;
      { "<infCanc",    "</cancNFe>" }, ;
      { "<infInut",    "</inutNFe>" }, ;
      { "<infEvento",  "</evento>" }, ;
      { "<infPedidoCancelamento", "</Pedido>" }, ; // NFSE ABRASF Cancelamento
      { "<infRps",     "</Rps>" } }                // NFSE ABRASF


Aqui está bem claro o bloco necessário pra assinatura, aonde começa e aonde termina.
Se tem algum documento novo, só precisa alterar aí.
O detalhe importante é a ordem: por exemplo, MDFE tem tag NFE por isso vém primeiro, senão vai ser considerado NFE.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor JoséQuintas » 27 Jul 2015 20:39

Tudo passa por estes métodos pra comunicação:

METHOD XmlSoapPost( cUF, cCertificado, cProjeto ) CLASS SefazClass
METHOD XmlSoapEnvelope( cUF, cProjeto ) CLASS SefazClass
METHOD MicrosoftXmlSoapPost() CLASS SefazClass


Enquanto aqui é uma única rotina, na hbnfe tem isso em cada comunicação.
E isso pra NFE, CTE, MDFE, CCE, etc.

Por incrível que pareça, complicou pra usar isso na hbnfe.
É que tem XML que ela cria pela metade, completando em outro lugar com a outra metade.
E mesmo assim, de uma metade pra outra, lendo e gravando do disco, nas pastas conforme configuração.
Aparentemente uma complicação desnecessária.
E acaba complicando entender qual é exatamente cada XML.

Por essas e outras, melhor trabalhar em separado, até decidir como integrar ao projeto, e até mesmo se vai precisar integrar.
Aqui não precisa de nenhuma. (quem vai precisar é quem usa, e pode decidir do jeito que quiser).
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor fladimir » 27 Jul 2015 23:09

Ok José, vou baixar e testar e te falo.

Obrigado.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Novo projeto

Mensagempor JoséQuintas » 28 Jul 2015 16:34

O primeiro teste básico seria este, precisa da chave e do nome do certificado

PROCEDURE Main
   LOCAL oSefaz := SefazClass():New()
   oSefaz:NfeConsulta( "chave", "nomeDoCertificado" )
   ? oSefaz:cXmlRetorno
   RETURN
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor JoséQuintas » 28 Jul 2015 22:25

Atualizado consulta status pra 3.10.
Testei em SP e ok.
Só mudei a linha com a versão.

METHOD NFeStatus( cUF, cCertificado, cAmbiente ) CLASS SefazClass
...
   ::cVersaoXml   := "3.10"


Pra usar:
PROCEDURE Main
   LOCAL oSefaz := SefazClass():New()
   oSefaz:NfeStatus( "SP", "NomeCertificado", "1" )
   ? oSefaz:cXmlRetorno
   RETURN


Como eu disse antes, é uma classe curta e grossa, para a parte que interessa.
É enviar XML e receber XML, sem nem precisar arquivo em disco.
E pra atualizar, é alterar algumas letras.
Para o status foi fácil descobrir as letras a alterar.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor fladimir » 28 Jul 2015 22:53

Testei aki antes do teu ultimo post e o Seleciona Certificado esta Ok, o Consulta Status NFe da erro.

na Linha 696: oServer:Open( "POST", ::cWebService, .F.)

o ::cWebService ficou  "https://nfe.fazenda.ms.gov.br/producao/services2/NfeStatusServico2" devido ter escolhido "MS"


o XML Enviado é:
<?xml version="1.0" encoding="utf-8"?><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"><soap12:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><cUF>50</cUF><versaoDados>2.00</versaoDados></nfeCabecMsg></soap12:Header><soap12:Body><nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><consStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe"><tpAmb>1</tpAmb><cUF>50</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg></soap12:Body></soap12:Envelope>

o Retorno é:
Retorno: Erro: No componente SOAP
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Novo projeto

Mensagempor JoséQuintas » 28 Jul 2015 23:16

Apesar da mensagem de erro, dá pra ver 2.00 nessa quarta linha.
Altere primeiro no método NfeStatus() pra 3.10, que foi o que postei acima.
Enquanto isso vou fazer um teste aqui.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor JoséQuintas » 28 Jul 2015 23:20

Aqui ok para MS.
É só mesmo a alteração que mencionei.
Usei o próprio teste.prg que acompanha a classe.

Notas:
O certificado de SP serviu pra isso, pra consultar status em MS.
No seu teste, o webservice simplesmente rejeitou e a mensagem de erro não ajudaria em nada.
Se obrigasse um certificado de MS, eu nem teria como testar.
Desta vez foi rápido resolver, aliás, tava resolvido antes.... rs
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor fladimir » 28 Jul 2015 23:35

mesmo com a alteração o erro mencionado persiste, será q não é algo q preciso registar (DLL etc?) apesar do ACBr estar funcionando aki.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Novo projeto

Mensagempor JoséQuintas » 29 Jul 2015 00:02

É ACBR com capicom?
Pra comunicação e assinatura, é Capicom e Xml5.
E o nome correto do certificado, qualquer coisa use o teste.prg, que ele deixa selecionar certificado.
E pra isso, já usa a capicom.

Xml5
Anexos
msxml5.zip
(726.06 KiB) Baixado 124 vezes
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor fladimir » 29 Jul 2015 00:06

É ACBR com capicom?

Sim

Pra comunicação e assinatura, é Capicom e Xml5.

Não mexi em nada, como o ACBr funciona com Capicom penso q o projeto tb deva funcionar...

E o nome correto do certificado, qualquer coisa use o teste.prg, que ele deixa selecionar certificado.
E pra isso, já usa a capicom.

Estou compilando o teste executando escolhendo via Teste o certificado e depois vou no Consulta Status NFe e da o Erro no componente SOAP

Não estou entendendo, como ai funciona aki tinha q funcionar.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Novo projeto

Mensagempor JoséQuintas » 29 Jul 2015 00:08

Também o XML 5.0. Acabou entrando a alteração antes do seu post, tá anexo.
O W7 64 bits tem registro diferente pra programas 32 bits e 64 bits.
Dá uma olhada no readme.txt se precisar.
Em todo caso:
Windows 32 bits: copiar as DLLs para c:\windows\system32
Windows 64 bits: copiar as DLLs pra c:\windows\syswow64

Dentro da pasta pra onde foram copiados os arquivos:
(porque cada uma tem um regsvr32.exe diferente)

regsvr32 capicom.dll
regsvr32 msxml5.dll
regsvr32 msxml5r.dll
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Novo projeto

Mensagempor fladimir » 29 Jul 2015 00:17

ja tinha instalado, mas em todo caso baixei as q vc mandou e substitui e desregistrei e registrei novamente conforme readme.txt

o Erro permaneceu.

Não sei o q pode ser, amanhã vou fazer o seguinte vou testar em uma maquina XP q tenho aki (virtual) zerada e retorno com os resultados.

Obrigado
[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Novo projeto

Mensagempor JoséQuintas » 29 Jul 2015 00:19

Apesar da classe não estar preparada para o formato do retorno, pra retirar esse envelope, aqui mostrou este retorno.

Erro SOAP: XML retorno não está no padrão <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Header><nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><cUF>50</cUF><versaoDados>3.10</versaoDados></nfeCabecMsg></soapenv:Header><soapenv:Body><nfeStatusServicoNF2Result xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"><retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"><tpAmb>1</tpAmb><verAplic>MS201503300900</verAplic><cStat>107</cStat><xMotivo>Servico em Operacao</xMotivo><cUF>50</cUF><dhRecbto>2015-07-28T23:14:41-04:00</dhRecbto><tMed>1</tMed></retConsStatServ></nfeStatusServicoNF2Result></soapenv:Body></soapenv:Envelope>
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Projeto hbNFe

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


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