Acompanhando as mudanças da hbnfe

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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Só uma explicação daquela parte que não precisa mais na consulta de status:

uma coisa do XML é que ao definir alguma coisa pro bloco de fora, vale para os blocos internos.
Aquela parte que não precisa mais já faz parte do envelope, então teoricamente colocar dentro seria algo inútil.
Acho que eles só ajustaram o schemma deles pra não obrigar o interno.

Código: Selecionar todos

<bloco de fora xmlns:xsi="alguma coisa">
   <subbloco xmlns:xsi="alguma coisa">
      <subsubbloco xmlns:xsi="alguma coisa">
      </subsubbloco>
   </subbloco>
</bloco>
Esse tipo de coisa.
Se o de fora já tem xmlns:xsi="alguma coisa" , significa que isso vale pra todos de dentro.
Repetir isso dentro é só gastar espaço.

Nota: Não pensem que sou nenhum expert de XML. Só percebi algumas coisas conforme foram acontecendo.

Quanto ao commit, tô quase lá.
Agora estou achando melhor mover tudo que existe hoje pra hbnfeold, e começar a nova etapa.

Talvez seja interessante quem fez a impressão dos documentos torná-los independentes.
Algo como: GeraDanfe( "arquivo.xml" ) ou GeraDanfe( MemoRead( cXml ) )
A segunda opção deixaria mais independente ainda.
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Convido a todos a dar uma olhada.
É apenas uma prévia.
No teste só montei pra consulta status e consulta cadastro.

Quem tiver capicom e msxml5 instalado, é só rodar.

Quem não tiver, tudo bem, tá tudo aí, incluindo o readme.txt explicando como fazer.

Comparem com a mesma coisa da hbnfe anterior.

Nota:
Eu já havia commitado antes na hbnfe, depois deixei tudo num zip da hbnfe.
A diferença é aquele xmlns:xsi da consulta status, e as tres linhas de retirar do envelope.
Só estou tentando criar o caminho certo, pra não ficar altera/volta/altera/volta nas pastas do projeto.
Basicamente são os 3 fontes: assina (pra assinatura), spedsefaz (pra comunicação da sefaz), e xmlfun (funções pra xml).

Aceito sugestão dos criadores da hbnfe sobre a melhor forma de prosseguir.
Esse teste dá uma boa idéia do que pode ser feito.
Lembrando:
o teste tem consulta status e consulta cadastro, mas a classe sefaz tem também toda parte de autorização da nfe.
só não tem o programa de teste, mas as classes são auto-explicativas dá pra testar as outras coisas.

Querem testar por partes?

Usem a rotina de assinatura. Com isso qualquer XML assinado poderá ser importado no emissor do governo.
Usem o envio de nfe. Qualquer coisa é só importar o XML assinado no emissor e completar por ele, ou já baixar direto do site da Sefaz.
Usem o consulta recibo, e o pegar protocolo.
Testem fazer a montagem do XML autorizado manual...
Qualquer coisa de errado que aconteça, tem o emissor do governo, ou qualquer outra alternativa pra completar.

Não tem porque não testar.

Só não vão fazer algo do tipo:

Código: Selecionar todos

DO WHILE .T.
   ConsultaRecibo()
   ConsultaCadastro()
ENDDO
Isso sobrecarrega a Sefaz, e ela tem o critério de mandar aviso e até bloquear o certificado.

Eu testo direto no ambiente de produção.'
Envia uma nota, dá uma olhada no que aconteceu.
Depois consulta...
Vai sossegado, não tenha pressa.

O consulta cadastro eu uso pra facilitar o envio de informações pra ANP. A ANP exige o CNAE das empresas, então uso a consulta cadastro da NFE pra isso, senão teria que olhar um por um.
Lembrando que o cadastro é de contribuintes do ICMS. Não tem pessoa física e nem empresa de serviço sem inscrição estadual.
Também poderia ser usado pra cadastrar automaticamente pessoas jurídicas, acho que não pensaram nessa opção.

É isso.
É ver funcionando, e encontrar mil e uma possibilidades.
O que fazer depois depende só de imaginação.

Lembrando também:
- Aqui uso pra São Paulo
- Uma empresa de São Paulo pode não poder usar o consulta cadastro da Bahia e vice-versa, cada UF decide se deixa ou não disponível pra empresas de fora.
- A capicom pode ser distribuída com aplicativo, mas não sei do XML 5.0 que a Microsoft só deixou no Office.
Na dúvida, caso os moderadores achem adequado excluir, vou deixar em um ZIP separado. Ao ser baixada a hbnfe, eles estão lá (já faziam parte)

Depois desta prévia... vai ser direto no commit.
Anexos
msxml5.zip
(726.06 KiB) Baixado 136 vezes
teste.zip
(542.57 KiB) Baixado 163 vezes
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Sobre o teste, é bem simples:

primeira opção - escolhe o certificado - é obrigatória
segunda opção - consulta status é só digitar a UF
terceira opção - consulta cadastro é só digitar a UF e o CNPJ

Vai ser mostrado o XML original de retorno, seguido de algumas informações extraídas desse retorno.

Apesar de simples pega 52 opções, só lembrar que são 26 UFs com endereços diferentes X 2 opções.

Curiosidade, retorno do Ceará:

Código: Selecionar todos

Versão Aplicativo:CE_NFe_V3.10.0.18
Acho que isso indica que no Ceará não precisará mudança desta consulta pra NFE 3.10.
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
oxent_jabah
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 26 Dez 2008 11:29
Localização: Juazeiro do Norte-Ce-Brasil

Acompanhando as mudanças da hbnfe

Mensagem por oxent_jabah »

Ze Quincas,

Fiz os testes conforme sequencia indicada, as duas primeiras opções funcionaram blz, agora a terceira o retorno de tela foi este:
- UF: CE
- CNPJ: 41544552000148



Seleciona certificado
Consulta Status NFE
* Consulta Cadastro




*ERRO*
versao:
Aplicativo:
Status:
Motivo:
UF:
IE:
CNPJ:
CPF:
Data/Hora:
UF:
Nome(1):
CNAE(1):
Lograd(1):
nro(1):
Compl(1):
Bairro(1):
Cod.Mun(1):
Municip(1):
CEP(1):
Etc pode ter vários endereços...


OBS: não deveria ter apresentados os dados de cada campo ? este CNPJ é da empresa que trabalho.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Como apareceu "*ERRO*" significa que não conseguiu consultar.
Testei aqui mas não dá acesso pra SP.
Mesmo assim, há a comunicação com CE.
Na tela aparece isto, mostrando que foi com CE mesmo, mas só dá acesso pra quem está cadastrado como emitente.

Código: Selecionar todos

dConsultaCadastro2"><retConsCad xmlns="http://www.portalfiscal.inf.br/nfe" vers
rsao="2.00"><infCons><verAplic>CE_NFe_V3.10.0.18</verAplic><cStat>257</cStat><x
<xMotivo>Rejeicao: Solicitante nao habilitado para emissao da NF-e</xMotivo><UF
UF>CE</UF><CNPJ>41544552000148</CNPJ><dhCons>2014-12-12T14:10:59</dhCons><cUF>2
>23</cUF></infCons></retConsCad></cadConsultaCadastro2Result>
O que percebi, é uma possibilidade, esqueci do PICTURE "@!" no get da UF, não sei se pode ter usado minúscula.

Indo por partes:
- primeira opção ok, então certificado ok
- segunda opção ok, então o que é necessário ok, e rotina de comunicação ok
- endereço do webservice ok, aqui comunicando com CE apesar de não liberado.

Tem instalado msxml5.dll e msxml5r.dll??
Dois testes adicionais: outro CNPJ no CE, outra UF com qualquer CNPJ

Comecei a melhorar essas mensagens, indicando em qual ponto ocorre o problema, ao invés de apenas "*ERRO*"
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
oxent_jabah
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 26 Dez 2008 11:29
Localização: Juazeiro do Norte-Ce-Brasil

Acompanhando as mudanças da hbnfe

Mensagem por oxent_jabah »

Zé Quincas,

Sim, fiz os testes tanto com a UF em minusculo, quanto em maisculo, o resultado foi o mesmo.

as três dlls estão instaladas no sistema.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Qual Windows?
O readme.txt tem o detalhe diferente pra W64 bits ref regsvr32.exe da pasta SysWow64.
E se fizer com o da pasta System32, terá que "desregistrar" por ele, antes de registrar com o correto.
Só tentando eliminar as possíveis causas de falha.
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Achei um problema na rotina de pegar a CN do certificado.
O certificado que mais uso mostra na configuração como CN=xxxxxxxx, OU=xxxx
Este outro que fui usar, não mostra nem CN=, e nem OU=.
Olhei a da hbnfe original, a minha, e criei uma terceira.

O curioso é que isso só afetou uma das consultas, e não as duas.
Vai entender...

Na lista do Windows, criada pelo próprio Windows, ao invés de mostrar a razão social do cliente, mostra SERPRO f09d

Só pra facilitar esta primeira fase de testes, sem complicar com repositório, e sem encher de arquivos no fórum.

http://www.jpatecnologia.com.br/arquivos/teste.exe

Agora o PROMPT aceita mouse, e pra "clarear" as mensagens passei a usar a wapi_Messagebox()
Criei a de compatibilidade com xharbour, pra não esquecer, usando ALert().
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Só pra justificar porque não vi isso antes:
Aqui eu costumo olhar manual e colocar no programa o CN dos certificados.
No programa eu uso

Código: Selecionar todos

DO CASE
CASE cnpj == "00.000.000/0000-00"
   cCertificado := "ddfsdfdsdsfds"
...
ENDCASE
No programa teste, a rotina de escolha de certificado foi pra facilitar.
Coincidiu que eu testei com outro certificado e encontrei isso.
Pode ser que seja este o problema com o Oxent_Jaba,
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
oxent_jabah
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 26 Dez 2008 11:29
Localização: Juazeiro do Norte-Ce-Brasil

Acompanhando as mudanças da hbnfe

Mensagem por oxent_jabah »

Zé Quincas,

Neste caso Eu devo fazer o que para contornar o problema, tens ideia ?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Melhorei as mensagens pra saber em que posição está ocorrendo o erro.
http://www.jpatecnologia.com.br/arquivos/teste.exe
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Se por acaso tiver outra alternativa de consulta, verifique se o resultado é o mesmo.
Não dá pra saber se o problema poderia ser lá na Sefaz.
Tem dessas também.
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

Acompanhando as mudanças da hbnfe

Mensagem por JoséQuintas »

Hoje um amigo estava com problemas no php pra NFE 3.10 e pediu ajuda.
Como acabei dando uma olhada nisso, e estava com a mão na massa, em alguns minutos, durante a convesa pelo skype, acabei ajustando a rotina atual pra funcionar na NFE 3.10.
Já testado e funcionando pra UF SPaulo.
Tá fácil de enxergar o que foi acrescentado.
Agora funciona pra consulta recibo 2.00 e 3.10.

Código: Selecionar todos

METHOD NFeConsultaRecibo( cRecibo, cUF, cCertificado, cAmbiente, cVersao ) CLASS SefazClass
   cCertificado := iif( cCertificado == NIL, ::cCertificado, cCertificado )
   cAmbiente    := iif( cAmbiente == NIL, ::cAmbiente, cAmbiente )
   cUF          := iif( cUF == NIL, ::cUF, cUF )
   cVersao      := iif( cVersao == NIL, "2.00", ::cVersao )
   IF ::cVersao == "2.00"
      ::cServico     := "http://www.portalfiscal.inf.br/nfe/wsdl/NfeRetRecepcao2"
      ::cSoapAction  := "nfeRetRecepcao2"
      ::cWebService  := ::GetWebService( cUF, WSNFERETRECEPCAO, cAmbiente, WSPROJETONFE )
   ELSE // 3.10
      ::cServico := "http://www.portalfiscal.inf.br/nfe/wsdl/NfeRetAutorizacao"
      ::cSoapAction := "NfeRetAutorizacao"
      ::cWebService := ::GetWebService( cUf, WSNFERETAUTORIZACAO, cAmbiente, WSPROJETONFE )
   ENDIF
   ::cXmlDados    := ""
   ::cXmlDados    += [<consReciNFe versao="] + ::cVersao + [" xmlns="http://www.portalfiscal.inf.br/nfe">]
   ::cXmlDados    +=    [<tpAmb>] + cAmbiente + [</tpAmb>]
   ::cXmlDados    +=    [<nRec>] + cRecibo + [</nRec>]
   ::cXmlDados    += [</consReciNFe>]
   ::XmlSoapPost( cUF, cCertificado, WSPROJETONFE )
   ::cXmlProtocolo := ::cXmlRetorno
   RETURN ::cXmlRetorno
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
oxent_jabah
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 26 Dez 2008 11:29
Localização: Juazeiro do Norte-Ce-Brasil

Acompanhando as mudanças da hbnfe

Mensagem por oxent_jabah »

Zé Quincas,

Desculpe-me não ter retornado antes, sai de férias e estou retornando agora as atividades normais, antes de algo mais, UM EXCELENTE ANO NOVO!

Vamos lá, você poderia disponibilizar aqui as ultimas alterações feitas por você, na lib e no teste.prg ?
athayde
Colaborador
Colaborador
Mensagens: 166
Registrado em: 14 Fev 2007 16:54

Acompanhando as mudanças da hbnfe

Mensagem por athayde »

Olá pessoal estive com foco em projetos fora do Brasil, mas não abandonei o projeto, o Leonardo (sygecom) e o Anderson Camilo mexem na hbnfe
sobre xhb ou hb, sempre usei ela em harbour, fiz em xhb também pois muita gente usa xhb, então a hbnfe desde sua concepção foi pensada primeiro para harbour, em projetos aqui do brasil não estou com o harbour atualizado esta na 2.1, por isso acho que estão sofrendo com alguma incompatibilidade, já que mudou muito para versão 3, que estou usando num projeto que não tem nfe
Sempre deixei o pessoal aqui responder dúvidas, mas de vez em quando entro para dar uma olhada
Eu vou usar a NFE 3.1 também, já que tenho vários clientes de NFe, então agora em fevereiro estarei bem ativo nesse projeto da HBNFe, só nos organizarmos, como vocês estão fazendo na questão de commits e quem esta mexendo com o que?
Gostaria de saber como está caminhando isso, pois gosto de uma certa organização no código e se possível usar OO, pois fica bem fácil de implementar no acesso aos sistemas

[]s
Fernando
fernandoathayde@gmail.com
projeto hbNFe NFe para [x]Harbour venha fazer parte do time http://www.pctoledo.com.br/forum/viewforum.php?f=54
Harbour 3.2 + Hwgui (HBIDE)
Responder