Consulta optante do simples online
Moderador: Moderadores
Consulta optante do simples online
Valeu Daniel, coloquei aqui e baixou os lotes... :-Y
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Consulta optante do simples online
Refiz o processo e deu certo, devo ter deixado passar algo desapercebido, obrigado pela força.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Consulta optante do simples online
Bom dia...
Esta ocorrendo algo estranho, vejam se entendem...
Ao lançar a entrada o sistema busca via código aki definido o xml ara importar, o primeiro item esta correto xml com DANFE, a partir do segundo item a ordem esta diferente do XML em relação ao DANFE e a partir do Nono item fica completamente estranho.
Segue chave da Nota: 35161157407397000158550010003616391617727938
Esta ocorrendo algo estranho, vejam se entendem...
Ao lançar a entrada o sistema busca via código aki definido o xml ara importar, o primeiro item esta correto xml com DANFE, a partir do segundo item a ordem esta diferente do XML em relação ao DANFE e a partir do Nono item fica completamente estranho.
Segue chave da Nota: 35161157407397000158550010003616391617727938
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Consulta optante do simples online
Arrumei mais um pouco
pela a ultima chave esta bom agora
pela a ultima chave esta bom agora
- Anexos
-
impnfe.prg- consulta xml
- (50.27 KiB) Baixado 208 vezes
Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Consulta optante do simples online
:{ :)Pos
Vlw Daniel
Vlw Daniel
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Consulta optante do simples online
Bom dia...
Vocês resolvem essa parada aí, uai... !!! E você para de achar erros Fladimir !!!! tá até parecendo JAVA... todo dia que entro aqui tem uma versão nova....
:)Pos
É lógico que é brincadeira... continua achando os erros e o Daniel corrigindo e nós usufruindo....
Corrigindo aqui...
Valeu, obrigado...
Rubens
Vocês resolvem essa parada aí, uai... !!! E você para de achar erros Fladimir !!!! tá até parecendo JAVA... todo dia que entro aqui tem uma versão nova....
:)Pos
É lógico que é brincadeira... continua achando os erros e o Daniel corrigindo e nós usufruindo....
Corrigindo aqui...
Valeu, obrigado...
Rubens
"Eu e minha casa servimos ao Senhor e você
"
Consulta optante do simples online
kkkk
Só o Daniel e o Toledo pra entender a rotina... eu até q tento mas me perco... ai posto aki se o Daniel tiver misericórdia de nós ou alguma outra alma q entenda mais da rotina dele nos ajuda se não tamo "frito"... kkk
Mas tamo ai... eu tenho a Dll em paralelo para comparar, mas agora com esta ultima modificação praticamente não vejo diferença da Dll, nas chaves q temos testado.
[]´s
Só o Daniel e o Toledo pra entender a rotina... eu até q tento mas me perco... ai posto aki se o Daniel tiver misericórdia de nós ou alguma outra alma q entenda mais da rotina dele nos ajuda se não tamo "frito"... kkk
Mas tamo ai... eu tenho a Dll em paralelo para comparar, mas agora com esta ultima modificação praticamente não vejo diferença da Dll, nas chaves q temos testado.
[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consulta optante do simples online
Pessoal, usem compilação -w3 -es2.
Baixei essa última rotina.
É uma rotina extraordinária.
Mas ao compilar usando -w3 -es2....
declarei as variáveis do jeito que dava, no início do fonte:
Omiti as partes ref. minigui.
Restou este erro:
Isso se refere a esta linha:
É o retorno de um dos acessos à internet, não usa pra nada, pelo menos aparentemente não.
É provável que o uso de PRIVATE e PUBLIC possa estar escondendo alguma coisa, mas deixou tudo esquisito.
Apenas como sugestão, Isolem as rotinas
- acesso à internet
- tratamento do retorno
assim não prende a lib especifica e da pra todo mundo testar/ajudar.
Baixei essa última rotina.
É uma rotina extraordinária.
Mas ao compilar usando -w3 -es2....
declarei as variáveis do jeito que dava, no início do fonte:
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
Restou este erro:
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()
É provável que o uso de PRIVATE e PUBLIC possa estar escondendo alguma coisa, mas deixou tudo esquisito.
Apenas como sugestão, Isolem as rotinas
- acesso à internet
- tratamento do retorno
assim não prende a lib especifica e da pra todo mundo testar/ajudar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consulta optante do simples online
Segue uma pequena mudança também como sugestão, que divide melhor as coisas.
Isso era uma única rotina enorme com IFs.
Sem ajuste de -w3 -es2.
Neste caso, acaba sendo interessante deixar isso pro final.
Isso era uma única rotina enorme com IFs.
Sem ajuste de -w3 -es2.
Neste caso, acaba sendo interessante deixar isso pro final.
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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Consulta optante do simples online
Ola José Quintas
Ficou melhor de entender.
cRet := oInternet:ReadAll()
esta linha esqueci de apagar, ela era usada para gravar em arquivo
Grato pelo colaboração
Ficou melhor de entender.
cRet := oInternet:ReadAll()
esta linha esqueci de apagar, ela era usada para gravar em arquivo
Grato pelo colaboração
Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Consulta optante do simples online
Ola
Segue ele mudado conforme o José falou e pronto para -w3 -es2
Usando as parte que ele passou
Segue ele mudado conforme o José falou e pronto para -w3 -es2
Usando as parte que ele passou
- Anexos
-
impnfe.prg- baixa xlm da nfe
- (54.18 KiB) Baixado 124 vezes
Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Consulta optante do simples online
Show de bola...
:{ :-Y
Vlw
:{ :-Y
Vlw
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Consulta optante do simples online
E lá vamos nós de novo...
E a culpa dessa vez não foi sua Fladimir... !!!
O negócio vai só ficando high-tech...
Parabéns... pessoal...
Obg

E a culpa dessa vez não foi sua Fladimir... !!!
O negócio vai só ficando high-tech...
Parabéns... pessoal...
Obg
"Eu e minha casa servimos ao Senhor e você
"
Consulta optante do simples online
Verdade... kkk
Da até pra virar parte do projeto hbNFe/SefazClass talvez... o q acham ou se não montar um para Consultas CPF/CNPJ/NFE/Download NFe e depois daria pra dar continuidade Download CTe
Da até pra virar parte do projeto hbNFe/SefazClass talvez... o q acham ou se não montar um para Consultas CPF/CNPJ/NFE/Download NFe e depois daria pra dar continuidade Download CTe
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- ctoas
- Usuário Nível 2

- Mensagens: 52
- Registrado em: 09 Mai 2005 16:22
- Localização: São Paulo
- Contato:
Consulta optante do simples online
Bom dia e um ótimo ano novo a todos.
Estou tentando converter a função que busca os dados do CNPJ para Fivewin, mas nunca fui fundo no que diz respeito a WEB com o Fivewin e estou tomando uma surra. O que acontece é que sempre o retorno vem vazio.
Alguém poderia dar uma força?
Agradeço desde já.
Estou tentando converter a função que busca os dados do CNPJ para Fivewin, mas nunca fui fundo no que diz respeito a WEB com o Fivewin e estou tomando uma surra. O que acontece é que sempre o retorno vem vazio.
Alguém poderia dar uma força?
Agradeço desde já.
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
