Jump to content
Fivewin Brasil

Consulta SINTEGRA pelo CNPJ


HERGON

Recommended Posts

Boa tarde

Sei que não é um assunto novo, mas os post's anteriores ficaram confusos e acabei me perdendo nas respostas.

Gostaria de saber se é possível buscar informações pelo site do SINTEGRA passando por parâmetro o CNPJ da empresa. Sei que tem um captcha na página e isso pode dificultar.

Se algum dos amigos conseguiu e puder disponibilizar, seria de grande ajuda, já que agora aqui em MG tem NFe sendo DENEGADA uma atrás da outra por conta do IE não habilitado. Seria legal consultar a situação cadastral do cliente antes de gerar uma NFe e ela ser denegada. :)

Att.

Herberson Gontijo

Ponteware Informática

Link to comment
Share on other sites

Theotokos, foi justamente o que o Herberson disse... O post do link que voce postou ficou confuso, pois ele veio da base de dados do outro forum e as respostas lá ficaram fora de ordem e totalmente confuso.

Acredito que a pergunta adequada é: Alguem aqui do forum tem algum esquema que digitando o CNPJ se traz os dados da empresa, buscando as informações do SINTEGRA? Se tem funciona legal isso? Tem custo? Tem o exemplo de codigo de como implementar?

Também estou interessado nisso.

abraços

Link to comment
Share on other sites

Veja se conseguem melhorar...


/*********************************************************
* Função : Classe para abrir uma página da net e pegar os dados
* Data : Por : Alain/Rancharia
* Revisado em : 25/07/2011 - 08:50:27 Por : Vagner Wirts
* Como Usar :

oSintegra := Sintegra():New(cUF) - Onde cUF = estado de consulta ex.: "SP"

aRetorno := oSintegra:Consulta()

If Len(aRetorno) > 0
MsgInfo("Consulta Executada com sucesso !","AVISO DE ALERTA")

MsgArray(aRetorno)

EndIf
Return Nil

* Comentário :

//"GO" - não consegui abrir na mesma dialog
//"MA" - Pega somente pela inscrição, ver como tratar
//"MG" - Pega Exige um terceiro link, ver como tratar
//"PA" - Pega somente pela inscrição, ver como tratar
//"RN" - Pega somente pela inscrição, ver como tratar
Ainda estão faltando alguns estados, pois não possuo informações para poder pegar o código fonte das páginas.
Quanto aos estados acima, estarei pesquisando para ver como pegar, mas os estados de MA,PA e RN, parecem fácil de recuperar, apesar de possuir um 3º ítem.

**********************************************************/
//----------------------------------------------------------------------------------------------------------------------//
#Include "Fivewin.ch"
#Include "\Trabalho\VLib\Chs\VLib.Ch"
//----------------------------------------------------------------------------------------------------------------------//

Function GetSintegra(cUF); Retu( Sintegra():New(cUF))

/*********************************************************
* Função : PegaSintegra() - Função para pegar os dados através de um html em disco
* Data : 26/07/2011 - 09:19:59 Por : Vagner
* Revisado em : 26/07/2011 - 09:20:02 Por : Vagner
* Parâmetros :
* cHtml - Arquivo Html
* Comentários :
* Entrar na página e copiar o código fonte da página
**********************************************************/
Function PegaSintegra(cHtml) ; Retu (MontaSintegra(cHtml))

//----------------------------------------------------------------------------------------------------------------------//
Class Sintegra
Data nTimeOut Init 240 // 4 minutos
Data lDownload, lError, cError
Data cRetorno
Data aGru1,aGru2
Data cUrl,cPost,cView

Method New(cUF) Constructor
Method Consulta( cCGCorIE )
Method DownloadComplete( oAct )
Method Clear() INLINE DelUrlCache({::cPost,::cView})
EndClass
//----------------------------------------------------------------------------------------------------------------------//

Method New(cUF) Class Sintegra
Local aUrls

Default cUF := "SP"

aUrls := PegaUrls(cUF)

If Len(aUrls) == 0
MsgStop("Não pude inicializar o Sintegra.","Estado "+cUF+" Inválido.")
Retu(.T.)
Endif

::cUrl := aUrls[1]
::cPost := ::cUrl+aUrls[2]
::cView := ::cUrl+aUrls[3]
::aGru1 := AClone(aUrls[4])
::aGru2 := AClone(aUrls[5])

Return Self

//----------------------------------------------------------------------------------------------------------------------//
Method Consulta() Class Sintegra
Local oDlg, oAct
Local nTimer
If IsInternet() == .F.
MsgStop("Sem conexão com a internet !")
Return {}
Else
::Clear()
EndIf
::cRetorno := ""
::lDownload := .F.
::lError := .F.

Define Dialog oDlg From 0,0 To 600,664 Pixel Title "[ SiNtEgRa - Fazendo Consulta ]" //Style WS_CAPTION
oDlg:lHelpIcon:=.F.
Activate Dialog oDlg NoWait Centered

oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,664,600)
oAct:bOnEvent := {|cEv|If(cEv=="DownloadComplete",::DownloadComplete( oAct ),Nil)}
oAct:Silent := .T.
oAct:Navigate( ::cPost )
oAct:SetFocus()
nTimer:=Seconds()

While !::lDownload
If !IsWindowVisible( oDlg:hWnd )
::lDownload := .T.
::lError := .T.
::cError := "Consulta Cancelada !"
ElseIf !IsInternet()
::lDownload := .T.
::lError := .T.
::cError := "Perda de conexao com a internet !"
ElseIf( Seconds()-nTimer ) >= ::nTimeOut
::lDownload := .T.
::lError := .T.
::cError := "Tempo limit esgotado !"
EndIf
SysRefresh()
End
Try
::cRetorno := oAct:Document:Body:InnerHtml
Catch oE
::lError := .T.
::cError := "Falha no recebimento dos dados!"
End
oDlg:End()
SysRefresh()
If ::lDownload .and. !::lError
Return MontaSintegra( ::cRetorno, ::aGru1,::aGru2)
Else
MsgStop(::cError,"Atenção")
EndIf
Return {}

//----------------------------------------------------------------------------------------------------------------------//
Method DownloadComplete( oAct ) Class Sintegra
Local cHTTP := oAct:LocationURL

LoGFile('Sintegra.Txt',{cHttp})

If ( ::cView == cHTTP )
If At("IDENTIFICA",oAct:Document:Body:InnerHtml) != 0
oAct:oWnd:Hide()
::lDownload := .T.
Endif
ElseIf At( "não+foi+encontrado", cHTTP ) > 0
::cError := "O CNPJ não foi encontrado na base do Sintegra."
::lError := .T.
::lDownload := .T.
ElseIf At( "incorreto", cHTTP ) > 0
::cError := "O CNPJ não é valido !"
::lError := .T.
::lDownload := .T.
EndIf
Return Nil

//----------------------------------------------------------------------------------------------------------------------//
EXIT PROCEDURE SAIR
PostQuitMessage( 0 )
__Quit()
Return Nil

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************
* Função : MontaSintegra() - Função para pegar as informações do html
* Data : Por : Alain/Rancharia
* Revisado em : 26/07/2011 - 07:50:27 Por : Vagner Wirts
* Parâmetros :
* cSintegra - Texto do html
* aGru1 - Array com início e fim do texto
* aGru2 - Array com as variáveis para retirar do texto
**********************************************************/
Static Function MontaSintegra( cSintegra ,aGru1,aGru2)
Local cLine, nLine, nTotal
Local aReto := {}
Local cTexto
Local nPos,nPo1

//Retira Comentários do html
Do Whil (nPos := At("<!--",cSintegra)) > 0
nPo1 := At("-->",cSintegra)
cTexto := SubStr(cSintegra,nPos,(nPo1-nPos)+3)
cSintegra := StrTran(cSintegra,cTexto,"")
Enddo

cSintegra := StrTran(cSintegra,"INFORMAÇÕES COMPLEMENTARES")
cSintegra := StrTran(cSintegra,"ENDEREÇO DA EMPRESA")

cSintegra := StripHTML( cSintegra )
cSintegra := GroupBy(aGru1[1],aGru1[2],cSintegra,.F.,.F.)
cSintegra := RemoveBlankLineNfe( cSintegra )

nTotal := MLCount( cSintegra)

MemoWrit("Teste.Txt",cSintegra)

For nLine := 1 To nTotal
cLine := Alltrim(MemoLine(cSintegra,,nLine))
If AsCan(aGru2,cLine) != 0
cTexto := Alltrim(MemoLine(cSintegra,,++nLine))
If AsCan(aGru2,cTexto) != 0
//Caso não haja a informação
cTexto := " "
--nLine
Endif
If cTexto == "Data da Concessão da Inscrição:"
//para o Caso do RJ
cTexto := " "
--nLine
Endif
If Left(cLine,10) == "Logradouro"
//No Logradouro separa o tipo do endereco
nPos := At(" ",cTexto)
cNew := AllTrim(Left(cTexto,nPos))
AaDd(aReto,cNew)
cTexto := AlLTrim(Right(cTexto,Len(cTexto)-nPos))
Endif
AaDd(aReto,RemoveChar(cTexto,{[.],[-],[/],[:]}))
Endif
Next nLine

Retu(aReto)

//----------------------------------------------------------------------------------------------------------------------//
Static Function StripHTML( cHtml )
Local cString:= RemoveChar( cHTML, {"&","amp;","nbsp;",'<!-- ',' -->','<--','-->','||','\/','<!--%','%-->',[/\]} )
Local aMatch := HB_RegExAll("\<[^\>]*\>", cString)

Aeval(aMatch,{|a|cString:=StrTran(cString,a[1])} )

Return cString

//----------------------------------------------------------------------------------------------------------------------//
Static Function DelUrlCache( aUrl )
Return AEval( aUrl, {|nX,nNum| DeleteUrlCacheEntry( aUrl[nNum] )} )

//----------------------------------------------------------------------------------------------------------------------//
Static Function DelFile( cFile )
If File(cFile); FErase(cFile); EndIf
Return Nil

//----------------------------------------------------------------------------------------------------------------------//
Static Function RemoveChar(cString,aChar)
Aeval(aChar,{|cChar|cString:=StrTran(cString,cChar)})
Return(cString)

//----------------------------------------------------------------------------------------------------------------------//
Static Function GroupBy( cStart, cEnd, cString, lTags, lBreak )
Local nBegin, nEnd
Local cFound, nAT
Default lTags:=.F., lBreak:=.F.

nBegin := At( cStart, cString )
If(nBegin == 0 ) ; Return "" ; EndIf

If(lTags == .F.) ; nBegin += Len(cStart) ; EndIf

If( cEnd != Nil )
nEnd := At( cEnd, cString, nBegin )
If nEnd == 0
Return ""
Else
nEnd := nEnd - nBegin
EndIf
If( lTags )
nEnd += Len( cEnd )
EndIf
Else
If lBreak
nAt := At(CRLF,Substr(cString,nBegin,Len(cString)))
If nAt > 0
nEnd := nAt - 1
If nEnd < Len(cString) ; nEnd := Len(cString)+1 ; Endif
Else
nEnd := Len( cString )
EndIf
Else
nEnd := Len( cString )
EndIf
EndIf

cFound := Substr( cString, nBegin, nEnd )
If lBreak
If lTags
cFound:=StrTran(cFound,CRLF)
Else
If cEnd != Nil
nAt := At(CRLF,cFound)
If nAt > 0
cFound := Left(cFound,nAT)
EndIf
Endif
EndIf
EndIf
Return cFound

//----------------------------------------------------------------------------------------------------------------------//
Static Function RemoveBlankLineNfe( cTexto )
Local cTextoNew:=""
Local nLines, cLine, nNum

nLines := MLCount( cTexto, 400)

For nNum := 0 To nLines
cLine := Alltrim(MemoLine( cTexto, 400, nNum ))
If !Empty(cLine)
If cLine == "function ocultarExibir(idDaTabela)"
nNum+=14
Loop
EndIf
if cLine<>"Ativo".and.cLine<>"Baixado".and.cLine<>"Inativo"
cTextoNew += cLine + If (nNum<nLines,CRLF,"")
endif
EndIf
Next nNum
Return cTextoNew

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************
* Função : PegaUrls() - Função para pegar as urls dos estados e também a configuração do itens para para localizar
* Data : 25/07/2011 - 11:42:49 Por : Vagner
* Revisado em : 25/07/2011 - 11:42:51 Por : Vagner
* Parâmetros :
* cUF - Unidade da Federação
* Comentários :
* Nem todos os campos do html são iguais então foi colocado em forma de array para melhor identificar
**********************************************************/
Static Func PegaUrls(cUF)
Local aRet := {}

If cUF == "AC"
ElseIf cUF == "AL"
ElseIf cUF == "AM"
ElseIf cUF == "AP"
ElseIf cUF == "BA"
aRet := {"http://www.sefaz.ba.gov.br/Sintegra/",;
"sintegra.asp?estado=BA",;
"Result.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "CE"
aRet := {"http://www.sefaz.ce.gov.br/content/aplicacao/internet/servicos_online/sintegra/",;
"sintegra.asp?estado=ce",;
"result.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE Fiscal Primário:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Recolhimento:" ;
} ;
}

ElseIf cUF == "DF"
ElseIf cUF == "ES"
aRet := {"http://www.sintegra.es.gov.br/",;
"",;
"resultado.php",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social :",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

ElseIf cUF == "FN"
ElseIf cUF == "GO"
aRet := {"http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/",;
"",;
"consulta.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CGC/CNPJ:",;
"Inscrição Estadual - CCE :",;
"Nome / Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/
//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/consulta.asp
ElseIf cUF == "MA"
aRet := {"http://www.sefaz.ma.gov.br/sintegra/",;
"sintegra.asp",;
"result.asp",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em"},;
{"CGC/CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE Principal:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}
//25/07/2011 16:47:39: http://www.sefaz.ma.gov.br/sintegra/sintegra.asp
//25/07/2011 16:48:16: http://www.sefaz.ma.gov.br/sintegra/result_lista_ruc.asp
//25/07/2011 16:49:36: http://www.sefaz.ma.gov.br/sintegra/result.asp?IE=12147386

ElseIf cUF == "MG"
aRet := {"http://www.sintegra.fazenda.mg.gov.br/",;
"consulta_empresa_pesquisa.asp",;
"consulta_empresa_principal.asp",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_pesquisa.asp
//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_inscricoes.asp
//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_principal.asp

ElseIf cUF == "MS"
aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;
"cadastromsCCI.asp",;
"ResultadoCCI.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial/Nome:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"AtividadeEconômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

ElseIf cUF == "MT"
ElseIf cUF == "PA"
aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;
"cadastromsCCI.asp",;
"ResultadoCCI.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}
//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do?id=152077090 //152077090=Inscrição estadual
//https://app.sefa.pa.gov.br/Sintegra/
//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do;jsessionid=fb69c7d0116ba787401876810876ed709ff929358f4cc50c9928e182e83f36c2.e3uKbhyPbhf0bhyNe0?id=152914692

ElseIf cUF == "PB"
ElseIf cUF == "PE"
ElseIf cUF == "PI"
ElseIf cUF == "PR"
aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;
"sintegra/",;
"sintegra/",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Nome Empresarial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica Principal:",;
"Situação Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "RJ"
aRet := {"http://www.fazenda.rj.gov.br/projetoCPS/",;
"consulta.jsp;jsessionid=RqRCTtJRZc6Tt0LhXgZnKh1jt8JQLx1Lk2J8HJ7xKqJpGvhQ0W4q!-1007206184",;
"cpsServlet",;
{"IDENTIFICAÇÃO","Data da Consulta:"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"AtividadeEconômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}
ElseIf cUF == "RN"
aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;
"sintegra/",;
"sintegra/",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"CNAE Fiscal Primário:",;
"Situação Cadastral Atual:",;
"Data da Situação Cadastral:",;
"Regime de Pagamento:" ;
} ;
}
//http://www.set.rn.gov.br/sintegra/default.asp
//http://www.set.rn.gov.br/sintegra/cnpj.asp?cnpj=03766900000132
//<td bgcolor="#FAFAE4" align="center" ><div align="left"><a href="result.asp?ie=085197"> Encontrar o IE
//http://www.set.rn.gov.br/sintegra/result.asp?ie=085197

ElseIf cUF == "RO"
aRet := {"http://portal.intranet.sefin.ro.gov.br/PortalContribuinte/",;
"parametropublica.jsp",;
"consultapublica.jsp",;
{"IDENTIFICA",Nil},;
{"C.P.F/C.N.P.J:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Endereço:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Regime de Pagamento:",;
"Situação Cadastral Vigente:",;
"Data:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "RR"
ElseIf cUF == "RS"
ElseIf cUF == "SC"
aRet := {"http://sistemas3.sef.sc.gov.br/sintegra/",;
"consulta_empresa_pesquisa.aspx",;
"consulta_empresa_pesquisa.aspx",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em informações"},;
{"CPF/CNPJ:",;
"Inscrição Estadual:",;
"Nome/Razão Estadual:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE-Fiscal Principal:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "SE"
ElseIf cUF == "SP"
aRet := {"http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/",;
"consultaSintegraServlet",;
"sintegra",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}
ElseIf cUF == "TO"
Endif
Retu(aRet)

//----------------------------------------------------------------------------------------------------------------------//
DLL Static Function DeleteUrlCacheEntry(lpszUrlName AS STRING) AS LONG PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"
//----------------------------------------------------------------------------------------------------------------------//

Link to comment
Share on other sites

consegui, muito boa.... já vamos implementar em nosso sistema administrativo interno... isso vai facilitar nossa vida para cadastrar clientes...

obrigado !

Maravilha, agora eu que peço para voce postar um exemplo de uso dela, pois não consegui fazer funcionar, mas acho que era porque a minha versão do five era muito velha, da época do Vagner Wirts.... kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Obg. Abs.

Link to comment
Share on other sites

#Include "Fivewin.ch"

Function Teste()

Local oSintegra := GetSintegra("SP")

aRet := oSintegra:Consulta( )

msgstop(sr_showvector(aRet))

Return

Function GetSintegra(cUF); Retu( Sintegra():New(cUF))

/*********************************************************

* Função : PegaSintegra() - Função para pegar os dados através de um html em disco

* Data : 26/07/2011 - 09:19:59 Por : Vagner

* Revisado em : 26/07/2011 - 09:20:02 Por : Vagner

* Parâmetros :

* cHtml - Arquivo Html

* Comentários :

* Entrar na página e copiar o código fonte da página

**********************************************************/

Function PegaSintegra(cHtml) ; Retu (MontaSintegra(cHtml))

//----------------------------------------------------------------------------------------------------------------------//

Class Sintegra

Data nTimeOut Init 240 // 4 minutos

Data lDownload, lError, cError

Data cRetorno

Data aGru1,aGru2

Data cUrl,cPost,cView

Method New(cUF) Constructor

Method Consulta( cCGCorIE )

Method DownloadComplete( oAct )

Method Clear() INLINE DelUrlCache({::cPost,::cView})

EndClass

//----------------------------------------------------------------------------------------------------------------------//

Method New(cUF) Class Sintegra

Local aUrls

Default cUF := "SP"

aUrls := PegaUrls(cUF)

If Len(aUrls) == 0

MsgStop("Não pude inicializar o Sintegra.","Estado "+cUF+" Inválido.")

Retu(.T.)

Endif

::cUrl := aUrls[1]

::cPost := ::cUrl+aUrls[2]

::cView := ::cUrl+aUrls[3]

::aGru1 := AClone(aUrls[4])

::aGru2 := AClone(aUrls[5])

Return Self

//----------------------------------------------------------------------------------------------------------------------//

Method Consulta() Class Sintegra

Local oDlg, oAct

Local nTimer

If IsInternet() == .F.

MsgStop("Sem conexão com a internet !")

Return {}

Else

::Clear()

EndIf

::cRetorno := ""

::lDownload := .F.

::lError := .F.

Define Dialog oDlg From 0,0 To 600,664 Pixel Title "[ SiNtEgRa - Fazendo Consulta ]" //Style WS_CAPTION

oDlg:lHelpIcon:=.F.

Activate Dialog oDlg NoWait Centered

oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,664,600)

oAct:bOnEvent := {|cEv|If(cEv=="DownloadComplete",::DownloadComplete( oAct ),Nil)}

oAct:Silent := .T.

oAct:Navigate( ::cPost )

oAct:SetFocus()

nTimer:=Seconds()

While !::lDownload

If !IsWindowVisible( oDlg:hWnd )

::lDownload := .T.

::lError := .T.

::cError := "Consulta Cancelada !"

ElseIf !IsInternet()

::lDownload := .T.

::lError := .T.

::cError := "Perda de conexao com a internet !"

ElseIf( Seconds()-nTimer ) >= ::nTimeOut

::lDownload := .T.

::lError := .T.

::cError := "Tempo limit esgotado !"

EndIf

SysRefresh()

End

Try

::cRetorno := oAct:Document:Body:InnerHtml

Catch oE

::lError := .T.

::cError := "Falha no recebimento dos dados!"

End

oDlg:End()

SysRefresh()

If ::lDownload .and. !::lError

Return MontaSintegra( ::cRetorno, ::aGru1,::aGru2)

Else

MsgStop(::cError,"Atenção")

EndIf

Return {}

//----------------------------------------------------------------------------------------------------------------------//

Method DownloadComplete( oAct ) Class Sintegra

Local cHTTP := oAct:LocationURL

LoGFile('Sintegra.Txt',{cHttp})

If ( ::cView == cHTTP )

If At("IDENTIFICA",oAct:Document:Body:InnerHtml) != 0

oAct:oWnd:Hide()

::lDownload := .T.

Endif

ElseIf At( "não+foi+encontrado", cHTTP ) > 0

::cError := "O CNPJ não foi encontrado na base do Sintegra."

::lError := .T.

::lDownload := .T.

ElseIf At( "incorreto", cHTTP ) > 0

::cError := "O CNPJ não é valido !"

::lError := .T.

::lDownload := .T.

EndIf

Return Nil

//----------------------------------------------------------------------------------------------------------------------//

EXIT PROCEDURE SAIR

PostQuitMessage( 0 )

__Quit()

Return Nil

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************

* Função : MontaSintegra() - Função para pegar as informações do html

* Data : Por : Alain/Rancharia

* Revisado em : 26/07/2011 - 07:50:27 Por : Vagner Wirts

* Parâmetros :

* cSintegra - Texto do html

* aGru1 - Array com início e fim do texto

* aGru2 - Array com as variáveis para retirar do texto

**********************************************************/

Static Function MontaSintegra( cSintegra ,aGru1,aGru2)

Local cLine, nLine, nTotal

Local aReto := {}

Local cTexto

Local nPos,nPo1

//Retira Comentários do html

Do Whil (nPos := At("<!--",cSintegra)) > 0

nPo1 := At("-->",cSintegra)

cTexto := SubStr(cSintegra,nPos,(nPo1-nPos)+3)

cSintegra := StrTran(cSintegra,cTexto,"")

Enddo

cSintegra := StrTran(cSintegra,"INFORMAÇÕES COMPLEMENTARES")

cSintegra := StrTran(cSintegra,"ENDEREÇO DA EMPRESA")

cSintegra := StripHTML( cSintegra )

cSintegra := GroupBy(aGru1[1],aGru1[2],cSintegra,.F.,.F.)

cSintegra := RemoveBlankLineNfe( cSintegra )

nTotal := MLCount( cSintegra)

MemoWrit("Teste.Txt",cSintegra)

For nLine := 1 To nTotal

cLine := Alltrim(MemoLine(cSintegra,,nLine))

If AsCan(aGru2,cLine) != 0

cTexto := Alltrim(MemoLine(cSintegra,,++nLine))

If AsCan(aGru2,cTexto) != 0

//Caso não haja a informação

cTexto := " "

--nLine

Endif

If cTexto == "Data da Concessão da Inscrição:"

//para o Caso do RJ

cTexto := " "

--nLine

Endif

If Left(cLine,10) == "Logradouro"

//No Logradouro separa o tipo do endereco

nPos := At(" ",cTexto)

cNew := AllTrim(Left(cTexto,nPos))

AaDd(aReto,cNew)

cTexto := AlLTrim(Right(cTexto,Len(cTexto)-nPos))

Endif

AaDd(aReto,RemoveChar(cTexto,{[.],[-],[/],[:]}))

Endif

Next nLine

Retu(aReto)

//----------------------------------------------------------------------------------------------------------------------//

Static Function StripHTML( cHtml )

Local cString:= RemoveChar( cHTML, {"&","amp;","nbsp;",'<!-- ',' -->','<--','-->','||','\/','<!--%','%-->',[/\]} )

Local aMatch := HB_RegExAll("\<[^\>]*\>", cString)

Aeval(aMatch,{|a|cString:=StrTran(cString,a[1])} )

Return cString

//----------------------------------------------------------------------------------------------------------------------//

Static Function DelUrlCache( aUrl )

Return AEval( aUrl, {|nX,nNum| DeleteUrlCacheEntry( aUrl[nNum] )} )

//----------------------------------------------------------------------------------------------------------------------//

Static Function DelFile( cFile )

If File(cFile); FErase(cFile); EndIf

Return Nil

//----------------------------------------------------------------------------------------------------------------------//

Static Function RemoveChar(cString,aChar)

Aeval(aChar,{|cChar|cString:=StrTran(cString,cChar)})

Return(cString)

//----------------------------------------------------------------------------------------------------------------------//

Static Function GroupBy( cStart, cEnd, cString, lTags, lBreak )

Local nBegin, nEnd

Local cFound, nAT

Default lTags:=.F., lBreak:=.F.

nBegin := At( cStart, cString )

If(nBegin == 0 ) ; Return "" ; EndIf

If(lTags == .F.) ; nBegin += Len(cStart) ; EndIf

If( cEnd != Nil )

nEnd := At( cEnd, cString, nBegin )

If nEnd == 0

Return ""

Else

nEnd := nEnd - nBegin

EndIf

If( lTags )

nEnd += Len( cEnd )

EndIf

Else

If lBreak

nAt := At(CRLF,Substr(cString,nBegin,Len(cString)))

If nAt > 0

nEnd := nAt - 1

If nEnd < Len(cString) ; nEnd := Len(cString)+1 ; Endif

Else

nEnd := Len( cString )

EndIf

Else

nEnd := Len( cString )

EndIf

EndIf

cFound := Substr( cString, nBegin, nEnd )

If lBreak

If lTags

cFound:=StrTran(cFound,CRLF)

Else

If cEnd != Nil

nAt := At(CRLF,cFound)

If nAt > 0

cFound := Left(cFound,nAT)

EndIf

Endif

EndIf

EndIf

Return cFound

//----------------------------------------------------------------------------------------------------------------------//

Static Function RemoveBlankLineNfe( cTexto )

Local cTextoNew:=""

Local nLines, cLine, nNum

nLines := MLCount( cTexto, 400)

For nNum := 0 To nLines

cLine := Alltrim(MemoLine( cTexto, 400, nNum ))

If !Empty(cLine)

If cLine == "function ocultarExibir(idDaTabela)"

nNum+=14

Loop

EndIf

if cLine<>"Ativo".and.cLine<>"Baixado".and.cLine<>"Inativo"

cTextoNew += cLine + If (nNum<nLines,CRLF,"")

endif

EndIf

Next nNum

Return cTextoNew

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************

* Função : PegaUrls() - Função para pegar as urls dos estados e também a configuração do itens para para localizar

* Data : 25/07/2011 - 11:42:49 Por : Vagner

* Revisado em : 25/07/2011 - 11:42:51 Por : Vagner

* Parâmetros :

* cUF - Unidade da Federação

* Comentários :

* Nem todos os campos do html são iguais então foi colocado em forma de array para melhor identificar

**********************************************************/

Static Func PegaUrls(cUF)

Local aRet := {}

If cUF == "AC"

ElseIf cUF == "AL"

ElseIf cUF == "AM"

ElseIf cUF == "AP"

ElseIf cUF == "BA"

aRet := {"http://www.sefaz.ba.gov.br/Sintegra/",;

"sintegra.asp?estado=BA",;

"Result.asp",;

{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Atual:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração de ICMS:" ;

} ;

}

ElseIf cUF == "CE"

aRet := {"http://www.sefaz.ce.gov.br/content/aplicacao/internet/servicos_online/sintegra/",;

"sintegra.asp?estado=ce",;

"result.asp",;

{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"RazãoSocial:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"CNAE Fiscal Primário:",;

"Situação Cadastral Vigente:",;

"Data da Situação Cadastral:",;

"Regime de Recolhimento:" ;

} ;

}

ElseIf cUF == "DF"

ElseIf cUF == "ES"

aRet := {"http://www.sintegra.es.gov.br/",;

"",;

"resultado.php",;

{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social :",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Vigente:",;

"Data da Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

ElseIf cUF == "FN"

ElseIf cUF == "GO"

aRet := {"http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/",;

"",;

"consulta.asp",;

{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;

{"CGC/CNPJ:",;

"Inscrição Estadual - CCE :",;

"Nome / Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Vigente:",;

"Data da Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/

//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/consulta.asp

ElseIf cUF == "MA"

aRet := {"http://www.sefaz.ma.gov.br/sintegra/",;

"sintegra.asp",;

"result.asp",;

{"IDENTIFICAÇÃO","Os dados acima estão baseados em"},;

{"CGC/CNPJ:",;

"Inscrição Estadual:",;

"RazãoSocial:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"CNAE Principal:",;

"Situação Cadastral Vigente:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

//25/07/2011 16:47:39: http://www.sefaz.ma.gov.br/sintegra/sintegra.asp

//25/07/2011 16:48:16: http://www.sefaz.ma.gov.br/sintegra/result_lista_ruc.asp

//25/07/2011 16:49:36: http://www.sefaz.ma.gov.br/sintegra/result.asp?IE=12147386

ElseIf cUF == "MG"

aRet := {"http://www.sintegra.fazenda.mg.gov.br/",;

"consulta_empresa_pesquisa.asp",;

"consulta_empresa_principal.asp",;

{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Vigente:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_pesquisa.asp

//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_inscricoes.asp

//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_principal.asp

ElseIf cUF == "MS"

aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;

"cadastromsCCI.asp",;

"ResultadoCCI.asp",;

{"IDENTIFICAÇÃO","Os dados acima são baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"RazãoSocial/Nome:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"AtividadeEconômica:",;

"Situação Cadastral Vigente:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

ElseIf cUF == "MT"

ElseIf cUF == "PA"

aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;

"cadastromsCCI.asp",;

"ResultadoCCI.asp",;

{"IDENTIFICAÇÃO","Os dados acima são baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Atual:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração de ICMS:" ;

} ;

}

//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do?id=152077090 //152077090=Inscrição estadual

//https://app.sefa.pa.gov.br/Sintegra/

//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do;jsessionid=fb69c7d0116ba787401876810876ed709ff929358f4cc50c9928e182e83f36c2.e3uKbhyPbhf0bhyNe0?id=152914692

ElseIf cUF == "PB"

ElseIf cUF == "PE"

ElseIf cUF == "PI"

ElseIf cUF == "PR"

aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;

"sintegra/",;

"sintegra/",;

{"IDENTIFICAÇÃO","Os dados acima são baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Nome Empresarial:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica Principal:",;

"Situação Atual:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração de ICMS:" ;

} ;

}

ElseIf cUF == "RJ"

aRet := {"http://www.fazenda.rj.gov.br/projetoCPS/",;

"consulta.jsp;jsessionid=RqRCTtJRZc6Tt0LhXgZnKh1jt8JQLx1Lk2J8HJ7xKqJpGvhQ0W4q!-1007206184",;

"cpsServlet",;

{"IDENTIFICAÇÃO","Data da Consulta:"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"RazãoSocial:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"AtividadeEconômica:",;

"Situação Cadastral Vigente:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração de ICMS:" ;

} ;

}

ElseIf cUF == "RN"

aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;

"sintegra/",;

"sintegra/",;

{"IDENTIFICAÇÃO","Os dados acima são baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"CNAE Fiscal Primário:",;

"Situação Cadastral Atual:",;

"Data da Situação Cadastral:",;

"Regime de Pagamento:" ;

} ;

}

//http://www.set.rn.gov.br/sintegra/default.asp

//http://www.set.rn.gov.br/sintegra/cnpj.asp?cnpj=03766900000132

//<td bgcolor="#FAFAE4" align="center" ><div align="left"><a href="result.asp?ie=085197"> Encontrar o IE

//http://www.set.rn.gov.br/sintegra/result.asp?ie=085197

ElseIf cUF == "RO"

aRet := {"http://portal.intranet.sefin.ro.gov.br/PortalContribuinte/",;

"parametropublica.jsp",;

"consultapublica.jsp",;

{"IDENTIFICA",Nil},;

{"C.P.F/C.N.P.J:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Endereço:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"Regime de Pagamento:",;

"Situação Cadastral Vigente:",;

"Data:",;

"Regime de Apuração de ICMS:" ;

} ;

}

ElseIf cUF == "RR"

ElseIf cUF == "RS"

ElseIf cUF == "SC"

aRet := {"http://sistemas3.sef.sc.gov.br/sintegra/",;

"consulta_empresa_pesquisa.aspx",;

"consulta_empresa_pesquisa.aspx",;

{"IDENTIFICAÇÃO","Os dados acima estão baseados em informações"},;

{"CPF/CNPJ:",;

"Inscrição Estadual:",;

"Nome/Razão Estadual:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"UF:",;

"Município:",;

"CEP:",;

"Telefone:",;

"CNAE-Fiscal Principal:",;

"Situação Cadastral Atual:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração de ICMS:" ;

} ;

}

ElseIf cUF == "SE"

ElseIf cUF == "SP"

aRet := {"http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/",;

"consultaSintegraServlet",;

"sintegra",;

{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;

{"CNPJ:",;

"Inscrição Estadual:",;

"Razão Social:",;

"Logradouro:",;

"Número:",;

"Complemento:",;

"Bairro:",;

"Município:",;

"UF:",;

"CEP:",;

"Telefone:",;

"Atividade Econômica:",;

"Situação Cadastral Vigente:",;

"Data desta Situação Cadastral:",;

"Regime de Apuração:" ;

} ;

}

ElseIf cUF == "TO"

Endif

Retu(aRet)

STATIC Function DeleteUrlCacheEntry()

Return nil

//----------------------------------------------------------------------------------------------------------------------//

//DLL Static Function DeleteUrlCacheEntry(lpszUrlName AS STRING) AS LONG PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

Link to comment
Share on other sites

[/code]

#Include "Fivewin.ch"

Function Teste()
Local oSintegra := GetSintegra("SP")
aRet := oSintegra:Consulta( )
msgstop(sr_showvector(aRet))

Return

Function GetSintegra(cUF); Retu( Sintegra():New(cUF))

/*********************************************************
* Função : PegaSintegra() - Função para pegar os dados através de um html em disco
* Data : 26/07/2011 - 09:19:59 Por : Vagner
* Revisado em : 26/07/2011 - 09:20:02 Por : Vagner
* Parâmetros :
* cHtml - Arquivo Html
* Comentários :
* Entrar na página e copiar o código fonte da página
**********************************************************/
Function PegaSintegra(cHtml) ; Retu (MontaSintegra(cHtml))

//----------------------------------------------------------------------------------------------------------------------//
Class Sintegra
Data nTimeOut Init 240 // 4 minutos
Data lDownload, lError, cError
Data cRetorno
Data aGru1,aGru2
Data cUrl,cPost,cView

Method New(cUF) Constructor
Method Consulta( cCGCorIE )
Method DownloadComplete( oAct )
Method Clear() INLINE DelUrlCache({::cPost,::cView})
EndClass
//----------------------------------------------------------------------------------------------------------------------//

Method New(cUF) Class Sintegra
Local aUrls

Default cUF := "SP"

aUrls := PegaUrls(cUF)

If Len(aUrls) == 0
MsgStop("Não pude inicializar o Sintegra.","Estado "+cUF+" Inválido.")
Retu(.T.)
Endif

::cUrl := aUrls[1]
::cPost := ::cUrl+aUrls[2]
::cView := ::cUrl+aUrls[3]
::aGru1 := AClone(aUrls[4])
::aGru2 := AClone(aUrls[5])

Return Self

//----------------------------------------------------------------------------------------------------------------------//
Method Consulta() Class Sintegra
Local oDlg, oAct
Local nTimer
If IsInternet() == .F.
MsgStop("Sem conexão com a internet !")
Return {}
Else
::Clear()
EndIf
::cRetorno := ""
::lDownload := .F.
::lError := .F.

Define Dialog oDlg From 0,0 To 600,664 Pixel Title "[ SiNtEgRa - Fazendo Consulta ]" //Style WS_CAPTION
oDlg:lHelpIcon:=.F.
Activate Dialog oDlg NoWait Centered

oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,664,600)
oAct:bOnEvent := {|cEv|If(cEv=="DownloadComplete",::DownloadComplete( oAct ),Nil)}
oAct:Silent := .T.
oAct:Navigate( ::cPost )
oAct:SetFocus()
nTimer:=Seconds()

While !::lDownload
If !IsWindowVisible( oDlg:hWnd )
::lDownload := .T.
::lError := .T.
::cError := "Consulta Cancelada !"
ElseIf !IsInternet()
::lDownload := .T.
::lError := .T.
::cError := "Perda de conexao com a internet !"
ElseIf( Seconds()-nTimer ) >= ::nTimeOut
::lDownload := .T.
::lError := .T.
::cError := "Tempo limit esgotado !"
EndIf
SysRefresh()
End
Try
::cRetorno := oAct:Document:Body:InnerHtml
Catch oE
::lError := .T.
::cError := "Falha no recebimento dos dados!"
End
oDlg:End()
SysRefresh()
If ::lDownload .and. !::lError
Return MontaSintegra( ::cRetorno, ::aGru1,::aGru2)
Else
MsgStop(::cError,"Atenção")
EndIf
Return {}

//----------------------------------------------------------------------------------------------------------------------//
Method DownloadComplete( oAct ) Class Sintegra
Local cHTTP := oAct:LocationURL

LoGFile('Sintegra.Txt',{cHttp})

If ( ::cView == cHTTP )
If At("IDENTIFICA",oAct:Document:Body:InnerHtml) != 0
oAct:oWnd:Hide()
::lDownload := .T.
Endif
ElseIf At( "não+foi+encontrado", cHTTP ) > 0
::cError := "O CNPJ não foi encontrado na base do Sintegra."
::lError := .T.
::lDownload := .T.
ElseIf At( "incorreto", cHTTP ) > 0
::cError := "O CNPJ não é valido !"
::lError := .T.
::lDownload := .T.
EndIf
Return Nil

//----------------------------------------------------------------------------------------------------------------------//
EXIT PROCEDURE SAIR
PostQuitMessage( 0 )
__Quit()
Return Nil

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************
* Função : MontaSintegra() - Função para pegar as informações do html
* Data : Por : Alain/Rancharia
* Revisado em : 26/07/2011 - 07:50:27 Por : Vagner Wirts
* Parâmetros :
* cSintegra - Texto do html
* aGru1 - Array com início e fim do texto
* aGru2 - Array com as variáveis para retirar do texto
**********************************************************/
Static Function MontaSintegra( cSintegra ,aGru1,aGru2)
Local cLine, nLine, nTotal
Local aReto := {}
Local cTexto
Local nPos,nPo1

//Retira Comentários do html
Do Whil (nPos := At("<!--",cSintegra)) > 0
nPo1 := At("-->",cSintegra)
cTexto := SubStr(cSintegra,nPos,(nPo1-nPos)+3)
cSintegra := StrTran(cSintegra,cTexto,"")
Enddo

cSintegra := StrTran(cSintegra,"INFORMAÇÕES COMPLEMENTARES")
cSintegra := StrTran(cSintegra,"ENDEREÇO DA EMPRESA")

cSintegra := StripHTML( cSintegra )
cSintegra := GroupBy(aGru1[1],aGru1[2],cSintegra,.F.,.F.)
cSintegra := RemoveBlankLineNfe( cSintegra )

nTotal := MLCount( cSintegra)

MemoWrit("Teste.Txt",cSintegra)

For nLine := 1 To nTotal
cLine := Alltrim(MemoLine(cSintegra,,nLine))
If AsCan(aGru2,cLine) != 0
cTexto := Alltrim(MemoLine(cSintegra,,++nLine))
If AsCan(aGru2,cTexto) != 0
//Caso não haja a informação
cTexto := " "
--nLine
Endif
If cTexto == "Data da Concessão da Inscrição:"
//para o Caso do RJ
cTexto := " "
--nLine
Endif
If Left(cLine,10) == "Logradouro"
//No Logradouro separa o tipo do endereco
nPos := At(" ",cTexto)
cNew := AllTrim(Left(cTexto,nPos))
AaDd(aReto,cNew)
cTexto := AlLTrim(Right(cTexto,Len(cTexto)-nPos))
Endif
AaDd(aReto,RemoveChar(cTexto,{[.],[-],[/],[:]}))
Endif
Next nLine

Retu(aReto)

//----------------------------------------------------------------------------------------------------------------------//
Static Function StripHTML( cHtml )
Local cString:= RemoveChar( cHTML, {"&","amp;","nbsp;",'<!-- ',' -->','<--','-->','||','\/','<!--%','%-->',[/\]} )
Local aMatch := HB_RegExAll("\<[^\>]*\>", cString)

Aeval(aMatch,{|a|cString:=StrTran(cString,a[1])} )

Return cString

//----------------------------------------------------------------------------------------------------------------------//
Static Function DelUrlCache( aUrl )
Return AEval( aUrl, {|nX,nNum| DeleteUrlCacheEntry( aUrl[nNum] )} )

//----------------------------------------------------------------------------------------------------------------------//
Static Function DelFile( cFile )
If File(cFile); FErase(cFile); EndIf
Return Nil

//----------------------------------------------------------------------------------------------------------------------//
Static Function RemoveChar(cString,aChar)
Aeval(aChar,{|cChar|cString:=StrTran(cString,cChar)})
Return(cString)

//----------------------------------------------------------------------------------------------------------------------//
Static Function GroupBy( cStart, cEnd, cString, lTags, lBreak )
Local nBegin, nEnd
Local cFound, nAT
Default lTags:=.F., lBreak:=.F.

nBegin := At( cStart, cString )
If(nBegin == 0 ) ; Return "" ; EndIf

If(lTags == .F.) ; nBegin += Len(cStart) ; EndIf

If( cEnd != Nil )
nEnd := At( cEnd, cString, nBegin )
If nEnd == 0
Return ""
Else
nEnd := nEnd - nBegin
EndIf
If( lTags )
nEnd += Len( cEnd )
EndIf
Else
If lBreak
nAt := At(CRLF,Substr(cString,nBegin,Len(cString)))
If nAt > 0
nEnd := nAt - 1
If nEnd < Len(cString) ; nEnd := Len(cString)+1 ; Endif
Else
nEnd := Len( cString )
EndIf
Else
nEnd := Len( cString )
EndIf
EndIf

cFound := Substr( cString, nBegin, nEnd )
If lBreak
If lTags
cFound:=StrTran(cFound,CRLF)
Else
If cEnd != Nil
nAt := At(CRLF,cFound)
If nAt > 0
cFound := Left(cFound,nAT)
EndIf
Endif
EndIf
EndIf
Return cFound

//----------------------------------------------------------------------------------------------------------------------//
Static Function RemoveBlankLineNfe( cTexto )
Local cTextoNew:=""
Local nLines, cLine, nNum

nLines := MLCount( cTexto, 400)

For nNum := 0 To nLines
cLine := Alltrim(MemoLine( cTexto, 400, nNum ))
If !Empty(cLine)
If cLine == "function ocultarExibir(idDaTabela)"
nNum+=14
Loop
EndIf
if cLine<>"Ativo".and.cLine<>"Baixado".and.cLine<>"Inativo"
cTextoNew += cLine + If (nNum<nLines,CRLF,"")
endif
EndIf
Next nNum
Return cTextoNew

//----------------------------------------------------------------------------------------------------------------------//

/*********************************************************
* Função : PegaUrls() - Função para pegar as urls dos estados e também a configuração do itens para para localizar
* Data : 25/07/2011 - 11:42:49 Por : Vagner
* Revisado em : 25/07/2011 - 11:42:51 Por : Vagner
* Parâmetros :
* cUF - Unidade da Federação
* Comentários :
* Nem todos os campos do html são iguais então foi colocado em forma de array para melhor identificar
**********************************************************/
Static Func PegaUrls(cUF)
Local aRet := {}

If cUF == "AC"
ElseIf cUF == "AL"
ElseIf cUF == "AM"
ElseIf cUF == "AP"
ElseIf cUF == "BA"
aRet := {"http://www.sefaz.ba.gov.br/Sintegra/",;
"sintegra.asp?estado=BA",;
"Result.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "CE"
aRet := {"http://www.sefaz.ce.gov.br/content/aplicacao/internet/servicos_online/sintegra/",;
"sintegra.asp?estado=ce",;
"result.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE Fiscal Primário:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Recolhimento:" ;
} ;
}

ElseIf cUF == "DF"
ElseIf cUF == "ES"
aRet := {"http://www.sintegra.es.gov.br/",;
"",;
"resultado.php",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social :",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

ElseIf cUF == "FN"
ElseIf cUF == "GO"
aRet := {"http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/",;
"",;
"consulta.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
{"CGC/CNPJ:",;
"Inscrição Estadual - CCE :",;
"Nome / Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data da Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/
//http://www.sefaz.go.gov.br/sintegra/ConsultaCadastro/consulta.asp
ElseIf cUF == "MA"
aRet := {"http://www.sefaz.ma.gov.br/sintegra/",;
"sintegra.asp",;
"result.asp",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em"},;
{"CGC/CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE Principal:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}
//25/07/2011 16:47:39: http://www.sefaz.ma.gov.br/sintegra/sintegra.asp
//25/07/2011 16:48:16: http://www.sefaz.ma.gov.br/sintegra/result_lista_ruc.asp
//25/07/2011 16:49:36: http://www.sefaz.ma.gov.br/sintegra/result.asp?IE=12147386

ElseIf cUF == "MG"
aRet := {"http://www.sintegra.fazenda.mg.gov.br/",;
"consulta_empresa_pesquisa.asp",;
"consulta_empresa_principal.asp",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_pesquisa.asp
//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_inscricoes.asp
//http://www.sintegra.fazenda.mg.gov.br/consulta_empresa_principal.asp

ElseIf cUF == "MS"
aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;
"cadastromsCCI.asp",;
"ResultadoCCI.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial/Nome:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"AtividadeEconômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}

ElseIf cUF == "MT"
ElseIf cUF == "PA"
aRet := {"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/",;
"cadastromsCCI.asp",;
"ResultadoCCI.asp",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}
//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do?id=152077090 //152077090=Inscrição estadual
//https://app.sefa.pa.gov.br/Sintegra/
//https://app.sefa.pa.gov.br/Sintegra/detalharEstabelecimento.do;jsessionid=fb69c7d0116ba787401876810876ed709ff929358f4cc50c9928e182e83f36c2.e3uKbhyPbhf0bhyNe0?id=152914692

ElseIf cUF == "PB"
ElseIf cUF == "PE"
ElseIf cUF == "PI"
ElseIf cUF == "PR"
aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;
"sintegra/",;
"sintegra/",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Nome Empresarial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica Principal:",;
"Situação Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "RJ"
aRet := {"http://www.fazenda.rj.gov.br/projetoCPS/",;
"consulta.jsp;jsessionid=RqRCTtJRZc6Tt0LhXgZnKh1jt8JQLx1Lk2J8HJ7xKqJpGvhQ0W4q!-1007206184",;
"cpsServlet",;
{"IDENTIFICAÇÃO","Data da Consulta:"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"RazãoSocial:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"AtividadeEconômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}
ElseIf cUF == "RN"
aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;
"sintegra/",;
"sintegra/",;
{"IDENTIFICAÇÃO","Os dados acima são baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"CNAE Fiscal Primário:",;
"Situação Cadastral Atual:",;
"Data da Situação Cadastral:",;
"Regime de Pagamento:" ;
} ;
}
//http://www.set.rn.gov.br/sintegra/default.asp
//http://www.set.rn.gov.br/sintegra/cnpj.asp?cnpj=03766900000132
//<td bgcolor="#FAFAE4" align="center" ><div align="left"><a href="result.asp?ie=085197"> Encontrar o IE
//http://www.set.rn.gov.br/sintegra/result.asp?ie=085197

ElseIf cUF == "RO"
aRet := {"http://portal.intranet.sefin.ro.gov.br/PortalContribuinte/",;
"parametropublica.jsp",;
"consultapublica.jsp",;
{"IDENTIFICA",Nil},;
{"C.P.F/C.N.P.J:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Endereço:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Regime de Pagamento:",;
"Situação Cadastral Vigente:",;
"Data:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "RR"
ElseIf cUF == "RS"
ElseIf cUF == "SC"
aRet := {"http://sistemas3.sef.sc.gov.br/sintegra/",;
"consulta_empresa_pesquisa.aspx",;
"consulta_empresa_pesquisa.aspx",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em informações"},;
{"CPF/CNPJ:",;
"Inscrição Estadual:",;
"Nome/Razão Estadual:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"UF:",;
"Município:",;
"CEP:",;
"Telefone:",;
"CNAE-Fiscal Principal:",;
"Situação Cadastral Atual:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração de ICMS:" ;
} ;
}

ElseIf cUF == "SE"
ElseIf cUF == "SP"
aRet := {"http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/",;
"consultaSintegraServlet",;
"sintegra",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"Razão Social:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Bairro:",;
"Município:",;
"UF:",;
"CEP:",;
"Telefone:",;
"Atividade Econômica:",;
"Situação Cadastral Vigente:",;
"Data desta Situação Cadastral:",;
"Regime de Apuração:" ;
} ;
}
ElseIf cUF == "TO"
Endif
Retu(aRet)

STATIC Function DeleteUrlCacheEntry()
Return nil

//----------------------------------------------------------------------------------------------------------------------//
//DLL Static Function DeleteUrlCacheEntry(lpszUrlName AS STRING) AS LONG PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

[/code/]

Link to comment
Share on other sites

Boa tarde Eduardo

Consegui consultar CNPJ de SP e pegar os dados, mas quando tento para MG (que é o que mais me interessa) não abre a página diretamente, mas tudo bem, na página que abre eu clico no link SINTEGRA, abre a página oficial do SINTEGRA, clico no estado MG, e na nova página que abre entro com o CNPJ e CAPTCHA e aparecem os dados. O problema é que estes dados não retornam para o sistema, teria como você testar se ai acontece da mesma forma?

PS: no comando abaixo não tenho sr_showvector() teria como postar a função?

msgstop(sr_showvector(aRet))

Herberson Gontijo

Ponteware Informática Ltda.

Link to comment
Share on other sites

Boa tarde Eduardo

Consegui consultar CNPJ de SP e pegar os dados, mas quando tento para MG (que é o que mais me interessa) não abre a página diretamente, mas tudo bem, na página que abre eu clico no link SINTEGRA, abre a página oficial do SINTEGRA, clico no estado MG, e na nova página que abre entro com o CNPJ e CAPTCHA e aparecem os dados. O problema é que estes dados não retornam para o sistema, teria como você testar se ai acontece da mesma forma?

PS: no comando abaixo não tenho sr_showvector() teria como postar a função?

msgstop(sr_showvector(aRet))

Herberson Gontijo

Ponteware Informática Ltda.

eu também tentei para MG, no meu caso nem abre a página...

Link to comment
Share on other sites

Olá,

Houveram mudanças nos links, precisam ser atualizados, o de minas é :

http://consultasintegra.fazenda.mg.gov.br/sintegra/

"http://sefaznet.ac.gov.br/sefazonline/servlet/hpfsincon" >Acre<
"http://www.sefaz.al.gov.br/asp/sintegra/sintegra.asp?estado=AL" >Alagoas<
"http://www.sintegra.ap.gov.br/" >Amapá<
"http://www.sefaz.am.gov.br/sintegra/sintegra0.asp" >Amazonas<
"http://www.sefaz.ba.gov.br/Sintegra/sintegra.asp?estado=BA" >Bahia<
"http://www.sefaz.ce.gov.br/Sintegra/Sintegra.Asp?estado=CE" >Ceará<
"http://www.fazenda.df.gov.br/area.cfm?id_area=110" >Distrito Federal<
"http://www.sintegra.es.gov.br/" >Espírito Santo<
"http://www.sefaz.go.gov.br/sintegra/sintegra.asp" >Goiás<
"http://www.sefaz.ma.gov.br/sintegra/sintegra.asp" >Maranhão<
"http://www.sefaz.mt.gov.br/sid/consulta/infocadastral/consultar/publica" >Mato Grosso<
"http://www1.sefaz.ms.gov.br/Cadastro/sintegra/cadastromsCCI.asp" >Mato Grosso do Sul<
"http://consultasintegra.fazenda.mg.gov.br" >Minas Gerais<
"http://app.sefa.pa.gov.br/Sintegra/" >Pará<
"http://sintegra.receita.pb.gov.br/sintegra/sintegra.asp?estado=pb" >Paraíba<
"http://www.sintegra.fazenda.pr.gov.br/sintegra/" >Paraná<
"http://www.sintegra.sefaz.pe.gov.br" >Pernambuco<
"http://web.sintegra.sefaz.pi.gov.br" >Piauí<
"http://www.fazenda.rj.gov.br/projetoCPS" >Rio de Janeiro<
"http://www.set.rn.gov.br/uvt/consultacontribuinte.aspx" >Rio Grande do Norte<
"http://sintegra.sefaz.rs.gov.br/sef_root/inf/Sintegra_Entrada.asp" >Rio Grande do Sul<
"http://www.sefin.ro.gov.br/sint_consul.asp" target="main" >Rondônia<
"http://portalapp.sefaz.rr.gov.br/sintegra/servlet/hwsintco" >Roraima<
"http://sistemas.sef.sc.gov.br/sintegra" >Santa Catarina<
"http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/consultaSintegraServlet" >São Paulo<
"http://www.sefaz.se.gov.br/sintegra" target="main" >Sergipe<
"http://sintegra.sefaz.to.gov.br" >Tocantins<
"http://www.suframa.gov.br/sintegra" >Suframa<


Link to comment
Share on other sites

mesmo assim não retorna informação...

 ElseIf cUF == "MG"
     aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",;
          "",;  // "consulta_empresa_pesquisa.asp",;
          "",;  // "consulta_empresa_principal.asp",;
          {"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
          {"CNPJ:",;
          "Inscrição Estadual:",;
          "Razão Social:",;
          "Logradouro:",;
          "Número:",;
          "Complemento:",;
          "Bairro:",;
          "Município:",;
          "UF:",;
          "CEP:",;
          "Telefone:",;
          "Atividade Econômica:",;
          "Situação Cadastral Vigente:",;
          "Data desta Situação Cadastral:",;
          "Regime de Apuração:" ;
          } ;
         }

Link to comment
Share on other sites

SR_SHOWVECTOR faz parte da LIB SQLRDD entao nao tem como te enviar, mas serve apenas para listar o array em texto. Eu uso muito para ver o conteudo do array de forma simples, voce pode fazer uma especifica para o seu caso.

Sobre MG como não é minha prioridade isso nao será um problema pra mim mas vou atualizar os links e buscar o CNPJ de alguem de lá e aviso.

abraços

Boa tarde Eduardo

Consegui consultar CNPJ de SP e pegar os dados, mas quando tento para MG (que é o que mais me interessa) não abre a página diretamente, mas tudo bem, na página que abre eu clico no link SINTEGRA, abre a página oficial do SINTEGRA, clico no estado MG, e na nova página que abre entro com o CNPJ e CAPTCHA e aparecem os dados. O problema é que estes dados não retornam para o sistema, teria como você testar se ai acontece da mesma forma?

PS: no comando abaixo não tenho sr_showvector() teria como postar a função?

msgstop(sr_showvector(aRet))

Herberson Gontijo

Ponteware Informática Ltda.

Link to comment
Share on other sites

mesmo assim não retorna informação...

 ElseIf cUF == "MG"
     aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",;
          "",;  // "consulta_empresa_pesquisa.asp",;
          "",;  // "consulta_empresa_principal.asp",;
          {"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
          {"CNPJ:",;
          "Inscrição Estadual:",;
          "Razão Social:",;
          "Logradouro:",;
          "Número:",;
          "Complemento:",;
          "Bairro:",;
          "Município:",;
          "UF:",;
          "CEP:",;
          "Telefone:",;
          "Atividade Econômica:",;
          "Situação Cadastral Vigente:",;
          "Data desta Situação Cadastral:",;
          "Regime de Apuração:" ;
          } ;
         }

Como dito antes, vc precisa alterar os dados, que provavelmente mudaram também em relação a página para isso basta vc entrar na página e com o botão direito clicar em exibir código fonte, trocar o que vc precisa e testar novamente ;)

Link to comment
Share on other sites

mesmo assim não retorna informação...

 ElseIf cUF == "MG"
     aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",;
          "",;  // "consulta_empresa_pesquisa.asp",;
          "",;  // "consulta_empresa_principal.asp",;
          {"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
          {"CNPJ:",;
          "Inscrição Estadual:",;
          "Razão Social:",;
          "Logradouro:",;
          "Número:",;
          "Complemento:",;
          "Bairro:",;
          "Município:",;
          "UF:",;
          "CEP:",;
          "Telefone:",;
          "Atividade Econômica:",;
          "Situação Cadastral Vigente:",;
          "Data desta Situação Cadastral:",;
          "Regime de Apuração:" ;
          } ;
         }

Como dito antes, vc precisa alterar os dados, que provavelmente mudaram também em relação a página para isso basta vc entrar na página e com o botão direito clicar em exibir código fonte, trocar o que vc precisa e testar novamente ;)

Vagner, tem que pegar o que daqui? Não entendi nada...

view-source:http://consultasintegra.fazenda.mg.gov.br/sintegra/

Obg. Abs.

Link to comment
Share on other sites

Bom dia

Com as modificações do link de MG funcionou, abre a página para entrar com o CNPJ e CAPTCHA e mostra os dados na tela, o problema agora é que após feita a consulta a página não fecha automáticamente como nas outras consultas de UF, com isso os dados não são recuperados. Isso tb está acontecendo com BA e GO (ainda não testei todas UF's).

Sabe como resolver isso?

Herberson Gontijo

Ponteware Software

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...