Consulta optante do simples online
Enviado: 18 Nov 2016 17:06
Valeu Daniel, coloquei aqui e baixou os lotes... :-Y
Código: Selecionar todos
MEMVAR ACOBR, I, cInfCpl, cInfAdFisco, cDigVal, cChave, cVerAplic, cTpAmb, c_Span
MEMVAR cVersao, cArqXml, cIniFolder, nArqHandle, cxMotivo, ccStat, cnProt, cPart_
MEMVAR cDhRecbto, cTag, cTagPai, nIni, nFimTagPai, aTotais, cDiscAdicional, nContador
MEMVAR P_, aDet, aPis, aTransp, aCofins, aIpi, lpOemTag, cTag_, aIcms, aTrib, nSoma
MEMVAR aMedicamentos, aEmit, aDest, aIde, c_Tag, cPar_, nTamTag, cPar1_, nFim, cFile
MEMVAR cParte, Contador, nTotPro, cHtml, cPart, cStringCookie, cViewState, cViewStateGenerator
MEMVAR nFim3, cHiddenToken, nIni4, cHtml1, nFim4, Txt_File, cCodigo, ceEventValidation
MEMVAR nIni1, nFim1, nIni2, nFim2, nIni3, cHiddenSom, cUrl, cUrl1, oServer, nInie, nFime, cUrl2
MEMVAR cMsgErro
Código: Selecionar todos
Compiling 'baixaimpnfe.prg'...
baixaimpnfe.prg(486) Warning W0032 Variable 'CRET' is assigned but not used in function 'CONTINUAR(125)'
1300
No code generated.
Código: Selecionar todos
cRet := oInternet:ReadAll()
Código: Selecionar todos
FUNCTION GeraBlocoIde( cParte )
cPar_ := StrTran( cFile, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( '<legend>Informações Complementares de Interesse do Contribuinte</legend>', cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni + 70 )
nIni := At( '<div style="word-wrap: break-word">', c_span )
c_span := SubStr( c_span, nIni + 35 )
nIni := At( '</div></span>', c_span )
cinfCpl := AllTrim( SubStr( c_span, 1, nIni - 1 ) )
ENDIF
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( 'Situação Atual:', cPar_ )
c_span := SubStr( cPar_, nIni + 15 )
nIni := At( '(Ambiente de autorização:', c_span )
cxMotivo := AllTrim( SubStr( c_span, 1, nIni - 1 ) )
IF "AUTORIZADA" $ cxMotivo
ccStat := "100"
cxMotivo := "Autorizado o uso da NF-e"
ENDIF
IF "CANCELADA" $ cxMotivo
ccStat := "101"
cxMotivo := "Cancelamento de NF-e homologado"
ENDIF
nIni := At( 'Data Inclusão AN</label></td></tr><tr><td><span>', cPar_ )
c_span := SubStr( cPar_, nIni + 50 )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '<input', c_span ) - nIni
cnProt := AllTrim( SubStr( c_span, nIni, nTamTag ) )
c_span := SubStr( c_span, nIni + nTamTag )
nIni := At( '<span>', c_span ) + 6
c_span := SubStr( c_span, nIni )
nTamTag := At( '</span>', c_span ) -1 // nIni
cdhRecbto := AllTrim( SubStr( c_span, 1, nTamTag ) )
cdhRecbto := SubStr( cdhRecbto, 7, 4 ) + "-" + SubStr( cdhRecbto, 4, 2 ) + "-" + Left( cdhRecbto, 2 ) + "T" + Right( cdhRecbto, 14 )
nIni := At( '<i>Digest</i> Value da NF-e', cPar_ )
c_span := SubStr( cPar_, nIni + 20 )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
cdigVal := AllTrim( SubStr( c_span, nIni, nTamTag ) )
nIni := At( 'Versão XML', cParte )
c_span := SubStr( cParte, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
cVersao := AllTrim( SubStr( c_span, nIni, nTamTag ) )
FOR i := 1 TO Len( aIde[ 1 ] )
cPar_ := cParte
IF i == 12
cPar_ := cFile
ENDIF
IF i == 13
cPar_ := cFile
ENDIF
nIni := At( aIde[ 1, i, 5 ], cPar_ )
c_span := SubStr( cPar_, nIni )
IF i != 16
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
ELSE
nIni := At( '</legend>', c_span )
c_tag := AllTrim( SubStr( c_span, 1, nIni - 1 ) )
IF At( 'produção', c_tag ) > 0
c_tag := "1"
ELSE
c_tag := "2"
ENDIF
ctpAmb := c_tag
ENDIF
IF i == 2
c_tag := SubStr( cChave, 36, 8 )
ENDIF
IF i == 8 .OR. i == 9
IF !Empt( c_tag )
c_tag := SubStr( c_tag, 7, 4 ) + "-" + SubStr( c_tag, 4, 2 ) + "-" + Left( c_tag, 2 ) + "T" + SubStr( c_tag, 12 )
ENDIF
ENDIF
IF i == 15
c_tag := Right( c_tag, 1 )
ENDIF
IF aIde[ 1, i, 6 ] != 0
IF aIde[ 1, i, 6 ] > 0
c_tag := Left( c_tag, aIde[ 1, i, 6 ] )
ELSE
c_tag := SubStr( c_tag, Abs( aIde[ 1, i, 6 ] ) + 1 )
ENDIF
ENDIF
aIde[ 1, i, 1 ] := c_tag
IF i == 21
cverAplic := c_tag
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoEmit( cParte )
FOR i := 1 TO Len( aEmit[ 1 ] )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( aEmit[ 1, i, 5 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF i >= 1 .AND. i <= 2
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, "/", "" )
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF i >= 5 .AND. i <= 7
nIni := At( ",,", c_tag )
IF nIni == 0
nIni := At( ",", c_tag )
ENDIF
IF i == 5
c_tag := Left( c_tag, nIni - 1 ) // xlg
ELSEIF i == 6
c_tag := AllTrim( SubStr( c_tag, nIni + 2 ) )
nIni := At( " ", c_tag )
IF nIni > 0
c_tag := Left( c_tag, nIni - 1 ) // nro
ENDIF
ELSE
c_tag := AllTrim( SubStr( c_tag, nIni + 2 ) )
nIni := At( " ", c_tag )
IF nIni > 0
c_tag := AllTrim( SubStr( c_tag, nIni + 1 ) ) // xcpl
ELSE
c_tag := ""
ENDIF
ENDIF
ENDIF
IF i == 12
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF i == 15
c_tag := StrTran( c_tag, "(", "" )
c_tag := StrTran( c_tag, ")", "" )
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF aEmit[ 1, i, 6 ] != 0
IF aEmit[ 1, i, 6 ] > 0
c_tag := Left( c_tag, aEmit[ 1, i, 6 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aEmit[ 1, i, 6 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
aEmit[ 1, i, 1 ] := c_tag
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoDest( cParte )
FOR i = 1 TO Len( aDest[ 1 ] )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( aDest[ 1, i, 5 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) -nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF i >= 1 .AND. i <= 2
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, "/", "" )
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF i >= 5 .AND. i <= 7
nIni := At( ",,", c_tag )
IF nIni == 0
nIni := At( ",", c_tag )
ENDIF
IF i == 5
c_tag := Left( c_tag, nIni - 1 )
ELSEIF i == 6
c_tag := AllTrim( SubStr( c_tag, nIni + 2 ) )
nIni := At( " ", c_tag )
IF nIni > 0
c_tag := Left( c_tag, nIni - 1 )
ENDIF
ELSE
c_tag := AllTrim( SubStr( c_tag, nIni + 2 ) )
nIni := At( " ", c_tag )
IF nIni > 0
c_tag := AllTrim( SubStr( c_tag, nIni + 1 ) )
ELSE
c_tag := ""
ENDIF
ENDIF
ENDIF
IF i == 12
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF i == 15
c_tag := StrTran( c_tag, "(", "" )
c_tag := StrTran( c_tag, ")", "" )
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF i == 16
c_tag := AllTrim( Str( Val( c_tag ) ) )
ENDIF
IF aDest[ 1, i, 6 ] != 0
IF aDest[ 1, i, 6 ] > 0
c_tag := Left( c_tag, aDest[ 1, i, 6 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aDest[ 1, i, 6 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
aDest[ 1, i, 1 ] := c_tag
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoDet( cParte )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cParT_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( '<td class="fixo-prod-serv-numero"><span>1', cParT_ )
nfim := At( '<td class="fixo-prod-serv-numero"><span>2', cParT_ ) - nIni
IF nFim == 0
cPar_ := SubStr( cParT_, nIni )
ELSE
cPar_ := SubStr( cParT_, nIni, nFim )
ENDIF
FOR p_ := 1 TO Len( aDet )
FOR i := 1 TO Len( aDet[ p_ ] )
nIni := At( aDet[ p_, i, 3 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) -nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aDet[ p_, i, 4 ] != 0
IF aDet[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aDet[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aDet[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
IF i != 3 .AND. i != 1
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
ENDIF
aDet[ p_, i, 1 ] := c_tag
ENDIF
NEXT
FOR i := 1 TO Len( aTrib[ p_ ] )
nIni := At( aTrib[ p_, i, 3 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aTrib[ p_, i, 4 ] != 0
IF aTrib[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aTrib[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aTrib[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aTrib[ p_, i, 1 ] := c_tag
ENDIF
NEXT
nIni := At( '<fieldset><legend>ICMS Normal e ST</legend>', cPar_ )
IF nIni > 0
cPar1_ := SubStr( cPar_, nIni, At( '<legend class="toggle">PIS</legend>', cPar_ ) -nIni )
FOR i := 1 TO Len( aICMS[ p_ ] )
nIni := At( aICMS[ p_, i, 3 ], cPar1_ )
IF nIni > 0
c_span := SubStr( cPar1_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aICMS[ p_, i, 4 ] != 0
IF aICMS[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aICMS[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aICMS[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aICMS[ p_, i, 1 ] := c_tag
ENDIF
NEXT
ENDIF
nIni := At( '<legend>Imposto Sobre Produtos Industrializados</legend>', cPar_ )
IF nIni > 0
cPar1_ := SubStr( cPar_, nIni, At( '<legend class="toggle">PIS</legend>', cPar_ ) -nIni )
FOR i := 1 TO Len( aIPI[ p_ ] )
nIni := At( aIPI[ p_, i, 3 ], cPar1_ )
IF nIni > 0
c_span := SubStr( cPar1_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aIPI[ p_, i, 4 ] != 0
IF aIPI[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aIPI[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aIPI[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aIPI[ p_, i, 1 ] := c_tag
ENDIF
NEXT
ENDIF
nIni := At( '<legend class="toggle">PIS</legend>', cPar_ )
IF nIni > 0
cPar1_ := SubStr( cPar_, nIni, At( '<legend class="toggle">COFINS</legend>', cPar_ ) -nIni )
FOR i := 1 TO Len( aPIS[ p_ ] )
nIni := At( aPIS[ p_, i, 3 ], cPar1_ )
IF nIni > 0
c_span := SubStr( cPar1_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aPIS[ p_, i, 4 ] != 0
IF aPIS[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aPIS[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aPIS[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aPIS[ p_, i, 1 ] := c_tag
ENDIF
NEXT
ENDIF
nIni := At( '<legend class="toggle">COFINS</legend>', cPar_ )
IF nIni > 0
cPar1_ := SubStr( cPar_, nIni )
FOR i := 1 TO Len( aCOFINS[ p_ ] )
nIni := At( aCOFINS[ p_, i, 3 ], cPar1_ )
IF nIni > 0
c_span := SubStr( cPar1_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aCOFINS[ p_, i, 4 ] != 0
IF aCOFINS[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aCOFINS[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aCOFINS[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aCOFINS[ p_, i, 1 ] := c_tag
ENDIF
NEXT
ENDIF
nIni := At( '<legend>Detalhamento específico dos medicamentos</legend>', cPar_ )
IF nIni > 0
cPar1_ := SubStr( cPar_, nIni )
FOR i := 1 TO Len( aMedicamentos[ p_ ] )
nIni := At( aMedicamentos[ p_, i, 3 ], cPar1_ )
IF nIni > 0
c_span := SubStr( cPar1_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) - nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF aMedicamentos[ p_, i, 4 ] != 0
IF aMedicamentos[ p_, i, 4 ] > 0
c_tag := Left( c_tag, aMedicamentos[ p_, i, 4 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aMedicamentos[ p_, i, 4 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
IF i != 6
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
ENDIF
IF StrZero( i, 2 ) $ "-03-04"
c_tag := SubStr( c_tag, 7, 4 ) + "-" + SubStr( c_tag, 4, 2 ) + "-" + Left( c_tag, 2 )
ENDIF
aMedicamentos[ p_, i, 1 ] := c_tag
ENDIF
NEXT
ENDIF
IF p_ == ( Len( aDet ) -1 )
nIni := At( '<td class="fixo-prod-serv-numero"><span>' + AllTrim( Str( p_ + 1 ) ), cParT_ )
cPar_ := SubStr( cParT_, nIni )
ELSE
nIni := At( '<td class="fixo-prod-serv-numero"><span>' + AllTrim( Str( p_ + 1 ) ), cParT_ )
nFim := At( '<td class="fixo-prod-serv-numero"><span>' + AllTrim( Str( p_ + 2 ) ), cParT_ ) - nIni
IF nFim == 0
cPar_ := SubStr( cParT_, nIni )
ELSE
cPar_ := SubStr( cParT_, nIni, nFim )
ENDIF
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoTotais( cParte )
FOR i := 1 TO Len( aTotais[ 1 ] )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( aTotais[ 1, i, 3 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) -nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
aTotais[ 1, i, 1 ] := c_tag
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoTransp( cParte )
FOR i := 1 TO Len( aTransp[ 1 ] )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
nIni := At( aTransp[ 1, i, 5 ], cPar_ )
IF nIni > 0
c_span := SubStr( cPar_, nIni )
nIni := At( '<span>', c_span ) + 6
nTamTag := At( '</span>', c_span ) -nIni
c_tag := AllTrim( SubStr( c_span, nIni, nTamTag ) )
IF i >= 2 .AND. i <= 3
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, "/", "" )
c_tag := StrTran( c_tag, "-", "" )
ENDIF
IF aTransp[ 1, i, 6 ] != 0
IF aTransp[ 1, i, 6 ] > 0
c_tag := Left( c_tag, aTransp[ 1, i, 6 ] )
ELSE
c_tag := AllTrim( SubStr( c_tag, Abs( aTransp[ 1, i, 6 ] ) + 1 ) )
c_tag := AllTrim( StrTran( c_tag, "-", "" ) )
ENDIF
ENDIF
aTransp[ 1, i, 1 ] := c_tag
ENDIF
NEXT
RETURN NIL
FUNCTION GeraBlocoCobr( cParte )
cPar_ := StrTran( cParte, Chr( 13 ) + Chr( 10 ), "" )
cPar_ := StrTran( cPar_, Chr( 160 ), "" )
FOR i := 1 TO Len( aCobr[ 1 ] )
nIni := At( '<span>', cPar_ )
IF nIni > 0
cPar_ := SubStr( cPar_, nIni + 6 )
nTamTag := At( '</span>', cPar_ ) -1
c_tag := AllTrim( SubStr( cPar_, 1, nTamTag ) )
c_tag := StrTran( c_tag, ".", "" )
c_tag := StrTran( c_tag, ",", "." )
IF StrZero( i, 2 ) $ "-02-05-08-11-14-17-20-23-26-29"
c_tag := SubStr( c_tag, 7, 4 ) + "-" + SubStr( c_tag, 4, 2 ) + "-" + Left( c_tag, 2 )
ENDIF
aCobr[ 1, i, 1 ] := c_tag
ELSE
EXIT
ENDIF
NEXT
RETURN NIL
Código: Selecionar todos
#INCLUDE "MAXXTECH.CH"
#INCLUDE "IMAGE.CH"
#INCLUDE "FILEIO.CH"
********************************************************************************
FUNCTION DADOSCNPJ( cCNPJ )
********************************************************************************
PRIVATE cCAPTCHA := SPACE(06)
PRIVATE cTIPO := SPACE(10)
PRIVATE cABERTURA := SPACE(10)
PRIVATE cFANTASIA := SPACE(44)
PRIVATE cRSOCIAL := SPACE(78)
PRIVATE cENDERECO := SPACE(70)
PRIVATE nNUMERO := 0
PRIVATE cCOMPLEMENT := SPACE(30)
PRIVATE cBAIRRO := SPACE(30)
PRIVATE cCIDADE := SPACE(30)
PRIVATE cUF := SPACE(02)
PRIVATE cCEP := SPACE(09)
PRIVATE cSITUACAO := SPACE(20)
PRIVATE oBtnCANCELAR, oBtnCONFIRMAR, oSayCNPJ, oSayCNPJ2
PRIVATE oSayNASCIMENTO2, oSayCAPTCHA, oGetCAPTCHA, oBtnPESQUISACPF
PRIVATE oGrpDADOSCNPJ, oImgCAPTCHA, oGrpCLIENTE, oGrpCAPTCHA, oGrpDADOS
PRIVATE oSayNOME, oGetNOME, oSayABERTURA, oGetABERTURA, oSayFANTASIA
PRIVATE oGetFANTASIA, oSayENDERECO, oGetENDERECO, oSayCOMPLEMENT, oGetCOMPLEMENT
PRIVATE oSayRSOCIAL, oGetRSOCIAL, oSayNUMERO, oGetNUMERO
PRIVATE cURL := "http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida.asp"
PRIVATE cURLC := "http://www.receita.fazenda.gov.br/Pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp?"
PRIVATE cURL2 := "http://www.receita.fazenda.gov.br/Pessoajuridica/cnpj/cnpjreva/Cnpjreva_solicitacao2.asp?"
PRIVATE cStringCookie, cViewState, cEeventValidation, cHiddenField, cCookie, cCookie1
DEFINE CURSOR oCurHAND RESOURCE "MAO"
DEFINE DIALOG oDlgCNPJ FROM 0,0 TO 670,860 FONT TTF_COURIER_NEW PIXEL STYLE nOr( WS_POPUP|DS_MODALFRAME|WS_VISIBLE )
@ 000,000 TITLE oTitle2 OF oDlgCNPJ SIZE 349,28 NOBORDER PIXEL
oTitle2:aGrdBack := { { 1, 8388608, 8388608 }, { 0.5, 16312263, 16770250 } }
oTitle2:nShadow := 0
@ 013,020 TITLEIMG OF oTitle2 BITMAP "TIT_CLIENTES" SIZE 052,052
@ 020,090 TITLETEXT OF oTitle2 TEXT "Consulta Cadastro de CNPJ" COLOR 16777215 FONT ARIAL14B
@ 040,090 TITLETEXT OF oTitle2 TEXT "CNPJ" COLOR 14591785 FONT ARIAL16B
@ 002,360 BITMAP oBtnCANCELAR RESOURCE "BTN_CANCELAR" SIZE 026,026 OF oDlgCNPJ PIXEL NOBORDER
TOOLTIPNEW(oBtnCANCELAR,"Cancelar consulta do CNPJ","Cancelar")
oBtnCANCELAR:oCursor := oCurHAND
oBtnCANCELAR:bLClicked := {||lSair2:=.T.,oDlgCNPJ:END()}
@ 002,395 BITMAP oBtnCONFIRMAR RESOURCE "BTN_CONFIRMAR" SIZE 026,026 OF oDlgCNPJ PIXEL NOBORDER
TOOLTIPNEW(oBtnCONFIRMAR,"Confirmar inclusão dos dados","Confirmar")
oBtnCONFIRMAR:bLClicked := {||lSair2:=.T.,oDlgCNPJ:END()}
oBtnCONFIRMAR:oCursor = oCurHAND
@ 045,008 SAY oSayCNPJ PROMPT "NÚMERO CNPJ" OF oDlgCNPJ SIZE 120,017 PIXEL TRANSPARENT FONT TTF_COURIER_RECEITA ; oSayCNPJ:nStyle := nOR( oSayCNPJ:nStyle, SS_CENTERIMAGE )
@ 045,095 SAY oSayCNPJ2 VAR TRANSFORM(cCNPJ,"@R 99.999.999/9999-99") OF oDlgCNPJ SIZE 135,017 PIXEL TRANSPARENT FONT TTF_COURIER_RECEITA COLORS nRGB(000,000,255) ; oSayCNPJ2:nStyle := nOR( oSayCNPJ2:nStyle, SS_CENTERIMAGE )
@ 068,008 SAY oSayCAPTCHA PROMPT "CARACTERES CAPTCHA" OF oDlgCNPJ SIZE 140,017 PIXEL TRANSPARENT FONT TTF_COURIER_RECEITA ; oSayCAPTCHA:nStyle := nOR( oSayCAPTCHA:nStyle, SS_CENTERIMAGE )
@ 068,158 GET oGetCAPTCHA VAR cCAPTCHA PICTURE "!!!!!!" OF oDlgCNPJ SIZE 050,017 PIXEL COLORS nRGB(000,000,255) FONT TTF_COURIER_RECEITA
@ 068,212 BTNBMP oBtnPESQUISACPF RESOURCE "BTN_PESQUISA_RECEITA" OF oDlgCNPJ SIZE 20,20 PIXEL ACTION CONSULTA(cCNPJ, cCaptcha, cCookie1) NOBORDER TRANSPARENT
TOOLTIPNEW(oBtnPESQUISACPF,"Pesquisar dados no site da Receita Federal","Pesquisar")
oBtnPESQUISACPF:oCursor = oCurHAND
oBtnPESQUISACPF:nStyle := nAnd( oBtnPESQUISACPF:nStyle, nNot( WS_TABSTOP ) )
@ 033,003 GROUP oGrpDADOSCNPJ OF oDlgCNPJ COLOR nRGB(000,000,255) SIZE 230,060 PIXEL TRANSPARENT
@ 040,241 IMAGE oImgCAPTCHA SIZE 185,052 FILENAME "CAPTCHA\CAPTCHA.PNG" OF oDlgCNPJ PIXEL ADJUST NOBORDER
TOOLTIPNEW(oImgCAPTCHA,"Clique para trocar a imagem","Captcha")
oImgCAPTCHA:oCursor := oCurHAND
oImgCAPTCHA:bLClicked := {||MAXXINFO()}
@ 033,238 GROUP oGrpCAPTCHA OF oDlgCNPJ COLOR nRGB(000,000,255) SIZE 190,060 PIXEL TRANSPARENT
@ 095,003 GROUP oGrpDADOS PROMPT "Dados Recebidos da Receita" OF oDlgCNPJ COLOR nRGB(000,000,255) SIZE 424,086 PIXEL TRANSPARENT
@ 105,008 SAY oSayTIPO PROMPT "Tipo" OF oDlgCNPJ SIZE 080,012 PIXEL TRANSPARENT ; oSayTIPO:nStyle := nOR( oSayTIPO:nStyle, SS_CENTERIMAGE )
@ 105,030 GET oGetTIPO VAR cTIPO PICTURE "@!" OF oDlgCNPJ SIZE 050,012 PIXEL COLORS nRGB(000,000,255)
@ 105,085 SAY oSayABERTURA PROMPT "Abertura" OF oDlgCNPJ SIZE 080,012 PIXEL TRANSPARENT ; oSayABERTURA:nStyle := nOR( oSayABERTURA:nStyle, SS_CENTERIMAGE )
@ 105,125 GET oGetABERTURA VAR cABERTURA PICTURE "@!" OF oDlgCNPJ SIZE 050,012 PIXEL COLORS nRGB(000,000,255)
@ 105,180 SAY oSayFANTASIA PROMPT "Fantasia" OF oDlgCNPJ SIZE 080,012 PIXEL TRANSPARENT ; oSayFANTASIA:nStyle := nOR( oSayFANTASIA:nStyle, SS_CENTERIMAGE )
@ 105,220 GET oGetFANTASIA VAR cFANTASIA PICTURE "@!" OF oDlgCNPJ SIZE 203,012 PIXEL COLORS nRGB(000,000,255)
@ 120,008 SAY oSayRSOCIAL PROMPT "Razão Social" OF oDlgCNPJ SIZE 080,012 PIXEL TRANSPARENT ; oSayRSOCIAL:nStyle := nOR( oSayRSOCIAL:nStyle, SS_CENTERIMAGE )
@ 120,065 GET oGetRSOCIAL VAR cRSOCIAL PICTURE "@!" OF oDlgCNPJ SIZE 358,012 PIXEL COLORS nRGB(000,000,255)
@ 135,008 SAY oSayENDERECO PROMPT "Endereço" OF oDlgCNPJ SIZE 070,012 PIXEL TRANSPARENT ; oSayENDERECO:nStyle := nOR( oSayENDERECO:nStyle, SS_CENTERIMAGE )
@ 135,047 GET oGetENDERECO VAR cENDERECO PICTURE "@!" OF oDlgCNPJ SIZE 320,012 PIXEL COLORS nRGB(000,000,255)
@ 135,370 SAY oSayNUMERO PROMPT "N°" OF oDlgCNPJ SIZE 020,012 PIXEL TRANSPARENT ; oSayNUMERO:nStyle := nOR( oSayNUMERO:nStyle, SS_CENTERIMAGE )
@ 135,382 GET oGetNUMERO VAR nNUMERO PICTURE "99999999" OF oDlgCNPJ SIZE 041,012 PIXEL COLORS nRGB(000,000,255)
@ 150,008 SAY oSayCOMPLEMENT PROMPT "Complemento" OF oDlgCNPJ SIZE 150,012 PIXEL TRANSPARENT ; oSayCOMPLEMENT:nStyle := nOR( oSayCOMPLEMENT:nStyle, SS_CENTERIMAGE )
@ 150,060 GET oGetCOMPLEMENT VAR cCOMPLEMENT PICTURE "@!" OF oDlgCNPJ SIZE 140,012 PIXEL COLORS nRGB(000,000,255)
@ 150,252 SAY oSayBAIRRO PROMPT "Bairro" OF oDlgCNPJ SIZE 150,012 PIXEL TRANSPARENT ; oSayBAIRRO:nStyle := nOR( oSayBAIRRO:nStyle, SS_CENTERIMAGE )
@ 150,283 GET oGetBAIRRO VAR cBAIRRO PICTURE "@!" OF oDlgCNPJ SIZE 140,012 PIXEL COLORS nRGB(000,000,255)
@ 165,008 SAY oSayCIDADE PROMPT "Cidade" OF oDlgCNPJ SIZE 150,012 PIXEL TRANSPARENT ; oSayCIDADE:nStyle := nOR( oSayCIDADE:nStyle, SS_CENTERIMAGE )
@ 165,039 GET oGetCIDADE VAR cCIDADE PICTURE "@!" OF oDlgCNPJ SIZE 140,012 PIXEL COLORS nRGB(000,000,255)
@ 165,184 SAY oSayUF PROMPT "UF" OF oDlgCNPJ SIZE 150,012 PIXEL TRANSPARENT ; oSayUF:nStyle := nOR( oSayUF:nStyle, SS_CENTERIMAGE )
@ 165,198 GET oGetUF VAR cUF PICTURE "!!" OF oDlgCNPJ SIZE 014,012 PIXEL COLORS nRGB(000,000,255)
@ 165,218 SAY oSayCEP PROMPT "CEP" OF oDlgCNPJ SIZE 150,012 PIXEL TRANSPARENT ; oSayCEP:nStyle := nOR( oSayCEP:nStyle, SS_CENTERIMAGE )
@ 165,236 GET oGetCEP VAR cCEP PICTURE "@R 99999-999" OF oDlgCNPJ SIZE 046,012 PIXEL COLORS nRGB(000,000,255)
@ 165,288 SAY oSaySITUACAO PROMPT "Situação" OF oDlgCNPJ SIZE 050,012 PIXEL TRANSPARENT ; oSaySITUACAO:nStyle := nOR( oSaySITUACAO:nStyle, SS_CENTERIMAGE )
@ 165,327 GET oGetSITUACAO VAR cSITUACAO PICTURE "@!" OF oDlgCNPJ SIZE 096,012 PIXEL COLORS nRGB(000,000,255)
@ 190,008 ACTIVEX oACTIVEX OF oDlgCNPJ PROGID "Shell.Explorer.2" SIZE 413,138
ACTIVATE DIALOG oDlgCNPJ CENTERED ON PAINT PINTAFUNDO(oDlgCNPJ, hDC) ON INIT PEGACAPTCHA()
RETURN NIL
***************************************************************************************************
STATIC FUNCTION PEGACAPTCHA()
***************************************************************************************************
LOCAL oSERVER, cRETORNO := "*ERRO*", cMSGERRO:= ''
Try
oSERVER:= CreateObject( "MSXML2.ServerXMLHTTP.5.0")
Catch
MAXXINFO('Erro na Criação do Serviço')
RETURN .F.
End
Try
oSERVER:Open( "GET", cUrlc, .f. )
oSERVER:SetRequestHeader("Content-Type", "application/x-www-form-urlencoded" )
oSERVER:SetRequestHeader("Connection", "keep-alive" )
oSERVER:Send()
oSERVER:WaitForResponse( 5000 )
Catch
MAXXINFO('Erro na Conexão com Site')
RETURN .F.
End
c := oSERVER:getResponseHeader("Set-Cookie")
cCOOKIE1:= SUBSTR(c, 1, At(';', c) -1)
cHTML:= oSERVER:ResponseBody
TXT_FILE := FCREATE("CAPTCHA\CAPTCHA.PNG", 0)
IF !FERROR() = 0
MAXXINFO("Erro de criacao do arquivo imagem " + STR(FERROR(), 3, 0))
RETURN NIL
ENDIF
FWRITE(TXT_FILE, cHTML)
FCLOSE(TXT_FILE)
oSERVER:SetProperty('F_Cnpj', 'image_1', 'Picture', 'Captcha.png')
RETURN (cCOOKIE1)
***************************************************************************************************
STATIC FUNCTION CONSULTA(cCNPJ, cCAPTCHA, cCOOK1)
***************************************************************************************************
LOCAL oSERVER, c, cQUERY
Try
oSERVER:= CreateObject("MSXML2.ServerXMLHTTP.5.0")
Catch
MAXXINFO('Erro na Criação do Serviço')
RETURN .F.
End
Try
oSERVER:Open( "GET", cUrl2, .f. )
oSERVER:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
oSERVER:SetRequestHeader( "Connection", "keep-alive" )
oSERVER:SetRequestHeader("Cookie", cCook1)
oSERVER:Send()
oSERVER:WaitForResponse( 5000 )
Catch
MAXXINFO('Erro na Conexão com o Site')
RETURN .F.
End
c := oSERVER:getResponseHeader("Set-Cookie")
cCookie:= SUBSTR(c, 1, AT(';', c) -1)
cQuery:= "origem=comprovante&" +;
"cnpj=" + cCnpj +;
"&txtTexto_captcha_serpro_gov_br=" + cCaptcha +;
"&submit1=Consultar" +;
"&search_type=cnpj"
Try
oSERVER:= CreateObject("MSXML2.ServerXMLHTTP.5.0")
Catch
MAXXINFO('Erro na Criação do Serviço')
RETURN .F.
End
Try
oSERVER:Open( "POST", cUrl, .f. )
oSERVER:SetRequestHeader("Content-Type", "application/x-www-form-urlencoded" )
oSERVER:SetRequestHeader("Connection", "keep-alive" )
oSERVER:SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
oSERVER:SetRequestHeader("Referer", "http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao2.asp")
oSERVER:SetRequestHeader("Accept-Encoding", "gzip, deflate")
oSERVER:SetRequestHeader("Accept-Language", "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3")
oSERVER:SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; rv:44.0) Gecko/20100101 Firefox/44.0")
oSERVER:SetRequestHeader("Cookie", cCook1)
oSERVER:SetRequestHeader("Cookie", 'flag=1')
oSERVER:Send(cQuery)
oSERVER:WaitForResponse( 5000 )
Catch
MAXXINFO('Erro na Conexão com o Site')
RETURN .F.
End
cRETORNO:= oSERVER:ResponseBody
* Elemina a parte de baixa da consulta
nINI1:= AT('<!-- Fim da tabela principal -->', cRETORNO) - 1
nFIM1:= AT('</body>', cRETORNO)
cPARTE:= SUBSTR(cRETORNO, 1, nINI1)
cRETORNO:= cPARTE + SUBSTR(cRETORNO, nFim1)
TXT_FILE:=FCREATE("Resultado.html", 0)
IF !FError() = 0
MAXXINFO("Erro de criação do arquivo de Imagem " + STR(FERROR(), 3, 0))
RETURN .F.
ENDIF
FWRITE(TXT_FILE, cRETORNO)
FCLOSE(TXT_FILE)
oACTIVEX := F_Cnpj.Test.Object
oACTIVEX:Navigate(DiskName() +':' + DirName(DiskName()) + "\Resultado.html")
RETURN NIL
***************************************************************************************************
STATIC FUNCTION PINTAFUNDO(oDlg, hDC, aRect)
***************************************************************************************************
***** POSIÇÕES FILLRECT
***** aRect = {nTop, nLeft, nBottom, nRight}
LOCAL oBrush
DEFAULT aRect := {0,700,059,902}
DEFINE BRUSH oBrush COLOR RGB(000,000,128)
FILLRECT( hDC, aRect, oBrush:hBrush )
RETURN NIL