Versão 3.10
Moderador: Moderadores
Versão 3.10
Desde o inicio do Mês fazendo adaptações na hbnfe baixei a ultima versão e compreendi o que o amigo José Quintas queria dizer quando falou que ninguém deveria estar usando esta classe.
O primeiro teste Status do Servidor, a versão antiga tudo ok na que está no site
cSOAPAction := 'http://www.portalfiscal.inf.br/nfe/wsdl ... onsultaNF2' o correto seria
cSOAPAction := 'http://www.portalfiscal.inf.br/nfe/wsdl ... ServicoNF2'
Na primeira versão 2 dias de testes e tudo OK
Agora se faz necessário maior cuidado.
Daniel Segura
O primeiro teste Status do Servidor, a versão antiga tudo ok na que está no site
cSOAPAction := 'http://www.portalfiscal.inf.br/nfe/wsdl ... onsultaNF2' o correto seria
cSOAPAction := 'http://www.portalfiscal.inf.br/nfe/wsdl ... ServicoNF2'
Na primeira versão 2 dias de testes e tudo OK
Agora se faz necessário maior cuidado.
Daniel Segura
Daniel Segura
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Versão 3.10
Não entendi o que seria a antiga, e a do site.
Ou se é a hbnfe ou a classe SpedSefazClass.
Ou se é a hbnfe ou a classe SpedSefazClass.
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/
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/
Versão 3.10
José a Antiga é a primeira verão disponibilizada, e a do site é a versão atual da hbnfe via svn.
Daniel Segura
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Versão 3.10
Mas se está ajudando a antiga, chegou a olhar a classe? Não é mais fácil?
Sobre ninguém usando é só verificar aqui, que não houve nenhuma pergunta sobre ela.
Se ninguém pergunta, é porque ninguém usa e nem vai usar.
Semana passada eu fiz uma cirurgia, e como o corte foi perto da barriga, não dava pra ficar posicionado na frente do computador.
Agora melhorei, mas estou aproveitando a troca pra NFE 3.10 pra instalar MySql nos clientes.
Sobre ninguém usando é só verificar aqui, que não houve nenhuma pergunta sobre ela.
Se ninguém pergunta, é porque ninguém usa e nem vai usar.
Semana passada eu fiz uma cirurgia, e como o corte foi perto da barriga, não dava pra ficar posicionado na frente do computador.
Agora melhorei, mas estou aproveitando a troca pra NFE 3.10 pra instalar MySql nos clientes.
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Versão 3.10
Melhoras ai. SAÚDE!
Eu tenho interesse em usar esta classe. Eu não tenho tempo livre para testar, com um passo a passo se tem, ajudaria.
Alias é tanta coisa boa que estão criando e estou aprendendo e falta tempo p/ reescrever os código velhos.
Agora mudei algumas coisas p/ usar os DBF´s temporários tudo na memoria RAM "mem:" ficou muito bom.
Saudações,
Itamar M. Lins Jr.
Eu tenho interesse em usar esta classe. Eu não tenho tempo livre para testar, com um passo a passo se tem, ajudaria.
Alias é tanta coisa boa que estão criando e estou aprendendo e falta tempo p/ reescrever os código velhos.
Agora mudei algumas coisas p/ usar os DBF´s temporários tudo na memoria RAM "mem:" ficou muito bom.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Versão 3.10
Como disse sempre, no final equivale a "matar" a hbnfe, porque modifica tudo.
Perdem-se algumas mordomias existentes na hbnfe, mas ganha-se facilidade e controle total.
Não é LIB, não é DLL, é apenas linqueditar com os fontes.
Infelizmente perdemos duas vantagens que existiam antes:
- A 2.0 está pronta pra uso, mas já deixou de ser interessante porque só funciona por mais 2 dias
- A 3.10 já vira obrigatória em dois dias, o que torna arriscado a considerar como única opção pra 01/04
Então só resta testar.
Perdem-se algumas mordomias existentes na hbnfe, mas ganha-se facilidade e controle total.
Não é LIB, não é DLL, é apenas linqueditar com os fontes.
Infelizmente perdemos duas vantagens que existiam antes:
- A 2.0 está pronta pra uso, mas já deixou de ser interessante porque só funciona por mais 2 dias
- A 3.10 já vira obrigatória em dois dias, o que torna arriscado a considerar como única opção pra 01/04
Então só resta testar.
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/
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/
Versão 3.10
José,
Tenha uma boa recuperação.
Aproveitei a classe exatamente como está no site, fiz os testes e onde não passava alterei mas não usei ainda a sua classe por falta de tempo.
Abaixo o que o usuário final vai usar para consultar uma nf-e.
Tenha uma boa recuperação.
Aproveitei a classe exatamente como está no site, fiz os testes e onde não passava alterei mas não usei ainda a sua classe por falta de tempo.
Abaixo o que o usuário final vai usar para consultar uma nf-e.
Código: Selecionar todos
function nfe_consulta_hbnfe(f_cFileXmlName)
private oNfe, oDanfe, aRetorno , oFuncoes
oNfe := hbNfe()
Seta_Schemas_Nfe(oNfe) ; Seta_Pastas_Nfe(oNfe) ; Seta_Email_Nfe(oNfe)
mensagem("Consultando NF-e: "+f_cFileXmlName)
oConsulta := hbNFeConsulta()
oConsulta:ohbNFe := oNfe // Objeto hbNFe
oConsulta:cNFeFile := f_cFileXmlName // Chave ou pode ser um arquivo xml com o parametro cNFeFile
aRetorno := oConsulta:execute()
cChNFe := oConsulta:cChaveNFe
oConsulta := Nil
mensagem("")
IF aRetorno['OK'] == .F.
msginfo( aRetorno['MsgErro'] , "Falha na consulta da NFe.")
return .f.
ELSE
msginfo( "Retorno: " + HB_OEMTOANSI( aRetorno['xMotivo'] ) + CRLF +;
"Chave da Nota: " + cChNFe + CRLF +;
"Nota recebida em:" + aRetorno['dhRecbto'] + CRLF +;
"Nº do Protocolo:" + aRetorno['nProt'] + CRLF +;
"Digito da Nota:" + aRetorno['digVal'], "Resultado da Consulta.")
ENDIF
return .t.
// -------------------------------------------------------------------------- //Daniel Segura
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
ciacpd@hotmail.com
clipper/FW - xharbour/hwgui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Versão 3.10
Serve como exemplo pra mostrar mudança:
Não precisou mais pastas temporárias, nem arquivo temporário, é comunicação direta com a Fazenda.
Essa a é parte que mencionei que ganha-se controle total.
A parte que falei que perde-se mordomias, é até relativo.
Uma vez com o XML de retorno, verifica a informação direto no XML.
Considero vantagem o fato de estar mexendo diretamente com arquivos do projeto.
Não vai estar aprendendo detalhes de uma classe, e sim do projeto.
Uma opção pra analisar o retorno, usando função que está na classe, seria esta:
oSefaz:cXmlSoap é o XML que foi enviado pra Fazenda, serve pra verificar bugs, controle total
oSefaz:cRetorno é exatamente o XML retornado pela Sefaz, controle total
No projeto original da Sefaz não existe arquivo temporário, não existe arquivo "não temporário", o único arquivo é o XML final de distribuição.
Pra brincar com o cérebro, e é sério: pra validar o XML também não precisa de um arquivo XML.
Isso acima é um XML. Não precisa existir "arquivo.xml".
Se for validar, valida-se o texto. (eu mesmo não uso validação, já que gerando pelo aplicativo, considera-se correto).
Acho que o pessoal ficou tão acostumado em usar arquivos temporários, XMLs em disco, configurar pastas e outras coisas mais, que a simplicidade desta classe confundiu.
Não é assim, é apenas pra efeito didático.
Imagine a comunicação com a Fazenda como algo assim:
O que altera entre cada coisa são os parâmetros e o xml.
Alterar de uma versão pra outra, é questão de atualizar esses parâmetros.
Por isso sempre insisti na classe, e por isso disse que não tem nada a ver com o projeto original.
Passaremos a conversar sobre quais os parâmetros corretos, e não sobre mudar fontes da classe.
O que cada método da classe faz é apenas colocar os parâmetros corretos no endereço.
Então é controle total, sem as complicações da hbnfe.
E se faltar alguma mordomia/facilidade, é só criar função, como fiz usando XmlNode().
Código: Selecionar todos
Scroll( 8, 0, MaxRow(), MaxCol(), 0 )
@ 8, 1 GET cChave PICTURE "@R 99-99/99-99.999.999/9999-99.99.999.999999999.9.99999999.9"
READ
IF LastKey() == K_ESC
EXIT
ENDIF
oSefaz := SefazClass():New()
oSefaz:NfeConsulta( cChave )
? oSefaz:cXmlSoap
? oSefaz:cXmlRetorno
Essa a é parte que mencionei que ganha-se controle total.
A parte que falei que perde-se mordomias, é até relativo.
Uma vez com o XML de retorno, verifica a informação direto no XML.
Considero vantagem o fato de estar mexendo diretamente com arquivos do projeto.
Não vai estar aprendendo detalhes de uma classe, e sim do projeto.
Uma opção pra analisar o retorno, usando função que está na classe, seria esta:
Código: Selecionar todos
IF XmlNode( oSefaz:cXmlRetorno, "status" ) != "101"
? "Nota não foi autorizada"
ENDIF
oSefaz:cRetorno é exatamente o XML retornado pela Sefaz, controle total
No projeto original da Sefaz não existe arquivo temporário, não existe arquivo "não temporário", o único arquivo é o XML final de distribuição.
Pra brincar com o cérebro, e é sério: pra validar o XML também não precisa de um arquivo XML.
Código: Selecionar todos
cXml := "<xml></xml>"
Se for validar, valida-se o texto. (eu mesmo não uso validação, já que gerando pelo aplicativo, considera-se correto).
Acho que o pessoal ficou tão acostumado em usar arquivos temporários, XMLs em disco, configurar pastas e outras coisas mais, que a simplicidade desta classe confundiu.
Não é assim, é apenas pra efeito didático.
Imagine a comunicação com a Fazenda como algo assim:
Código: Selecionar todos
cUrl := "http://www.fazenda.sp.gov.br/" + "emissaonfe/" + "entregaxml/" + cXml
cResposta := RepostaEndereco( cUrl )
Alterar de uma versão pra outra, é questão de atualizar esses parâmetros.
Por isso sempre insisti na classe, e por isso disse que não tem nada a ver com o projeto original.
Passaremos a conversar sobre quais os parâmetros corretos, e não sobre mudar fontes da classe.
O que cada método da classe faz é apenas colocar os parâmetros corretos no endereço.
Então é controle total, sem as complicações da hbnfe.
E se faltar alguma mordomia/facilidade, é só criar função, como fiz usando XmlNode().
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/
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/
