SAOliveira Posted November 28, 2013 Report Share Posted November 28, 2013 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. Observe "Dara da Consulta:' Marque o texto e agregue a sua rotina do estado. Vai ficar assim como acima "code" Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 28, 2013 Report Share Posted November 28, 2013 Fiz igual a tela do Sintegra de MG, mas não deu!!! (risos) ElseIf cUF == "MG" aRet := {"http://consultasintegra.fazenda.mg.gov.br/sintegra/",; // "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:" ; } ; } Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 28, 2013 Report Share Posted November 28, 2013 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" Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted November 29, 2013 Report Share Posted November 29, 2013 Blz. Señores, testei e funciona de boa Kapi, traduz na integra, ta funcionando todos os estados "de boa" ? Outra, de uma olhada em DEFINE CLIPBOARD, não testei, se atender, poste como fez. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 29, 2013 Report Share Posted November 29, 2013 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. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 29, 2013 Report Share Posted November 29, 2013 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) Quote Link to comment Share on other sites More sharing options...
Valdir Posted November 29, 2013 Report Share Posted November 29, 2013 Olá pessoal... Tem como salvar as informações num Banco de Dados todas as vezes que realizar uma consulta ? Obrigado. Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted November 29, 2013 Report Share Posted November 29, 2013 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 Quote Link to comment Share on other sites More sharing options...
Valdir Posted November 29, 2013 Report Share Posted November 29, 2013 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. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 29, 2013 Report Share Posted November 29, 2013 Luiz Fernando, Você pode nos passar a sua função que pega o retorno dos estados? Só estou conseguindo de São Paulo. Obrigado, Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted November 29, 2013 Report Share Posted November 29, 2013 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 Quote Link to comment Share on other sites More sharing options...
sistem Posted November 29, 2013 Report Share Posted November 29, 2013 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." Quote Link to comment Share on other sites More sharing options...
miragerr Posted November 29, 2013 Report Share Posted November 29, 2013 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" //----------------------------------------------------------------------------------------------------------------------// Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 29, 2013 Report Share Posted November 29, 2013 Legal, vlw! funcionou agora para MG... agora só uma coisa, ele demora para fechar a janela que contem os dados e retornar as informações.... Tem algum lugar que possa mudar este tempo??? Obrigado! Quote Link to comment Share on other sites More sharing options...
miragerr Posted November 30, 2013 Report Share Posted November 30, 2013 Ola amigo Fiz alguns controles como relatei acima, mais aqui comigo vai rápidinho. Qual parte que esta demorando. Fico no aguardo Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted November 30, 2013 Report Share Posted November 30, 2013 Senhores, se permitem uma sugestão. Os que conseguirem consultar e pegar o retorno postar a solução e o retorno. Desta forma poderíamos ir eliminando e repassando as UFs. Detalhe: postar só a parte que foi alterada/adequada. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted November 30, 2013 Report Share Posted November 30, 2013 Segue uma tabela que fiz para facilitar os testes: ESTADO CNPJAC 07358761021670AL 24487886000108AM 00280273000137BA 01718478000114CE 01591524000167DF 32440901003025ES 28053619001740GO 54567656000110MA 03062748000107MG 16716417000195MS 07835806000220MT 03790841000138PA 63878250000149PB 41137225000171PE 23637697006738PI 03751615000148PR 01275430000189RJ 33252156000119RN 33000167000969RO 09502005000197RS 87821278000108SC 80659238000162SE 01491090000123SP 02790893000222TO 17262213011200 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 30, 2013 Report Share Posted November 30, 2013 Boa Tarde! Na verdade não sei o que aconteceu, pois agora esta funcionando, ou seja, fechando a janela e retornando as informações.... Vlw!!!! Ola amigo Fiz alguns controles como relatei acima, mais aqui comigo vai rápidinho. Qual parte que esta demorando. Fico no aguardo Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 30, 2013 Report Share Posted November 30, 2013 Ola amigo Fiz alguns controles como relatei acima, mais aqui comigo vai rápidinho. Qual parte que esta demorando. Fico no aguardo Boa Tarde! Na verdade não sei o que aconteceu, pois agora esta funcionando, ou seja, fechando a janela e retornando as informações.... Vlw!!!! Quote Link to comment Share on other sites More sharing options...
oribeiro Posted December 2, 2013 Report Share Posted December 2, 2013 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, Quote Link to comment Share on other sites More sharing options...
vagner Posted December 2, 2013 Report Share Posted December 2, 2013 Olá,Vc alterou o local para o retorno ?, aquele array que precisa mudar por causa da página ? Veja que no site do AC, foi criado um <span>, então vc precisa olha isso tb fica a dica Quote Link to comment Share on other sites More sharing options...
oribeiro Posted December 2, 2013 Report Share Posted December 2, 2013 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, Quote Link to comment Share on other sites More sharing options...
vagner Posted December 2, 2013 Report Share Posted December 2, 2013 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. Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted December 2, 2013 Report Share Posted December 2, 2013 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:"; } ; } Quote Link to comment Share on other sites More sharing options...
HERGON Posted December 5, 2013 Author Report Share Posted December 5, 2013 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.