Rotina para acessar Portal da NFE

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

Moderador: Moderadores

Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Rotina para acessar Portal da NFE

Mensagem por billy1943 »

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.

Código: Selecionar todos

///////////////////////////////////////////////////////////////////////////////   
/// 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 do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Rotina para acessar Portal da NFE

Mensagem por sygecom »

viewtopic.php?f=4&t=12126
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Rotina para acessar Portal da NFE

Mensagem por alaminojunior »

É 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

Código: Selecionar todos

///////////////////////////////////////////////////////////////////////////////   
/// 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
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

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: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

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?

Código: Selecionar todos

   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.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Rotina para acessar Portal da NFE

Mensagem por rochinha »

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.

Código: Selecionar todos

   
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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

Excelente idéia Rochinha, mas eu gostaria de já levar a chave junto, é possivel?
Obg. abs.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

Resolvido, obrigado Rochinha.

Código: Selecionar todos

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
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Rotina para acessar Portal da NFE

Mensagem por fladimir »

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”
.


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.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

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: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Rotina para acessar Portal da NFE

Mensagem por Kapiaba »

Bom dia. A SEFAZ mudou alguma coisa, simplesmente parou de funcionar.

Obg. abs.

Regards, saludos.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Rotina para acessar Portal da NFE

Mensagem por JoséQuintas »

Kapiaba escreveu:Bom dia. A SEFAZ mudou alguma coisa, simplesmente parou de funcionar.
Pela lei, o emitente é obrigado a transmitir os XMLs.
Por isso a Sefaz procura colocar restrições a qualquer coisa automática.
E não só nessa consulta, mas também no webservice de download, porque não é pra ficar baixando tudo.
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Rotina para acessar Portal da NFE

Mensagem por Itamar M. Lins Jr. »

Olá!
Vejo que o uso é bem limitado, quem não manda XML o pessoal baixa pelo navegador.
Precisa do certificado.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Rotina para acessar Portal da NFE

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Vejo que o uso é bem limitado, quem não manda XML o pessoal baixa pelo navegador.
Precisa do certificado.
Tem neguinho que vende programa pra baixar tudo que é nota da Fazenda.
E mesmo assim, nem sequer tomam cuidado pra não sobrecarregar webservice.
Por exemplo, na manifestação, a cada consulta trás TODAS as notas desde a primeira.
E por isso a Fazenda até retirou o webservice do ar, e depois retornou removendo essa opção.

Quando não havia impedimento na emissão, os neguinhos deixavam lá por meses tentando autorizar a mesma nota, em LOOP.

Quando liberei meu webservice de CEP, neguinho consultava CEP "ABX", "0", "003", "AAA", etc., 24 horas sem parar.

Não é fácil não.... acabam gerando a necessidade de limitações.
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
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Rotina para acessar Portal da NFE

Mensagem por alaminojunior »

Uma coisa que está sendo bastante discutida no momento são as rejeições por consumo indevido.

Em nossos clientes por exemplo oferecemos a opção de consultar as notas, mas deixamos muito bem claro que tal recurso é uma "gentileza" e não forma obrigatória de se baixar os documentos. Obrigação de enviar os XML´s é do fornecedor deles !
Mesmo assim vez ou outra um cliente desavisado e teimoso tenta me tirar do sério. Não discuto mais. Esfrego a última NT na cara do sujeito e deixo ele esbravejar com o contador dele.

Porque com o contador ?

Descobrimos que inúmeras contabilidades vêm instalando softwares que prometem baixar "todos" os documentos fiscais da empresa. O problema é que a cada consulta através destes softwares o último NSU é alterado (claro) deixando o nosso controle desta numeração, desatualizado. Quando tentamos fazer a consulta, vem a rejeição.
Isso é certo ! Não tem como a contabilidade fugir dizendo que não usa nada, pois usa sim.

Resumindo, não é possível dois softwares consultarem documentos fiscais !
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder