Jump to content
Fivewin Brasil

Consulta SINTEGRA pelo CNPJ


HERGON

Recommended Posts

 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:" ,;
          "Data de Credenciamento como emissor de NF-e:",;
          "Indicador de Obrigatoriedade de NF-e:",;
          "Data de Início da Obrigatoriedade de NF-e:",;  // aqui //
          "Data da Consulta:";
          } ;
         }

João a coisa é muito simples.

Você faz a consulta desejada direto no link que vc deseja

Vou usar SP como exemplo.

vai aparecer o retorno da consulta.

sintegra.png

Observe "Dara da Consulta:'

Marque o texto e agregue a sua rotina do estado.

Vai ficar assim como acima "code"

Link to comment
Share on other sites

Fiz igual a tela do Sintegra de MG, mas não deu!!! (risos)

ElseIf cUF == "MG"
"",;
"",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
{"CNPJ:",;
"Inscrição Estadual:",;
"UF:",;
"Nome Empresarial:",;
"CNAE-F Principal:",;
"CNAE-F Secundária:",;
"Data de Início da Atividade:",;
"Situação Cadastral:",;
"Data Situação Cadastral:",;
"Regime de Recolhimento:",;
"Observações:",;
"unidade auxilar da CNAE:",;
"CEP:",;
"UF:",;
"Distrito/Povoado:",;
"Bairro:",;
"Logradouro:",;
"Número:",;
"Complemento:",;
"Telefone:" ;
} ;
}
Link to comment
Share on other sites

Blz. Señores, testei e funciona de boa. Mas, não tem como eu já levar o o CNPJ direto? O Captcha tudo bem, eu acho justo o uçuário digitar, mas seria super interessante já se levar o CNPJ junto... Podddyyyyy??? Obg. abs.




#Include "Fivewin.ch"

STATIC aRet

Function Teste()

Local oSintegra := GetSintegra("SP")

aRet := oSintegra:Consulta()

//msgstop(sr_showvector(aRet))
xBrowse( 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....nline/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....nsultaCadastro/",;
"",;
"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....nsultaCadastro/
//http://www.sefaz.go....ro/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....sa_pesquisa.asp
//http://www.sintegra...._inscricoes.asp
//http://www.sintegra....a_principal.asp

ElseIf cUF == "MS"
aRet := {"http://www1.sefaz.ms...astro/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...astro/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....e0?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.r....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.go...gra/default.asp
//http://www.set.rn.go...=03766900000132
//<td bgcolor="#FAFAE4" align="center" ><div align="left"><a href="result.asp?ie=085197"> Encontrar o IE
//http://www.set.rn.go...t.asp?ie=085197

ElseIf cUF == "RO"
aRet := {"http://portal.intran...alContribuinte/",;
"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...ov.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:" ,;
"Data de Credenciamento como emissor de NF-e:",;
"Indicador de Obrigatoriedade de NF-e:",;
"Data de Início da Obrigatoriedade de NF-e:",; // aqui //
"Data da Consulta:";
} ;
}

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

Faço assim:

// Copia a CHAVE para o ClipBoard
oClp:=TClipboard():New()
oClp:Clear()
oClp:SetText( cCNPJ )
oClp:End()
Depois o usuário COLA o CNPJ no campo da pesquisa.
Minas Gerais não está funcionando!!!
Tem algum site de pesquisa dos dados de PESSOA FÍSICA (C.P.F.) ?
Aguardo, obrigado.
Link to comment
Share on other sites

Eu atualizei todos os links da função, mas só estou conseguindo pegar o retorno do estado de São Paulo:

//----------------------------------------------------------------------------------------------------------------------//
Static Func PegaUrls(cUF) // Nem todos os campos do html são iguais então foi colocado em forma de array para que você possa identificá-los
   Local aRet := {}
   If     cUF == "AC" // http://sefaznet.ac.gov.br/sefazonline/servlet/hpfsincon
   aRet := {"http://sefaznet.ac.gov.br/sefazonline/servlet/hpfsincon",;
         "",;
         "",;
         {"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 == "AL" // http://www.sefaz.al.gov.br/asp/sintegra/sintegra.asp?estado=AL
   aRet := {"http://www.sefaz.al.gov.br/asp/sintegra/",;
         "sintegra.asp?estado=AL",;
         "",;
         {"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 == "AM" // http://www.sefaz.am.gov.br/sintegra/sintegra0.asp
   aRet := {"http://www.sefaz.am.gov.br/sintegra/",;
         "sintegra0.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 == "AP" // http://www.sintegra.ap.gov.br/
   aRet := {"http://www.sintegra.ap.gov.br/",;
         "",;
         "",;
         {"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 == "BA" // http://www.sefaz.ba.gov.br/Sintegra/sintegra.asp?estado=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" // http://www.sefaz.ce.gov.br/Sintegra/Sintegra.Asp?estado=CE
   aRet := {"http://www.sefaz.ce.gov.br/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" // http://www.fazenda.df.gov.br/area.cfm?id_area=110
   aRet := {"http://www.fazenda.df.gov.br/",;
         "area.cfm?id_area=110",;
         "",;
         {"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 == "ES" // http://www.sintegra.es.gov.br/
   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" // http://www.sefaz.go.gov.br/sintegra/sintegra.asp
   aRet := {"http://www.sefaz.go.gov.br/sintegra/",;
         "sintegra.asp",;
         "consultar.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:" ;
         } ;
         }

   ElseIf cUF == "MA" // http://sistemas.sefaz.ma.gov.br/sintegra/jsp/consultaSintegra/consultaSintegraFiltro.jsf
   aRet := {"http://sistemas.sefaz.ma.gov.br/sintegra/jsp/consultaSintegra/",;
         "consultaSintegraFiltro.jsf",;
         "",;
         {"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:" ;
         } ;
         }

   ElseIf cUF == "MG" // http://consultasintegra.fazenda.mg.gov.br/
   aRet := {"http://consultasintegra.fazenda.mg.gov.br/",; // "http://www.sintegra.fazenda.mg.gov.br/",;
         "",;
         "",;
         {"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
         {"CNPJ:",;
         "Inscrição Estadual:",;
         "UF:",;
         "Nome Empresarial:",;
         "CNAE-F Principal:",;
         "CNAE-F Secundária:",;
         "Data de Início da Atividade:",;
         "Situação Cadastral:",;
         "Data Situação Cadastral:",;
         "Regime de Recolhimento:",;
         "Observações:",;
         "unidade auxilar da CNAE:",;
         "CEP:",;
         "UF:",;
         "Distrito/Povoado:",;
         "Bairro:",;
         "Logradouro:",;
         "Número:",;
         "Complemento:",;
         "Telefone:" ;
         } ;
         }

   ElseIf cUF == "MS" // http://www1.sefaz.ms.gov.br/cadastro/CadastroMsCCI.asp
   aRet := {"http://www1.sefaz.ms.gov.br/cadastro/",;
         "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" // http://www.sefaz.mt.gov.br/sid/consulta/infocadastral/consultar/publica
   aRet := {"http://www.sefaz.mt.gov.br/sid/consulta/infocadastral/consultar/publica",;
         "",;
         "",;
         {"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 == "PA" // http://app.sefa.pa.gov.br/Sintegra/
   aRet := {"http://app.sefa.pa.gov.br/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:",;
         "Atividade Econômica:",;
         "Situação Cadastral Atual:",;
         "Data desta Situação Cadastral:",;
         "Regime de Apuração de ICMS:" ;
         } ;
         }

   ElseIf cUF == "PB" // https://saplic.receita.pb.gov.br/sintegra/SINf_ConsultaSintegra.jsp
   aRet := {"https://saplic.receita.pb.gov.br/sintegra/",;
         "SINf_ConsultaSintegra.jsp",;
         "",;
         {"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 == "PE" // http://www.sintegra.sefaz.pe.gov.br/
   aRet := {"http://www.sintegra.sefaz.pe.gov.br/",;
         "",;
         "",;
         {"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 == "PI" // http://web.sintegra.sefaz.pi.gov.br/consulta_empresa_pesquisa.asp // http://www.sintegra.sefaz.pi.gov.br/#
   aRet := {"http://web.sintegra.sefaz.pi.gov.br/",;
         "consulta_empresa_pesquisa.asp",;
         "",;
         {"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 == "PR"// http://www.sintegra.fazenda.pr.gov.br/sintegra/
   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" // http://www.fazenda.rj.gov.br/projetoCPS/consulta.jsp
   aRet := {"http://www.fazenda.rj.gov.br/projetoCPS/",;
         "consulta.jsp",;
         "retorno.jsp",;
         {"IDENTIFICAÇÃO","Data da Consulta:"},;
         {"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:",; // "Data da Concessão da Inscrição:",;
         "Regime de Apuração de ICMS:" ;
         } ;
         }

   ElseIf cUF == "RN" // http://www.set.rn.gov.br/uvt/consultacontribuinte.aspx
   aRet := {"http://www.set.rn.gov.br/uvt/",;
         "consultacontribuinte.aspx",;
         "",;
         {"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:" ;
         } ;
         }

   ElseIf cUF == "RO" // http://www.sefin.ro.gov.br/sint_consul.asp
   aRet := {"http://www.sefin.ro.gov.br/",;
         "sint_consul.asp",;
         "",;
         {"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" // http://sintegra.sefaz.rs.gov.br/sef_root/inf/Sintegra_Entrada.asp
   aRet := {"http://sintegra.sefaz.rs.gov.br/sef_root/inf/",;
         "Sintegra_Entrada.asp",;
         "",;
         {"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 == "SC" // http://sistemas.sef.sc.gov.br/sintegra
   aRet := {"http://sistemas3.sef.sc.gov.br/sintegra/",;
         "",;
         "",;
         {"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" // https://security.sefaz.se.gov.br/SIC/sintegra/index.jsp
   aRet := {"https://security.sefaz.se.gov.br/SIC/sintegra/",;
         "index.jsp",;
         "",;
         {"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 == "SP" // http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/consultaSintegraServlet
   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" // http://sintegra.sefaz.to.gov.br/
   aRet := {"http://sintegra.sefaz.to.gov.br/",;
         "",;
         "",;
         {"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:" ;
         } ;
         }

   Else // SUFRAMA: https://wwws.suframa.gov.br/asp/sintegra_cadastro.asp // https://wwws.suframa.gov.br/asp/sintegra_cadastro_result.asp
   aRet := {"https://wwws.suframa.gov.br/asp/",;
         "sintegra_cadastro.asp",;
         "sintegra_cadastro_result.asp",;
         {"IDENTIFICAÇÃO","Os dados acima estão baseados"},;
         {"CGC:",;
         "Inscrição Estadual:",;
         "Razão Social:",;
         "Logradouro:",;
         "Número:",;
         "Complemento:",;
         "Bairro:",;
         "Município:",;
         "UF:",;
         "CEP:",;
         "Telefone:",;
         "Atividade Econômica:",;
         "Situação da Inscrição SUFRAMA:",;
         "Situação Cadastral:",;
         "Tipo(s) de Incentivo(s) para a região de domicílio da empresa :" ;
         } ;
         }
   Endif
Retu(aRet)

Link to comment
Share on other sites

Olá pessoal...

Tem como salvar as informações num Banco de Dados todas as vezes que realizar uma consulta ?

Obrigado.

Ola Valdir, observe que o retorno vem numa array, dai vc exibe na tela grava, faz o que quiser com ela...

esta classe já foi postada a mais de anos aqui no forum, sempre usei ela

veja um exemplo:

 aRetorno := oSintegra:Consulta()
 if Len(aRetorno) > 0
    if aDados[D_estado]='MG'
        cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
        cInfo[2]:=aRetorno[2]
        cInfo[11]:=aRetorno[3]
        cInfo[3]:=aRetorno[4]
        cInfo[5]:=aRetorno[5]+' '+aRetorno[6]
        cInfo[6]:=alltrim(str(val(aRetorno[7])))
        cInfo[7]:=aRetorno[8]
        cInfo[8]:=aRetorno[9]
        cInfo[9]:=TiraAcento(aRetorno[11])
        cInfo[10]:=aRetorno[10]
        cInfo[11]:=substr(aRetorno[12],1,5)+'-'+substr(aRetorno[12],6,3)
        cInfo[12]:=aRetorno[14]
        cInfo[13]:=aRetorno[16]
        cInfo[14]:=ctod(substr(aRetorno[15],1,2)+'/'+substr(aRetorno[15],3,2)+'/'+substr(aRetorno[15],5,4))
        cInfo[15]:=aRetorno[17]

Abraços

Luiz Fernando

Link to comment
Share on other sites

Ola Valdir, observe que o retorno vem numa array, dai vc exibe na tela grava, faz o que quiser com ela...

esta classe já foi postada a mais de anos aqui no forum, sempre usei ela

veja um exemplo:

 aRetorno := oSintegra:Consulta()
 if Len(aRetorno) > 0
    if aDados[D_estado]='MG'
        cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
        cInfo[2]:=aRetorno[2]
        cInfo[11]:=aRetorno[3]
        cInfo[3]:=aRetorno[4]
        cInfo[5]:=aRetorno[5]+' '+aRetorno[6]
        cInfo[6]:=alltrim(str(val(aRetorno[7])))
        cInfo[7]:=aRetorno[8]
        cInfo[8]:=aRetorno[9]
        cInfo[9]:=TiraAcento(aRetorno[11])
        cInfo[10]:=aRetorno[10]
        cInfo[11]:=substr(aRetorno[12],1,5)+'-'+substr(aRetorno[12],6,3)
        cInfo[12]:=aRetorno[14]
        cInfo[13]:=aRetorno[16]
        cInfo[14]:=ctod(substr(aRetorno[15],1,2)+'/'+substr(aRetorno[15],3,2)+'/'+substr(aRetorno[15],5,4))
        cInfo[15]:=aRetorno[17]

Abraços

Luiz Fernando

Olá Luiz Fernando...

Obrigado por responder.

Quero salvar essas Consultas por diversos motivos, principalmente quando o responsável não realiza esse trabalho e depois insiste em dizer que o fez..

Assim fica registrado quem fez, a Data e Hora.de todas as Consultas feitas.

Abração.

Link to comment
Share on other sites

Luiz Fernando,

Você pode nos passar a sua função que pega o retorno dos estados?

Só estou conseguindo de São Paulo.

Obrigado,

Colega eu so dei tratamento para 4 estados MG,SC,ES e SP, MG já algum tempo os cliente reclamam que não da mais certo, mais pelo que li aqui neste tópico foi mudado, depois irei refazer...

aRetorno := oSintegra:Consulta()
if Len(aRetorno) > 0
   if aDados[D_estado]='MG'
      cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
      cInfo[2]:=aRetorno[2]
      cInfo[11]:=aRetorno[3]
      cInfo[3]:=aRetorno[4]
      cInfo[5]:=aRetorno[5]+' '+aRetorno[6]
      cInfo[6]:=alltrim(str(val(aRetorno[7])))
      cInfo[7]:=aRetorno[8]
      cInfo[8]:=aRetorno[9]
      cInfo[9]:=TiraAcento(aRetorno[11])
      cInfo[10]:=aRetorno[10]
      cInfo[11]:=substr(aRetorno[12],1,5)+'-'+substr(aRetorno[12],6,3)
      cInfo[12]:=aRetorno[14]
      cInfo[13]:=aRetorno[16]
      cInfo[14]:=ctod(substr(aRetorno[15],1,2)+'/'+substr(aRetorno[15],3,2)+'/'+substr(aRetorno[15],5,4))
      cInfo[15]:=aRetorno[17]
   elseif aDados[D_estado]='SC'
      cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
      cInfo[2]:=aRetorno[2]
      cInfo[3]:=aRetorno[3]
      cInfo[5]:=aRetorno[4]+' '+aRetorno[5]
      cInfo[6]:=alltrim(str(val(aRetorno[6])))
      cInfo[7]:=aRetorno[7]
      cInfo[8]:=aRetorno[8]
      cInfo[10]:=aRetorno[9]
      cInfo[9]:=TiraAcento(aRetorno[10])
      cInfo[11]:=substr(aRetorno[11],1,5)+'-'+substr(aRetorno[11],6,3)
      cInfo[12]:=aRetorno[13]
      cInfo[13]:=aRetorno[14]
      cInfo[14]:=aRetorno[15]
      cInfo[15]:=aRetorno[16]
   elseif aDados[D_estado]='ES'
      cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
      cInfo[2]:=aRetorno[2]
      cInfo[14]:=ctod(substr(aRetorno[14],1,2)+'/'+substr(aRetorno[14],3,2)+'/'+substr(aRetorno[14],5,4))
      cInfo[3]:=aRetorno[3]
      cInfo[5]:=aRetorno[4]+' '+aRetorno[5]
      cInfo[6]:=alltrim(str(val(aRetorno[6])))
      cInfo[7]:=aRetorno[7]
      cInfo[8]:=aRetorno[8]
      cInfo[9]:=TiraAcento(aRetorno[9])
      cInfo[10]:=aRetorno[10]
      cInfo[11]:=substr(aRetorno[11],1,5)+'-'+substr(aRetorno[11],6,3)
      cInfo[12]:=aRetorno[13]
      cInfo[13]:=aRetorno[15]
      cInfo[15]:=aRetorno[17]   // regime de apuracao
   elseif aDados[D_estado]='SP'
      cInfo[1]:=substr(aRetorno[1],1,2)+'.'+substr(aRetorno[1],3,3)+'.'+substr(aRetorno[1],6,3)+'/'+substr(aRetorno[1],9,4)+'-'+substr(aRetorno[1],13,2)
      cInfo[2]:=aRetorno[2]
      cInfo[14]:=ctod(substr(aRetorno[14],1,2)+'/'+substr(aRetorno[14],3,2)+'/'+substr(aRetorno[14],5,4))
      cInfo[3]:=aRetorno[3]
      cInfo[5]:=aRetorno[4]+' '+aRetorno[5]
      cInfo[6]:=alltrim(str(val(aRetorno[6])))
      cInfo[7]:=aRetorno[7]
      cInfo[8]:=aRetorno[8]
      cInfo[9]:=TiraAcento(aRetorno[9])
      cInfo[10]:=aRetorno[10]
      cInfo[11]:=substr(aRetorno[11],1,5)+'-'+substr(aRetorno[11],6,3)
      cInfo[12]:=aRetorno[12]
      cInfo[13]:=aRetorno[13]
      cInfo[15]:=aRetorno[15]   // regime de apuracao
   endif   
endif

Abraços

Luiz Fernando

Link to comment
Share on other sites

se for somente para consulta jah com prenchimento automatico do CNPJ, fiz esse codigo na madrugada:

Function CnpjSintegra(cCgc, cEst)
  Local hWnd, oWndWeb, oActiveX, cUrl, cCnpj:=Alltrim(StrTran(StrTran(StrTran(cCgc, "/", ""), ".", ""), "-", ""))

  DEFINE WINDOW oWndWeb From 10,10 To 42,115 TITLE "Consulta Sintegra "+cEst

   oActiveX = TActiveX():New( oWndWeb, "Shell.Explorer" )
   oWndWeb:oClient = oActiveX

   If cEst="AC"
      cUrl:="http://sefaznet.ac.gov.br/sefazonline/servlet/sintegraconsulta"
   ElseIf cEst="AL"
      cUrl:="http://sintegra.sefaz.al.gov.br/consulta_empresa_pesquisa.asp"
   ElseIf cEst="AP"
      cUrl:="http://www.sintegra.ap.gov.br/Sintegra/"
   ElseIf cEst="AM"
      cUrl:="http://online.sefaz.am.gov.br/sintegra/index.asp"
   ElseIf cEst="BA"
      cUrl:="http://www.sefaz.ba.gov.br/sintegra/sintegra.asp?estado=BA"
   ElseIf cEst="CE"
      cUrl:="http://www.sefaz.ce.gov.br/content/aplicacao/internet/servicos_online/sintegra/sintegra.asp?estado=ce"
   ElseIf cEst="DF"
      cUrl:="http://www.fazenda.df.gov.br/area.cfm?id_area=110"
   ElseIf cEst="ES"
      cUrl:="http://www.sintegra.es.gov.br/"
   ElseIf cEst="GO"
      cUrl:="http://www.sefaz.go.gov.br/ccs/default.asp"
   ElseIf cEst="MA"
      cUrl:="http://sistemas.sefaz.ma.gov.br/sintegra/jsp/consultaSintegra/consultaSintegraFiltro.jsf"
   ElseIf cEst="MT"
      cUrl:="http://www.sefaz.mt.gov.br/sid/consulta/infocadastral/consultar/publica"
   ElseIf cEst="MS"
      cUrl:="http://www1.sefaz.ms.gov.br/cadastro/CadastroMsCCI.asp"
   ElseIf cEst="MG"
      cUrl:="http://consultasintegra.fazenda.mg.gov.br/sintegra/"
   ElseIf cEst="PR"
      cUrl:="http://www.sintegra.fazenda.pr.gov.br/sintegra/"
   ElseIf cEst="PB"
      cUrl:=""
   ElseIf cEst="PA"
      cUrl:="https://app.sefa.pa.gov.br/Sintegra/"
   ElseIf cEst="PE"
      cUrl:="http://www.sintegra.sefaz.pe.gov.br/"
   ElseIf cEst="PI"
      cUrl:="http://web.sintegra.sefaz.pi.gov.br/consulta_empresa_pesquisa.asp"
   ElseIf cEst="RJ"
      cUrl:="http://www.fazenda.rj.gov.br/projetoCPS/consulta.jsp"
   ElseIf cEst="RN"
      cUrl:="http://www.set.rn.gov.br/sintegra/default.asp"
   ElseIf cEst="RS"
      cUrl:="http://sintegra.sefaz.rs.gov.br/sef_root/inf/Sintegra_Entrada.asp"
   ElseIf cEst="RO"
      cUrl:="http://portal.intranet.sefin.ro.gov.br/PortalContribuinte/Publico/parametropublica.jsp"
   ElseIf cEst="RR"
      cUrl:="https://www.sefaz.rr.gov.br/sintegra/servlet/hwsintco"
   ElseIf cEst="SC"
      cUrl:="http://sistemas3.sef.sc.gov.br/sintegra/consulta_empresa_pesquisa.aspx"
   ElseIf cEst="SE"
      cUrl:="https://security.sefaz.se.gov.br/SIC/sintegra/index.jsp"
   ElseIf cEst="SP"
      cUrl:="http://pfeserv1.fazenda.sp.gov.br/sintegrapfe/consultaSintegraServlet"
   ElseIf cEst="TO"
      cUrl:="http://sintegra.sefaz.to.gov.br/"
   Else
      Return nil
   Endif

   oActiveX:Do( "Navigate2", cUrl)
   oWndWeb:center()

   While oActiveX:Busy
     syswait(.2)
   End

   oActiveX := oActiveX:Document()
   If cEst="AC"
      oActiveX:All:Item("vNUMDOC",0):Value := cCnpj
      oActiveX:All:Item("cfield",0):Focus()
   ElseIf cEst="AL"
      oActiveX:All:Item("txt_CNPJ",0):Value := cCnpj
      oActiveX:All:Item("Submit",0):Focus()
      oActiveX:All:Item("Submit",0):Click()
   ElseIf cEst="AP"
      oActiveX:All:Item("j_id4:tipo",0):Value := "CNPJ"
      oActiveX:All:Item("j_id4:doc",0):Value := cCnpj
      oActiveX:All:Item("j_id4:txtcaptcha",0):Focus()
   ElseIf cEst="AM"
      oActiveX:All:Item("cgc",0):Value := cCnpJ
      oActiveX:All:Item("captcha_code",0):Focus()
   ElseIf cEst="BA"
      oActiveX:All:Item("txt_CNPJ",0):Value := cCnpj
      oActiveX:All:Item("Submit",0):Focus()
      oActiveX:All:Item("Submit",0):Click()
   ElseIf cEst="CE"
      oActiveX:All:Item("CGC",0):Value := cCnpj
      oActiveX:All:Item("B1",0):Focus()
      oActiveX:All:Item("B1",0):Click()
   ElseIf cEst="DF"
      oActiveX:All:Item("CGC",0):Value := cCnpj
      oActiveX:All:Item("B1",0):Focus()
      oActiveX:All:Item("B1",0):Click()
   ElseIf cEst="ES"
      oActiveX:All:Item("num_cnpj",0):Value := cCnpj
      oActiveX:All:Item("botao",0):Focus()
      oActiveX:All:Item("botao",0):Click()
   ElseIf cEst="GO"                                           // GO erro
      oActiveX:All:Item("tCNPJ",0):Value := cCnpj
      oActiveX:All:Item("btCGC",0):Focus()
//      oActiveX:All:Item("btCGC",0):Click()
   ElseIf cEst="MA"                                           // MA erro
//      oActiveX:All:Item("tipoEmissao",0):Value := "2"
      oActiveX:All:Item("cpfCnpj",0):Value := cCnpj
      oActiveX:All:Item("j_id23",0):Focus()
   ElseIf cEst="MT"
      oActiveX:All:Item("numero",0):Value := cCnpj
      oActiveX:All:Item("captchaDigitado",0):Focus()
   ElseIf cEst="MS"
      oActiveX:All:Item("CGC_CPF",0):Value := cCnpj
      oActiveX:All:Item("captchacode",0):Focus()
   ElseIf cEst="MG"
      oActiveX:All:Item("identificadorCmbOpcao",0):Value := "Número do CNPJ"
      oActiveX:All:Item("filtro",0):Value := cCnpj
      oActiveX:All:Item("recaptcha_response_field",0):Focus()
   ElseIf cEst="PR"
      oActiveX:All:Item("data[Sintegra1][Cnpj]",0):Value := cCnpj
      oActiveX:All:Item("data[Sintegra1][CodImage]",0):Focus()
   ElseIf cEst="PB"                                                // PB certificado de segurança do site não é confiável.

   ElseIf cEst="PA"
      oActiveX:All:Item("CNPJ",0):Value := cCnpj
      oActiveX:All:Item("OP",0):Focus()
      oActiveX:All:Item("OP",0):Click()
   ElseIf cEst="PE"
      oActiveX:All:Item("CNPJ",0):Value := cCnpj   // problema
      oActiveX:All:Item("ConsultaCGC",0):Focus()
      oActiveX:All:Item("ConsultaCGC",0):Click()
   ElseIf cEst="PI"
      oActiveX:All:Item("txt_CNPJ",0):Value := cCnpj
      oActiveX:All:Item("Submit",0):Focus()
      oActiveX:All:Item("Submit",0):Click()
   ElseIf cEst="RJ"
      oActiveX:All:Item("CGC",0):Value := cCnpj
      oActiveX:All:Item("cod_img",0):Focus()
   ElseIf cEst="RN"
      oActiveX:All:Item("CGC",0):Value := cCnpj
      oActiveX:All:Item("B1",0):Focus()
      oActiveX:All:Item("B1",0):Click()
   ElseIf cEst="RS"
      oActiveX:All:Item("cgcmf",0):Value := cCnpj
   ElseIf cEst="RO"
      oActiveX:All:Item("NuDevedor",0):Value := cCnpj
      oActiveX:All:Item("recaptcha_response_field",0):Focus()
   ElseIf cEst="RR"
      oActiveX:All:Item("_CONINSESTG",0):Value := cCnpj
      oActiveX:All:Item("cfield",0):Focus()
   ElseIf cEst="SC"
      oActiveX:All:Item("txt_CPFCNPJ",0):Value := cCnpj
      oActiveX:All:Item("txtCodigoCaptcha",0):Focus()
   ElseIf cEst="SE"
      oActiveX:All:Item("cdCnpj",0):Value := cCnpj
      oActiveX:All:Item("dsImagem",0):Focus()
   ElseIf cEst="SP"
      oActiveX:All:Item("cnpj",0):Value := cCnpj
      oActiveX:All:Item("Key",0):Focus()
   ElseIf cEst="TO"
      oActiveX:All:Item("CGC",0):Value := cCnpj
      oActiveX:All:Item("B1",0):Focus()
      oActiveX:All:Item("B1",0):Click()
   Endif
   ShowWindow(hWnd, 1 )   //SW_MAXIMIZE=3 SW_NORMAL=1 SW_MINIMIZE=6

   ACTIVATE WINDOW oWndWeb ON INIT BarraSintegra(oWndWeb, oActiveX)

Return nil
*------------------------------------------------------------------------------------------------------------
Static Function BarraSintegra(oDlg, oActiveX)
 Local oToolBarDlg, oImageList

    oImageList:=TImageList():New(32,32)
//    oImageList:AddMasked( TBitmap():Define( "BMP_PRI9",, oDlg ), nRGB( 255, 0, 255 ) )
//    oImageList:AddMasked( TBitmap():Define( "BMP_FLO9",, oDlg ), nRGB( 255, 0, 255 ) )
    oImageList:AddMasked( TBitmap():Define( "BMP_QUIT",, oDlg ), nRGB( 255, 0, 255 ) )

    DEFINE TOOLBAR oToolBarDlg OF oDlg SIZE 35,35 IMAGELIST oImageList BALLOON
//    DEFINE TBBUTTON OF oToolBarDlg ACTION oActivex:Do("ExecWB", 7,1) TOOLTIP "Imprimir"
//    DEFINE TBBUTTON OF oToolBarDlg ACTION oActivex:Do("ExecWB", 4,1) TOOLTIP "Salva"
    DEFINE TBBUTTON OF oToolBarDlg ACTION oDlg:End() TOOLTIP "Fechar"

Return nil

tavez possa ser aproveitado para a rotina de vcs(do topic) com preenchimento automatico

GO MA nao tive paciencia de procurar o erro, PB nem entrei no site pois retorna "certificado de segurança do site não é confiável."

Link to comment
Share on other sites

Ola amigos...

para quem queria para MG fiz alguns testes e esta retornando os dados...

Fiz tambem alguns controles de criação de LOGs no na rotina onde dá pra ver onde e como é chamada o retorno dos dados...

Qualquer coisa estamos aqui

/*********************************************************  
 * 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, cBody, cUf

	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])
::cUf   := cUf

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,800 Pixel Title "OnTop Sistemas [ Sintegra - Fazendo Consulta ]" //Style WS_CAPTION
oDlg:lHelpIcon:=.F.
Activate Dialog oDlg NoWait Centered

oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,780,550)
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 , ::cUf )
Else
	MsgStop(::cError,"Atenção")
	MontaSintegra( ::cBody, ::aGru1,::aGru2 , ::cUf )
EndIf
Return {}

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

LoGFile('Sintegra.Txt',{cHTTP})
LoGFile('cView.Txt',{::cView})
TRY
LoGFile('Body.txt',{ oAct:Document:Body:InnerHtml } )
  ::cBody := oAct:Document:Body:InnerHtml
Catch
End

If ( ::cView $ cHTTP ) .OR. ::cView == cHTTP

	If At( ::aGru1[1], 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, cUf )
Local cLine, nLine, nTotal
Local aReto := {}
Local cTexto
Local nPos,nPo1

Default cUf := ''

//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

If cUf == "MG"

//	cSintegra := StrTran(cSintegra,"Dados Principais")

Else
	cSintegra := StrTran(cSintegra,"INFORMAÇÕES COMPLEMENTARES")
	cSintegra := StrTran(cSintegra,".::ENDEREÇO")
EndIf

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 

xBrowse( aReto, "MontaSintegra" )
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])} )
cString:=StrTran(cString,chr(10)+chr(13) )

LoGFile('StripHTML.Txt',{cString})

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 )
? cStart, nBegin, ProcName()

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 )
? cFound, ProcName()

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
//		? cLine
//		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 Function 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:",;
       "Data de Inicio de Atividade:",;
       "Data desta Situação Cadastral:";
		 } ;
		}

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:" ;
		 } ;
		}

ElseIf cUF == "MG"
	aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",;
		 "",;
		 "ctrl/SINTEGRA/SINTEGRA/CONSULTA_707",;
		 {"Dados Principais",NIL},;
		 {"CNPJ:",;
		 "Inscrição Estadual:",;
		 "Nome Empresarial:",;
		 "Logradouro:",;
		 "Número:",;
		 "Complemento:",;
		 "Bairro:",;
		 "Município:",;
		 "UF:",;
		 "CEP:",;
		 "Telefone:",;
		 "Atividade Econômica:",;
		 "CNAE-F Principal:",;
		 "Situação Cadastral Atual:",;
		 "Data da Inscrição Estadual:",;
		 "Regime de Apuração de ICMS:",;
		 "Regime de Apuração de ICMS:" ;
		 } ;
		}

//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 := {"https://app.sefa.pa.gov.br/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ã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 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"
	aRet := {"https://www.sefaz.rr.gov.br/sintegra/",;
		 "servlet/hwsintco",;
		 "servlet/hwsintpe?",;
		 {".::IDENTIFICAÇÃO",nil},;
		 {"CNPJ:",;
		 "Inscrição Estadual",;
		 "Razão Social:",;
		 "Logradouro:",;
		 "Número:",;
		 "Complemento:",;
		 "Bairro:",;
		 "Município:",;
		 "UF:",;
		 "CEP:",;
		 "Telefone:",;
		 "Ativ. Enonômica:",;
		 "Sit.Cad. Vigente:",;
		 "Dta.Sit.Cadastral:";
		 } ;
		}
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:",;
		 "Município:",;
		 "UF:",;
		 "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

Segue uma tabela que fiz para facilitar os testes:

ESTADO CNPJ
AC 07358761021670
AL 24487886000108
AM 00280273000137
BA 01718478000114
CE 01591524000167
DF 32440901003025
ES 28053619001740
GO 54567656000110
MA 03062748000107
MG 16716417000195
MS 07835806000220
MT 03790841000138
PA 63878250000149
PB 41137225000171
PE 23637697006738
PI 03751615000148
PR 01275430000189
RJ 33252156000119
RN 33000167000969
RO 09502005000197
RS 87821278000108
SC 80659238000162
SE 01491090000123
SP 02790893000222
TO 17262213011200

Link to comment
Share on other sites

Estados em que eu consigo pegar os dados:

"CE / ES / MA / MG / PR / RJ / SP / SC"
Estados em que eu consigo abrir a tela do site que contém os dados, mas não consigo pegar o retorno:
"AC / AL / AM / AP / BA / DF / GO / MS / MT / PA / PB / PE / PI / RN / RO / RR / RS"
Se alguém conseguir algum desses, por favor, me avise.
Obrigado,
Link to comment
Share on other sites

Bom dia Vagner,

Obrigado pela excelente função e pelas dicas!

Eu entendi que preciso mudar os nomes dos campos conforme o que aparece na página do estado que apresenta as informações: Exemplo: Num deles é "Nome Empresarial:" e no outro é "Razão Social:".

Mas eu estou com dificuldade de saber qual é a página de retorno dessas informações, acho que o meu problema é esse. Exemplo:

SC funciona assim: ( e eu consigo pegar os dados que aparecem na tela )

"consulta_empresa_pesquisa.aspx",;
"consulta_empresa_pesquisa.aspx",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em informações"},;
PI eu consigo ver os dados com:
"consulta_empresa_pesquisa.aspx",;
"",;
{"IDENTIFICAÇÃO","Os dados acima estão baseados em informações"},;
( Mas não consigo ler os registros que aparecem na tela. )
Obrigado,
Link to comment
Share on other sites

Como já disse,

Entre pelo site, click com o Botão direito do mouse, entre em "exibir o código fonte", veja como é montada a página e verá que precisa trocar onde está "endereço :" por exemplo pelo que está na página. não são iguais precisa ver na função onde pega a parte do texto e mudar para o que precisa. :D

Link to comment
Share on other sites

No MontSintegra()

ELSEIF(cUF $ "BA")
    Do Whil (nPos := At("<!--%",cSintegra)) > 0
        nPo1 := At("%-->",cSintegra)
        cTexto := SubStr(cSintegra,nPos,(nPo1-nPos)+4)
        cSintegra := StrTran(cSintegra,cTexto,"")
    ENDDO
ENDIF
ElseIf cUF == "BA"
    aRet := {"http://www.sefaz.ba.gov.br/Sintegra/",;
         "sintegra.asp?estado=BA/",;
         "",;
         {"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
         {,;
         "Data da Consulta:",;
         "Número da Consulta:",;
         "CNPJ:",;
         "Inscrição Estadual:",;
         "UF:",;
         "Razão Social:",;
         "Logradouro:",;
         "Número:",;
         "Complemento:",;
         "Bairro:",;
         "UF:",;
         "Município:",;
         "CEP:",;
         "Endereço Eletrônico:",;
         "Telefone:",;
         "Atividade Econômica:",;
         "Data da Inscrição Estadual:",;
         "Usuário SEPD :",;
         "Situação Cadastral Atual:",;
         "Data desta Situação Cadastral:",;
         "Condição:",;
         "Regime de Apuração de ICMS:";
         } ;
        }

Link to comment
Share on other sites

Pessoal

Algumas alterações no fonte e o resumo é o seguinte:

UF's que estão funcionando perfeitamente (já testadas) e recuperando os dados: BA, CE, ES, MA, MG, MS, PR, RJ, RR, SC e SP.

UF's que ainda não foram implementadas: AC, AL, AM, AP, DF, MT, PB, PE, PI, RS, SE e TO.

UF's que foram implementadas mas não funcionam, travam ou não capturam os dados: GO, PA, RN e RO.

Quem quiser testar e se conseguir algum avanço, por favor, post... Agora vou dar um tempo nisso porque leva um tempo enorme para testar/adequar e o resto dos meus afazeres acabou ficam atrasado.

/*********************************************************  
 * 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 "xBrowse.ch"

Function GetSintegra(cUF)
Return( 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) 
Return (MontaSintegra(cHtml))
 
//----------------------------------------------------------------------------------------------------------------------//
Class Sintegra
	Data nTimeOut  Init 240 // 4 minutos
	Data lDownload, lError, cError
	Data cRetorno
	Data aGru1, aGru2
	Data cUrl, cPost, cView, cBody, cUf

	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 := "MG"
   
   aUrls := PegaUrls(cUF)
   
   If Len(aUrls) == 0
   	MsgStop("Não pude inicializar o Sintegra.","Estado "+cUF+" Inválido.")
   	Return (.f.) //Self // (.t.)
   Endif
   
   ::cUrl  := aUrls[1]
   ::cPost := ::cUrl+aUrls[2]
   ::cView := ::cUrl+aUrls[3]
   ::aGru1 := AClone(aUrls[4])
   ::aGru2 := AClone(aUrls[5])
   ::cUf   := cUf
   
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,800 Pixel Title "Consultando CNPJ - Sintegra - UF: "+cUf //Style WS_CAPTION
   oDlg:lHelpIcon:=.F.
   Activate Dialog oDlg NoWait Centered
   
   oAct:=TActivex():New(oDlg,"Shell.Explorer",00,0,790,590)
   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 , ::cUf )
   Else
   	MsgStop(::cError,"Atenção")
   	MontaSintegra( ::cBody, ::aGru1,::aGru2 , ::cUf )
   EndIf
Return {}
 
Method DownloadComplete( oAct ) Class Sintegra
   Local cHTTP := oAct:LocationURL
   LoGFile('Sintegra.Txt',{cHTTP})
   LoGFile('cView.Txt',{::cView})

   TRY
     LoGFile('Body.txt',{ oAct:Document:Body:InnerHtml } )
     ::cBody := oAct:Document:Body:InnerHtml
   Catch
   End

   If ( ::cView $ cHTTP ) .or. ::cView == cHTTP
   
   	If At( ::aGru1[1], 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, uUf)
   Local cLine, nLine, nTotal
   Local aReto := {}
   Local cTexto
   Local nPos,nPo1
   Local nPegou:=0
   
   If ValType(cSintegra)=="U"
      Return Nil
   Endif
   
   Default cUf := ''
   
   //Retira Comentários do html
   If ! cUF $ "BA,MT"
      While (nPos := At("<!--",cSintegra)) > 0
         nPo1      := At("-->",cSintegra)
         cTexto    := SubStr(cSintegra,nPos,(nPo1-nPos)+3)
         cSintegra := StrTran(cSintegra,cTexto,"")
      Enddo
   Else
      While (nPos := At("<!--%",cSintegra)) > 0
         nPo1 := At("%-->",cSintegra)
         cTexto := SubStr(cSintegra,nPos,(nPo1-nPos)+4)
         cSintegra := StrTran(cSintegra,cTexto,"")
      Enddo
   Endif
   
 	cSintegra := StrTran(cSintegra,"INFORMAÇÕES COMPLEMENTARES")
 	cSintegra := StrTran(cSintegra,".::ENDEREÇO")
   
   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

      If cUf == "MS"
         cLine := Alltrim(MemoLine(cSintegra,,nLine))
         For k=1 TO Len( aGru2 )
            If aGru2[k] $ cLine
               cTexto := AlLTrim( SubStr( cLine, Len(aGru2[k])+1 ) )
               AaDd(aReto,RemoveChar(cTexto,{[.],[-],[/],[:]}))
               AAdd(aPegaCampo, aGru2[k])
            EndIf
         NEXT
      Else
      	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)
               AAdd(aPegaCampo, cLine)
      			cTexto := AlLTrim(Right(cTexto,Len(cTexto)-nPos))
      		Endif
   
            If cUf="MG" .and. nPegou>2 .and. "Situação Cadastral:" $ cLine
         		// Não repassar
            Else
               AaDd(aReto,RemoveChar(cTexto,{[.],[-],[/],[:]}))
               AAdd(aPegaCampo, cLine)
               If cUf="MG" .and. "Situação Cadastral:" $ cLine
                  nPegou:=nPegou+1
               Endif
            Endif
   
      	Endif
  	   Endif
   Next nLine 
Return(aReto)
 
Static Function StripHTML( cHtml )
   Local cString:= RemoveChar( cHTML, {"&","amp;","nbsp;",'<!-- ',' -->','<--','-->','||','\/','<!--%','%-->',[/\]} )
   Local aMatch := HB_RegExAll("\<[^\>]*\>", cString)
   Aeval(aMatch,{|a|cString:=StrTran(cString,a[1])} )
   cString:=StrTran(cString,chr(10)+chr(13) )
   LoGFile('StripHTML.Txt',{cString})
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
 			cTextoNew += cLine + If (nNum<nLines,CRLF,"")
   	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 Function 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/",;
         "",;
         {"IDENTIFICAÇÃO","Os dados acima são baseados em"},;
         {,;
         "Data da Consulta:",;
         "Número da Consulta:",;
         "CNPJ:",;
         "Inscrição Estadual:",;
         "UF:",;
         "Razão Social:",;
         "Logradouro:",;
         "Número:",;
         "Complemento:",;
         "Bairro:",;
         "UF:",;
         "Município:",;
         "CEP:",;
         "Endereço Eletrônico:",;
         "Telefone:",;
         "Atividade Econômica:",;
         "Data da Inscrição Estadual:",;
         "Usuário SEPD :",;
         "Situação Cadastral Atual:",;
         "Data desta Situação Cadastral:",;
         "Condição:",;
         "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:",;
          "Data de Inicio de Atividade:",;
          "Data desta Situação Cadastral:";
   		 } ;
   		}
   
   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:" ;
   		 } ;
   		}

   ElseIf cUF == "MA"
   	aRet := {"http://sistemas.sefaz.ma.gov.br/sintegra/",; //"http://www.sefaz.ma.gov.br/sintegra/",;
   		 "jsp/consultaSintegra/consultaSintegraFiltro.jsf",;
   		 "", ; //"result.asp",;
   		 {"IDENTIFICAÇÃO","Os dados acima estão baseados em"},;
   		 {"CGC:",;
   		 "Inscrição Estadual:",;
   		 "Razão Social:",;
   		 "Logradouro:",;
   		 "Número:",;
   		 "Complemento:",;
   		 "Bairro:",;
   		 "UF:",;
   		 "Município:",;
   		 "CEP:",;
   		 "Telefone:",;
   		 "CNAE Principal:",;
   		 "Situação Cadastral Vigente:",;
   		 "Data desta Situação Cadastral:",;
   		 "Regime Apuração:" ;
   		 } ;
   		}
   
   ElseIf cUF == "MG"
   	aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",;       
   		 "",;                                                                 
   		 "ctrl/SINTEGRA/SINTEGRA/CONSULTA_707",;                              
   		 {"Dados Principais",NIL},;                                           
   		 {"CNPJ:",;                                                           
   		 "Inscrição Estadual:",;                                              
   		 "Nome Empresarial:",;                                                
   		 "Logradouro:",;                                                      
   		 "Número:",;                                                          
   		 "Complemento:",;                                                     
   		 "Bairro:",;                                                          
   		 "Município:",;                                                       
   		 "UF:",;                                                              
   		 "CEP:",;                                                             
   		 "Telefone:",;                                                        
   		 "Atividade Econômica:",;                                             
   		 "CNAE-F Principal:",;                                                
   		 "Situação Cadastral:",;                                        
   		 "Data Situação Cadastral:",;                                      
   		 "Regime de Recolhimento:";                                       
   		 } ;
   		}
   
   ElseIf cUF == "MS"
      aRet := {"http://www1.sefaz.ms.gov.br/cadastro",;
         "/CadastroMsCCI.asp",;
         "/ResultadoCCI.asp?INSCRICAO",;
         {"SECRETARIA DE ESTADO DE FAZENDA",NIL},;
         {"CNPJ",;
         "INSCRIÇÃO ESTADUAL",;
         "RAZÃO SOCIAL/NOME",;
         "LOGRADOURO",;
         "NÚMERO",;
         "COMPLEMENTO",;
         "BAIRRO",;
         "MUNICÍPIO",;
         "UF",;
         "CEP",;
         "Telefone:",;
         "DESCRIÇÃO DA ATIVIDADE ECONÔMICA",;
         "MOTIVO DA SITUAÇÃO CADASTRAL",;
         "DATA DA ÚLTIMA ATUALIZAÇÃO";
         } ;
        }
   
   ElseIf cUF == "MT"
   ElseIf cUF == "PA"
   	aRet := {"https://app.sefa.pa.gov.br/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:" ;
   		 } ;
   		}
   
   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ã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 de ICMS:" ;
   		 } ;
   		}
   ElseIf cUF == "RN"
//   	aRet := {"http://www.sintegra.fazenda.pr.gov.br/",;
      aRet := {"http://www.set.rn.gov.br/uvt/consultacontribuinte.aspx",;
          "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:" ;
   		 } ;
   		}
   
   ElseIf cUF == "RO"
//   	aRet := {"http://portal.intranet.sefin.ro.gov.br/PortalContribuinte/",;
      aRet := {"http://www.sefin.ro.gov.br/sint_consul.asp",;
   		 "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"
   	aRet := {"https://www.sefaz.rr.gov.br/sintegra/",;
   		 "servlet/hwsintco",;
   		 "servlet/hwsintpe?",;
   		 {".::IDENTIFICAÇÃO",nil},;
   		 {"CNPJ:",;
   		 "Inscrição Estadual",;
   		 "Razão Social:",;
   		 "Logradouro:",;
   		 "Número:",;
   		 "Complemento:",;
   		 "Bairro:",;
   		 "Município:",;
   		 "UF:",;
   		 "CEP:",;
   		 "Telefone:",;
   		 "Ativ. Enonômica:",;
   		 "Sit.Cad. Vigente:",;
   		 "Dta.Sit.Cadastral:";
   		 } ;
   		}
   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:",;
   		 "Município:",;
   		 "UF:",;
   		 "CEP:",;
   		 "Telefone:",;
   		 "Código e Descrição da Atividade Econômica Principal :",; // "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
Return(aRet)

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

Att.

Herberson Gontijo

Ponteware Informática Ltda.

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