Clipper On Line • Ver Tópico - Rotina para acessar Portal da NFE
Mudar para estilo Clássico
Discussão sobre a biblioteca Fivewin - O Clipper para Windows.
Postar uma resposta

Rotina para acessar Portal da NFE

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.

Código:
///////////////////////////////////////////////////////////////////////////////   
/// 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.
///////////////////////////////////////////////////////////////////////////////   

Rotina para acessar Portal da NFE

07 Jul 2011 20:44

viewtopic.php?f=4&t=12126

Rotina para acessar Portal da NFE

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
Código:
///////////////////////////////////////////////////////////////////////////////   
/// 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.
///////////////////////////////////////////////////////////////////////////////   

Rotina para acessar Portal da NFE

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.

Rotina para acessar Portal da NFE

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?

Código:
   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.

Rotina para acessar Portal da NFE

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.
Código:
   
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

Rotina para acessar Portal da NFE

11 Fev 2014 10:46

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

Rotina para acessar Portal da NFE

12 Fev 2014 09:15

Resolvido, obrigado Rochinha.

Código:
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

Rotina para acessar Portal da NFE

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?

Rotina para acessar Portal da NFE

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.

Rotina para acessar Portal da NFE

13 Abr 2022 11:59

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

Obg. abs.

Regards, saludos.

Rotina para acessar Portal da NFE

13 Abr 2022 12:38

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.

Rotina para acessar Portal da NFE

13 Abr 2022 13:55

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.

Rotina para acessar Portal da NFE

13 Abr 2022 14:53

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.

Rotina para acessar Portal da NFE

13 Abr 2022 18:50

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 !
Postar uma resposta