Olá,
Teria alguma maneira de baixar e manter a tabela NCM atualizada em nossos sistemas ?
Obrigado.
Moderador: Moderadores
// Se encontrado o BACKUP.RAR descompacta
if file( "TbIBPTSP.dbf" )
ImportaIBPTax(oWnd)
fErase( "TbIBPTSP.dbf" )
endif
FUNCTION ImportaIBPTax(oWnd)
local cDbf, nRegNumbers := 0
IF PERG('Tem certeza desta exportacao de registros(S/N)?') = 'S'
USE TbIBPTSP SHARED NEW
USE IBPT SHARED NEW
dbSelectArea( "IBPT" )
dbGotop()
cMsg := "Aguarde. Eliminando [#] registro(s)."
do while .not. eof()
dbRLock()
dbDelete()
dbRUnLock()
// cMsg
cMsg := strTran( cMsg, "[#]", alltrim(str(recno())) )
//oWnd:SetMsg( cMsg )
dbSkip()
enddo
//
dbSelectArea( "TbIBPTSP" )
dbGotop()
cMsg := "Aguarde. Importando dados. [#] registro(s) contados."
do while .not. eof()
M->CODIGO := TbIBPTSP->CODIGO
M->EX := TbIBPTSP->EX
M->TIPO := TbIBPTSP->TIPO
M->DESCRICAO := TbIBPTSP->DESCRICAO
M->FEDERALNAC := TbIBPTSP->FEDERALNAC
M->FEDERALIMP := TbIBPTSP->FEDERALIMP
M->ESTADUAL := TbIBPTSP->ESTADUAL
M->MUNICIPAL := TbIBPTSP->MUNICIPAL
M->INI_VALID := TbIBPTSP->INI_VALID
M->FIM_VALID := TbIBPTSP->FIM_VALID
M->CHAVE := TbIBPTSP->CHAVE
M->VERSAO := TbIBPTSP->VERSAO
M->FONTE := TbIBPTSP->FONTE
//M->TOTALNAC := TbIBPTSP->TOTALNAC
//M->TOTALIMP := TbIBPTSP->TOTALIMP
dbSelectArea( "IBPT" )
IBPT->(dbAppend())
IBPT->CODIGO := VAL(TbIBPTSP->CODIGO)
IBPT->EX := TbIBPTSP->EX
IBPT->TABELA := TbIBPTSP->TIPO
IBPT->DESCRICAO := TbIBPTSP->DESCRICAO
IBPT->ALIQNAC := TbIBPTSP->FEDERALNAC
IBPT->ALIQIMP := TbIBPTSP->FEDERALIMP
IBPT->ALIQEST := TbIBPTSP->ESTADUAL
IBPT->ALIQMUN := TbIBPTSP->MUNICIPAL
IBPT->VIGENCIAI := TbIBPTSP->INI_VALID
IBPT->VIGENCIAN := TbIBPTSP->FIM_VALID
IBPT->CHAVE := TbIBPTSP->CHAVE
IBPT->VERSAO := TbIBPTSP->VERSAO
IBPT->FONTE := TbIBPTSP->FONTE
//IBPT->TOTALNAC := TbIBPTSP->TOTALNAC
//IBPT->TOTALIMP := TbIBPTSP->TOTALIMP
IBPT->(dbCommit())
dbSelectArea( "TbIBPTSP" )
cMsg := strTran( cMsg, "[#]", alltrim(str(recno())) )
//oWnd:SetMsg( cMsg )
dbSkip()
enddo
//MENSAGEM("Operacao terminada:"+CRLF+CRLF+"Foram transferidos "+alltrim(str(nRegNumbers))+" registros.")
ENDIF
return nil
if ! file( "TbIBPTSP.dbf" )
downloadIBPTax()
// Chama rotina de importação se for o caso
endif
function downloadIBPTax()
cArquivoRemoto := "TbIBPTSP.dbf"
//
fErase( "C:\TEMP\"+cArquivoRemoto )
//
if ! IsInternet( "www.google.com" ) // Use alguma funcao propria
// Evitando mensagem de erros
return .f.
endif
//
cFTPServerName := "158.159.160.161"
cFTPLoginID := "usuario@dominio.com.br"
cFTPPassword := "*********"
cServerFolder := "downloads"
cLocalFolder := "C:\TEMP"
//
ws := TdWebService():new()
ws:GetFile( "/"+cArquivoRemoto, "C:\TEMP\"+cArquivoRemoto, cFTPServerName, cFTPLoginID, cFTPPassword )
ws:end()
//
return .t.
/*
*
* Classe WebService
*
*/
#include "dll.ch"
//static xdll
CLASS TdWebService
DATA hOpen
DATA sbuffer HIDDEN
DATA xDLL HIDDEN
METHOD New(buffersize) CONSTRUCTOR
METHOD FTPGetFile( cRemoteFile, cNewFile, nFailIfExists, nFlagsAndAttribs, nFlags, nContext )
METHOD FTPPutFile( cLocalFile, cNewRemoteFile, nFlags, nContext )
METHOD OpenWS(url)
METHOD End()
ENDCLASS
METHOD New(conexion,buffersize) CLASS TdWebService
DEFAULT buffersize:=64000
::sbuffer:=buffersize
xDll:=LoadLib32("wininet.dll")
?"teste"
::hOpen := InternetOpen("TdWebService", 1,,, 0)
RETURN Self
METHOD OpenWS(url) CLASS TdWebService
local hFile,ret,xml
hFile := InternetOpenUrl(::hOpen, url,"",0,,0)
xml:=space(::sbuffer)
InternetReadFile(hFile, @xml, ::sbuffer, @Ret)
return subst(alltrim(xml),1,len(alltrim(xml))-5)
METHOD FTPGetFile( cRemoteFile, cNewFile, nFailIfExists, nFlagsAndAttribs, nFlags, nContext ) CLASS TdWebService
local hFile,ret,xml
lFile := FTPGetFile(::hOpen, cRemoteFile, cNewFile,,0,, @ret) // nFailIfExists, nFlagsAndAttribs, nFlags, nContext )
return lFile
METHOD FTPPutFile( cLocalFile, cNewRemoteFile, nFlags, nContext ) CLASS TdWebService
local hFile,ret,xml
lFile := FTPPutFile( ::hOpen, cLocalFile, cNewRemoteFile, nFlags, nContext )
return lFile
METHOD End() CLASS TdWebService
FreeLib32(xDll)
return nil
DLL32 FUNCTION InternetOpen( cApp as LPSTR, n1 AS DWORD, n2 AS LPSTR, n3 AS LPSTR, n4 AS DWORD ) AS LONG PASCAL FROM "InternetOpenA" LIB xdll
Dll32 Function InternetReadFile(hFile As 7, @sBuffer As 8, lNumBytesToRead As 7, @lNumberOfBytesRead As 7) As 7 PASCAL Lib xdll
Dll32 Function InternetOpenUrl(hInternetSession As 7, lpszUrl As 8, lpszHeaders As 8, dwHeadersLength As 7, dwFlags As 7, dwContext As 7) As 7 FROM "InternetOpenUrlA" PASCAL Lib xdll
DLL32 FUNCTION InternetCloseHandle( hSession AS LONG ) AS BOOL PASCAL LIB xdll
DLL32 FUNCTION InternetConnect( hInternet AS LONG, cServerName AS LPSTR, nServerPort AS LONG, cUserName AS LPSTR, cPassword AS LPSTR, nService AS LONG, nFlags AS LONG, @nContext AS PTR ) AS LONG PASCAL FROM "InternetConnectA" LIB xDll
DLL32 FUNCTION InternetWriteFile( hFile AS LONG, cBuffer AS LPSTR, lSize AS LONG, @nSize AS PTR ) AS BOOL PASCAL LIB xDll
DLL32 FUNCTION InternetSetFilePointer( hFile AS LONG, nDistanceToMove AS LONG, nReserved AS LPSTR, nSeekMethod AS LONG, @nContext AS PTR ) AS BOOL PASCAL LIB xDll
DLL32 FUNCTION InternetFindNextFile( hFTPDir AS LONG, @cWin32DataInfo AS LPSTR ) AS BOOL PASCAL FROM "InternetFindNextFileA" LIB xDll
DLL32 FUNCTION FtpOpenFile( hFTP AS LONG, cRemoteFile AS LPSTR, n1 AS LONG, n2 AS LONG, n3 AS LONG ) AS LONG PASCAL FROM "FtpOpenFileA" LIB xDll
DLL32 FUNCTION FTPGetFile( hConnect AS LONG, cRemoteFile AS LPSTR, cNewFile AS LPSTR, nFailIfExists AS LONG, nFlagsAndAttribs AS DWORD, nFlags AS DWORD, @nContext AS PTR ) AS BOOL PASCAL FROM "FtpGetFileA" LIB xDll
DLL32 FUNCTION FTPPutFile( hConnect AS LONG, cLocalFile AS LPSTR, cNewRemoteFile AS LPSTR, nFlags AS DWORD, @nContext AS PTR ) AS BOOL PASCAL FROM "FtpPutFileA" LIB xDll
DLL32 FUNCTION FtpFindFirstFile( hFTP AS LONG, cMask AS LPSTR, @cWin32DataInfo AS LPSTR, n1 AS LONG, n2 AS LONG ) AS LONG PASCAL FROM "FtpFindFirstFileA" LIB xDll
Da próxima vez vou pedir os números da mega sena do próximo sorteio ... kkkkkk
Retornar para Legislação Fiscal e Tributária
Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes