Clipper On Line • Ver Tópico - Rotina para acessar Portal da NFE

Rotina para acessar Portal da NFE

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Rotina para acessar Portal da NFE

Mensagempor billy1943 » 30 Jun 2011 21:55

Oi, pessoal do FiveWin

O fonte abaixo exposto em FiveWin não é de minha autoria mas vejo-o como muito promissor se conseguirmos fazê-lo "rodar".

Eu trabalho com Clipper e esporadicamente com xHarbour e encontrei essa rotina num fórum de FiveWin.
Tentei fazer funcionar mas não consegui, pelo motivo de que existem funções não catalogadas no XHarbour e a sua supressão prejudicou o programa gerado, que não faz o acesso aos Portais Nacional e de SP, ou se o fazem não carregam a chave de 44 bytes, o que facilitaria sobremaneira a consulta das NFEs.

Agradeceria o empenho para funcionar essa rotina muito útil.

///////////////////////////////////////////////////////////////////////////////   
/// NFe_ChecaPortal - Função para checar o numero do Danfe nos portais Nacional ou Estado de São Paulo
/// Esta função faz com que abra as paginas dos portais de consulta das NFes e preencha os campos das chaves automaticamente.
/// Assim será necessario digitar somente o Capcha
///
/// Parametros: f_cChave > Numero da chave (Danfe) no formato caracter
/// f_nPortal > Portal a abrir - Formato Numérico
/// 1- Portal Nacional
/// 2- Portal do estado de São Paulo
FUNCTION NFe_ChecaPortal(f_cChave,f_nPortal)
local oOle, oOleDoc := Array(2)
Default f_nPortal := 1, f_cChave := ""

oOle:= CreateObject("InternetExplorer.Application")
oOle:Visible := .t. // Apresenta o Browser
oOle:ToolBar := .f. // Desativa a barra de ferramentas
oOle:StatusBar := .f. // Desativa a barra de status
oOle:MenuBar := .f. // desativa a barra de menu

If f_nPortal == 1
oOle:Navigate2("http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=")
Else
oOle:Navigate("http://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx") // Abre o site
EndIf

WHILE oOle:Busy
syswait(.5)
END

If f_nPortal == 1
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value := f_cChave
Else
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentMain$tbxIdNFe"):Value := f_cChave
EndIf

SysRefresh()
return .t.
///////////////////////////////////////////////////////////////////////////////   
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar de usuário

billy1943
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 574
Data de registro: 12 Mai 2009 17:33
Cidade/Estado: Bauru-SP
Curtiu: 1 vez
Mens.Curtidas: 18 vezes

Rotina para acessar Portal da NFE

Mensagempor sygecom » 07 Jul 2011 20:44

Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 6637
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 75 vezes

Rotina para acessar Portal da NFE

Mensagempor alaminojunior » 23 Jul 2011 11:57

É como o Leonardo citou no outro post: tirando as funções próprias do Fivewin, a coisa funciona numa boa, gostei.
Segue o código testado e 'fungado' com xHarbour 1.2.1 6733
///////////////////////////////////////////////////////////////////////////////   
/// NFe_ChecaPortal - Função para checar o numero do Danfe nos portais Nacional ou Estado de São Paulo
/// Esta função faz com que abra as paginas dos portais de consulta das NFes e preencha os campos das chaves automaticamente.
/// Assim será necessario digitar somente o Capcha
///
/// Parametros: f_cChave > Numero da chave (Danfe) no formato caracter
/// f_nPortal > Portal a abrir - Formato Numérico
/// 1- Portal Nacional
/// 2- Portal do estado de São Paulo

#command DEFAULT <param> := <val> [, <paramn> := <valn> ];
=> ;
         <param> := IIF(<param> = NIL, <val>, <param> ) ;
         [; <paramn> := IIF(<paramn> = NIL, <valn>, <paramn> ) ]

FUNCTION NFe_ChecaPortal(f_cChave,f_nPortal)
local oOle, oOleDoc := Array(2)
DEFAULT f_nPortal:= 1, f_cChave:= ""

oOle:= CreateObject("InternetExplorer.Application")
oOle:Visible := .t. // Apresenta o Browser
oOle:ToolBar := .f. // Desativa a barra de ferramentas
oOle:StatusBar := .f. // Desativa a barra de status
oOle:MenuBar := .f. // desativa a barra de menu

If f_nPortal == 1
   oOle:Navigate2("http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=")
Else
   oOle:Navigate("http://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx") // Abre o site
EndIf

WHILE oOle:Busy
   millisec(500)//syswait(.5)
END

If f_nPortal == 1
   oOle := oOle:Document()
   oOle:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value := f_cChave
Else
   oOle := oOle:Document()
   oOle:All:Item("ctl00$ContentMain$tbxIdNFe"):Value := f_cChave
EndIf

// SysRefresh()
return .t.
///////////////////////////////////////////////////////////////////////////////   
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1659
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 16 vezes
Mens.Curtidas: 9 vezes

Rotina para acessar Portal da NFE

Mensagempor Kapiaba » 30 Jan 2014 14:15

Galera ajuda ai,

Tem hora que esta função funciona, tem hora que não funciona, o que está errado, ou alguém tem uma função melhor para disparar direto com a CHAVE DA NF-e direto para o Portal da NF-e?

No Internet Explorer, é muito lento, alguém tem para Google Chrome?

Quando não funciona, me devolve este erro, como corrigir isto?

Descricao do Erro: ERROR INTERNETEXPLORER.APPLICATION/0 S_OK: DOCUMENT

Lista dos Erros
===============
Erro em: => TOLEAUTO:DOCUMENT(0)
Erro em: DBMANUT2.prg => NFE_CHECAPORTAL(1233)
Erro em: DBMANUT.prg => (b)MOSTRA_CHAVE_NFE(7167)

Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes

Rotina para acessar Portal da NFE

Mensagempor Kapiaba » 30 Jan 2014 14:57

Aprentemente, era só a URL que se cambió de HTTP para HTTPS

Mas mesmo assim, gostaria que ele "assumisse" o navegador padrão e não o internet explorer, é possivel?

   If f_nPortal == 1

      oOle:Navigate2("https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=")

   Else // Mudou para https

      oOle:Navigate("https://nfe.fazenda.sp.gov.br/ConsultaNFe/consulta/publica/ConsultarNFe.aspx") // Abre o site

   EndIf


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes

Rotina para acessar Portal da NFE

Mensagempor rochinha » 07 Fev 2014 00:03

Amiguinhos,

Ao invés de usar o comando que chama o internet explorer, não seria melhor embutir via activex a chamada ao motor de browser.
   
DEFINE WINDOW oChildWnd FROM 0,0 TO 600,800 PIXEL TITLE "Fazenda.GOV"
          oActiveX = TActiveX():New( oWnd, "Shell.Explorer.2" )
          oChildWnd:oClient = oActiveX
          oActiveX:Do( "Navigate2", "https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=" )
ACTIVATE WINDOW oChildWnd
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4207
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 495 vezes
Mens.Curtidas: 182 vezes

Rotina para acessar Portal da NFE

Mensagempor Kapiaba » 11 Fev 2014 10:46

Excelente idéia Rochinha, mas eu gostaria de já levar a chave junto, é possivel?
Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes

Rotina para acessar Portal da NFE

Mensagempor Kapiaba » 12 Fev 2014 09:15

Resolvido, obrigado Rochinha.

FUNCTION ConsultaXmlChave( cChave )

   LOCAL oChildWnd, oDlg

   MsgWait( "CONECTANDO AO PORTAL DA SEFAZ...", ;
            "AGUARDE UM MOMENTO POR FAVOR... ", 2.0 )

   /*
   DEFINE WINDOW oChildWnd FROM 0,0 TO 600,800 PIXEL TITLE "Consultar a NFe no Portal Nacional "

   oActiveX = TActiveX():New( oChildWnd, "Shell.Explorer.2" )

   oChildWnd:oClient = oActiveX

   oActiveX:Do( "Navigate2", "https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8="+cChave )

   ACTIVATE WINDOW oChildWnd
   */

   DEFINE DIALOG oDlg FROM 0, 0 TO 600, 900 PIXEL                            ;
          TITLE "Consultar a Chave da NF-e na Sefaz"                         ;
          COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   ACTIVATE DIALOG oDlg NOWAIT CENTERED

   oActiveX=TActiveX():New(oDlg,"Shell.Explorer.2",00,0,900,600)

   oActivex:Silent := .T.

   oActivex:Navigate2("https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=")

   oActivex:SetFocus()

   WHILE oActivex:Busy

      SysWait(.2)

   ENDDO

   oActiveXdo:=oActiveX:Document()

   oActiveXdo:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta",0):Value:=cChave

RETURN NIL
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes

Rotina para acessar Portal da NFE

Mensagempor fladimir » 31 Jan 2016 23:51

Kapiaba ou outro colega...

Pq não mais o TOleAuto? Vi q vc mudou para o TActivex(), pq? Eu inclusive abri um tópico sobre isto na seção Harbour, mas como vc escreveu aki q agora esta ok e comparando como era antes e como usa hj dá pra perceber as mudanças de classes ou não?
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”
.


DESKTOP CONSOLE Harbour | MinGW | DBF | CDX | FastReport | MySQL
DESKTOP VISUAL... Harbour | MinGW | Xailer | MariaDB Nativo | FastReport
MOBILE Android/IOS e WEB - Windev Mobile 22
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2354
Data de registro: 15 Nov 2006 19:21
Curtiu: 25 vezes
Mens.Curtidas: 135 vezes

Rotina para acessar Portal da NFE

Mensagempor Kapiaba » 01 Fev 2016 08:57

Bom dia Fladimir, eu uso o FWH13.06, e o ActiveX, está bem melhorado. Achei inclusive, mais seguro a navegação e com menos quebra de página. Faça um teste e veja se gosta. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes




Retornar para FiveWin

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
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro