Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include 'protheus.ch'
- /*/{Protheus.doc} zCCHRec
- Retorna os dados básicos de um CNPJ a partir da Receita Federal
- @author Caio César Henrique
- @since 22/10/2019
- @version 1.0
- @type function
- @example U_zCCHRec()
- /*/
- User Function zCCHRec()
- /* Variáveis Locais */
- Local aPergs := {}
- Local aRetorn := {}
- Local cLoad := "00001"
- Local lCanSave := .T.
- Local lUserSave := .T.
- Local cTitulo := "TOTVS x Receita Federal"
- Local bOk := {|| .T.}
- Local aButtons := {}
- Local lCentered := .T.
- Local nPosx
- Local nPosy
- /* Variável Privada */
- Private cCNPJ := Space(14)
- /* Abro a empresa TESTE, caso faça uso via debug
- Remover para utilizar dentro do Protheus*/
- RpcSetEnv('99','01')
- /* Adiciono a pergunta do Parambox */
- aAdd(aPergs, {1, "CNPJ" , cCNPJ , "", ".T.", "", ".T.", 80, .F.})
- /* Se a pergunta for confirmada */
- If ParamBox(aPergs, cTitulo, aRetorn, bOk, aButtons, lCentered, nPosx,nPosy, /*oMainDlg*/ , cLoad, lCanSave, lUserSave)
- cCNPJ := aRetorn[1]
- /* Busca os dados com o CNPJ digitado */
- BuscaDados(cCNPJ)
- EndIf
- Return ( Nil )
- /*/{Protheus.doc} zCCHRec
- Retorna os dados básicos de um CNPJ a partir da Receita Federal
- @author Caio César Henrique
- @since 22/10/2019
- @version 1.0
- @type function
- @example U_zCCHRec()
- /*/
- Static Function BuscaDados(cCNPJ)
- /* Variáveis Locais */
- Local cJson := ""
- Local cGetParms := ""
- Local cHeaderGet := ""
- Local nTimeOut := 200
- Local aHeadStr := {"Content-Type: application/json"}
- /* Variável Privada */
- Private oObjJson := Nil
- /* Utiliza HTTPGET para retornar os dados da Receita Federal */
- cJson := HttpGet('https://www.receitaws.com.br/v1/cnpj/'+ cCNPJ, cGetParms, nTimeOut, aHeadStr, @cHeaderGet )
- /* Transforma retorno do JSON em objeto estilo array */
- If !FWJsonDeserialize(cJson,@oObjJson)
- MsgStop("Ocorreu erro no processamento do Json")
- Return
- Else
- /* Gera Excel */
- GeraExcel(oObjJson)
- EndIf
- Return ( Nil )
- /*/{Protheus.doc} zCCHRec
- Retorna os dados básicos de um CNPJ a partir da Receita Federal
- @author Caio César Henrique
- @since 22/10/2019
- @version 1.0
- @type function
- @example U_zCCHRec()
- /*/
- Static Function GeraExcel(oObjJson)
- //Variáveis para Geração Excel
- Local oFwMsEx := NIL
- Local cArq := ""
- Local cDir := GetSrvProfString("Startpath","")
- Local cWorkSheet := oObjJson:CNPJ
- Local cTable := "Informações de: "+oObjJson:FANTASIA
- Local cDirTmp := GetTempPath()
- Local cCadastro := "Relatório - Receita Federal"
- /* Inicializa objeto do Excel */
- oFwMsEx := FWMsExcel():New()
- oFwMsEx:AddWorkSheet( cWorkSheet )
- oFwMsEx:AddTable( cWorkSheet, cTable )
- /* Define os cabeçalhos das colunas */
- oFwMsEx:AddColumn( cWorkSheet, cTable , "Abertura" , 2,1)
- oFwMsEx:AddColumn( cWorkSheet, cTable , "Bairro" , 2,1)
- oFwMsEx:AddColumn( cWorkSheet, cTable , "Capital Social" , 2,3)
- oFwMsEx:AddColumn( cWorkSheet, cTable , "CEP" , 2,1)
- oFwMsEx:AddColumn( cWorkSheet, cTable , "Data Situação" , 2,1)
- oFwMsEx:AddColumn( cWorkSheet, cTable , "Natureza Jurídica" , 2,1)
- /* Alimenta com os itens */
- oFwMsEx:AddRow( cWorkSheet, cTable, { oObjJson:ABERTURA ,;
- oObjJson:BAIRRO ,;
- oObjJson:CAPITAL_SOCIAL,;
- oObjJson:CEP ,;
- oObjJson:DATA_SITUACAO ,;
- DecodeUTF8(oObjJson:NATUREZA_JURIDICA,"cp1252")})
- /* Ativa o objeto */
- oFwMsEx:Activate()
- /* Cria XML temporário */
- cArq := CriaTrab( Nil, .F. ) + ".xml"
- /* Processo o Excel-XML */
- MsgRun( "Gerando o arquivo, aguarde...", cCadastro, {|| oFwMsEx:GetXMLFile( cArq ) } )
- /* Copia do servidor para a máquina do usuário e abre o Excel */
- If __CopyFile( cArq, cDirTmp + cArq )
- oExcelApp := MsExcel():New()
- oExcelApp:WorkBooks:Open( cDirTmp + cArq )
- oExcelApp:SetVisible(.T.)
- oExcelApp:Destroy()
- Else
- MsgInfo( "Arquivo não copiado para temporário do usuário." )
- Endif
- Return ( Nil )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement