Nesta página meu objetivo é apresentar mecanismos para o acesso os relatórios contábeis/financeiros consolidados produzidos pelo SIAFEM/RJ ( Sistema Integrado de Administração Financeira para Estados e Municípios) e disponibilizados na internet pela Secretaria de Estado de Fazenda do Estado do Rio de Janeiro - SEF/RJ em atendimento ao parágrafo 3º do artigo 209 da Constituição Estadual, bem como apresentar algumas sugestões de como estes demonstrativos podem ser examinados com o auxílio do R.
Também será mostrado como importar para o R relatórios produzidos pelo SIAFEM/RJ para as Unidades Gestoras (UGs) mediante as transações ">balancete", ">lisne", ">liscelne", ">lisob", ">listransf" entre outras. Somente pessoas com acesso ao SIAFEM/RJ terão acesso a estes relatórios, já que os mesmos não são disponbilizados na internet. A descrição de como proceder para a importação destes relatórios pode ser vista aqui.
RELATÓRIOS DISPONÍVEIS NA INTERNET
A SEF/RJ disponibiliza à sociedade os seguintes relatórios:
- Demonstração da Execução Orçamentária da Receita - DEOR
- Demonstração da Execução Orçamentária da Despesa - DEOD
- Balancete Geral do Estado - BGE
Estes relatórios podem ser acessados no Portal do Siafem, mantido pela SEF/RJ. Lá estão disponíveis diversas informações sobre este sistema.
Para facilitar a análise destes relatórios escrevi o pacote siafem que disponibiliza algumas funcões que possibilitam a importação dos mesmos para o R.
No momento, para que se possa utilizar estas funções é necessário que os arquivos contendo os relatórios acima mencionados estejam em formato texto (.txt) o que pode ser obtido usando Arquivo|Salvar como... no browser e escolhendo a opção "Arquivos de Texto (*.txt)".
DEMONSTRATIVO DA EXECUÇÃO ORÇAMENTÁRIA DA RECEITA - DEOR
Para importar o Demonstrativo da Execução Orçamentária da Receita referente ao mês de Janeiro/2006, procede-se da seguinte forma:
> library(siafem)
> ls("package:siafem")
[1] "convNum" "importarBalancete" "importarBGE"
[4] "importarConcontrat" "importarDEOD" "importarDEOR"
[7] "importarLiscelne" "importarLiscontrat" "importarLisne"
[10] "importarLisob" "importarLisobCredor" "importarPCU"
[13] "importarRazao" "removeBrancos"
> deorJan06 <- importarDEOR(arquivo="c:/DEOR/deorConsolidadoJan2006.txt")
> str(deorJan06)
'data.frame': 346 obs. of 6 variables:
$ Codigo : chr "1000.00.00" "1100.00.00" "1110.00.00" "1112.00.00" ...
$ Descricao : chr "RECEITAS CORRENTES" "RECEITA TRIBUTARIA" "IMPOSTOS" ...
$ VlrPrevisto : num 33651051395 18948534497 18534612643 1012806964 ...
$ VlrArrecMes : num 2632261254 1763587100 1738449309 288033172 ...
$ VlrArrecAteMes: num 2632261254 1763587100 1738449309 288033172 ...
$ DifArrecadar : num -31018790141 -17184947397 -16796163334 -952030827 ...
Para salvar o relatório em formato ".xls", é necessário que o usuário tenha instalado o pacote xlsReadWrite, que poderá ser baixado no CRAN.
> library(xlsReadWrite)
> write.xls(deorJan06, file="c:/DEOR/deorJan2006.xls")
Com isto criamos um arquivo excel contendo os dados relativos à execução da receita em janeiro/2006.
Outra possibilidade é salvar os dados em formato .csv, que pode ser lido pelo Excel sem maiores problemas. O comando é o seguinte:
> write.csv2(deorJan06, file="c:/DEOR/deorJan2006.csv", quote=FALSE, row.names=FALSE)
Também pode ser de interesse montar um arquivo contendo a arrecadação de cada mês, para que se tenha uma série histórica da arrecadação.
Supondo que já tenhamos baixado os arquivos de texto contendo os dados das receitas e feito a importação dos mesmos para o R, referentes aos meses de Jan/06 (deorJan06), Fev/06 (deorFev06), Mar/06 (deorMar06) e Abr/06 (deorAbr06) a reunião dos arquivos pode ser feita da seguinte forma:
>Arrec2006 <- merge(deorJan06[,c(1, 2 ,4)], deorFev06[,c(1, 4)], by="Codigo", all=T)
>names(Arrec2006) <- c("Codigo", "Descricao", "Mes01", "Mes02")
>Arrec2006 <- merge(Arrec2006, deorMar06[,c(1, 4)], by="Codigo", all=T)
>names(Arrec2006) <- c(names(Arrec2006)[-5], "Mes03")
>Arrec2006 <- merge(Arrec2006, deorAbr06[,c(1, 4)], by="Codigo", all=T)
>names(Arrec2006) <- c(names(Arrec2006)[-6], "Mes04")
>head(Arrec2006)
Codigo Descricao Mes01
1 1000.00.00 RECEITAS CORRENTES 2632261254.21
2 1100.00.00 RECEITA TRIBUTARIA 1763587100.33
3 1110.00.00 IMPOSTOS 1738449308.85
4 1112.00.00 IMPOSTOS SOBRE O PATRIMONIO E A RENDA 288033172.34
5 1112.04.00 IMPOSTO S/RENDA E PROVENTOS QQ NATUREZA 60776137.11
6 1112.04.31 IMP.RENDA RET.FONTES SOBRE REND. TRABALHO 59254056.33
Mes02 Mes03 Mes04
1 3035299275.31 2933575550.49 2109326854.76
2 1518489852.01 1542076876.19 1386590497.77
3 1494679148.06 1512394031.84 1360796690.26
4 315831098.54 284860328.97 197137453.69
5 85348154.63 95808119.04 103339585.54
6 82560411.92 93736742.13 101164044.28
E assim vamos incluindo os meses à medida em que forem sendo disponibilizados pela SEF/RJ.
Para construir gráficos de linha mostrando a evolução da arrecadação de uma fonte de receita em particular (IPVA por exemplo), podemos fazer da seguinte forma:
1 - Caso se tenha o código da receita em questão, obtida da consulta ao Classificador de Receitas e Despesas:
> subset(Arrec2006, Codigo == "1112.05.01")
Codigo Descricao Mes01 Mes02 Mes03 Mes04
9 1112.05.01 COTA-PARTE DO ESTADO - IPVA 108904536 110180134 86478225 42087691
2 - Caso não se disponha do código da receita em questão - Realiza-se uma pesquisa pelos nomes das receitas, usando a função grep(), conforme mostrado a seguir:
> Arrec2006[grep("IPVA", Arrec2006$Descricao),]
Codigo Descricao Mes01 Mes02
9 1112.05.01 COTA-PARTE DO ESTADO - IPVA 108904535.95 110180133.55
10 1112.05.02 COTA-PARTE DOS MUNICIPIOS - IPVA 108902313.33 110177180.48
222 1911.41.00 MULTAS E JUROS DE MORA DO IPVA 3598058.72 4588338.79
223 1911.41.01 MULTAS (LEI ESTADUAL N.1650/90) - IPVA 0.00 0.00
224 1911.41.02 DEMAIS MULTAS E JUROS DE MORA - IPVA 3598058.72 4588338.79
268 1931.14.00 RECEITA DA DIVIDA ATIVA - IPVA 18286.62 23026.29
269 1931.14.01 COTA-PARTE DO ESTADO DA DIV.ATIVA-IPVA 9143.39 11513.19
Mes03 Mes04
9 86478224.55 42087691.01
10 86484600.24 42089047.40
222 6468009.74 5962429.65
223 0.00 0.00
224 6468009.74 5962429.65
268 7137.75 5035.16
269 3568.91 2517.65
O comando acima lista todos os registros que contenham o texto "IPVA" no nome da receita, identificada pela variável Descricao. A receita proveniente da arrecação do IPVA é identificada pelo código 1112.05.01.
Para elaborar um gráfico de linha, mostrando a evolução da arrecadação do IPVA nestes 4 primeiros meses, podemos fazer da seguinte forma:
> ipva <- as.matrix(Arrec2006[9, 3:6])
> nomes <- dimnames(ipva)[[2]]
> attributes(ipva) <- NULL
> plot(ipva / 1e6, type="b", main="Arrecadação\n IPVA", ylab="Em R$ Milhões", xlab="", xaxt="n")
> axis(1, at=1:4, labels=nomes)
Para salvar o gráfico.
> savePlot("ArrecIPVA", type="png")
O resultado é o seguinte:
DEMONSTRAÇÃO DA EXECUÇÃO ORÇAMENTÁRIA DA DESPESA - DEOD
O demonstrativo da execução orçamentária da despesa pode ser importado da seguinte forma:
> library(siafem)
> deodJan2009 <- importarDEOD("deodJan2009.txt")
BALANCETE GERAL DO ESTADO - BGE
Para fazermos a importação do Balancete Geral do Estado escrevi duas funções: importarBGE() e importarPCU(). A função importarPCU() destina-se à obtenção um data frame contendo o plano de contas do SIAFEM que será passado como argumento à função importarBGE(). Ilustraremos a seguir como utilizar estas duas funções para importar o Balancete Geral do Estado.
Primeiro, devemos obter uma cópia do Plano de Contas Único (de preferência o mais recente possível). O plano de contas único pode ser obtido no site da Secretaria de Estado de Fazenda. A versão mais recente do plano de contas disponível no site da Secretaria de Fazenda é datada de 22.10.2008 e está constantemente sendo atualizado.
> library(siafem)
> PCU22102008 <- importarPCU("pcontas.txt")
> head(PCU22102008)
Codigo SC Conta
1 1.1.1.1.1.01.00 F = CAIXA
2 1.1.1.1.2.01.16 F BANCO ITAU S/A
3 1.1.1.1.2.07.00 F = RECURSOS DA TAXA DE ADMINISTRACAO DO RPPS
4 1.1.1.1.2.99.02 F = BANCO DO BRASIL S/A
5 1.1.1.1.2.99.03 F = BANCO BRADESCO S/A
6 1.1.1.1.2.99.04 F = CAIXA ECONOMICA FEDERAL
CC
1 CGC, CPF, IG OU UG + GESTAO
2
3 BANCO+AGENCIA+CTA.BANCARIA
4 BANCO+AGENCIA+CTA.BANCARIA
5 BANCO+AGENCIA+CTA.BANCARIA
6 BANCO+AGENCIA+CTA.BANCARIA
> str(PCU22102008)
'data.frame': 2856 obs. of 4 variables:
$ Codigo: Factor w/ 2856 levels "1.1.1.1.1.01.00",..: 1 2 3 4 5 6 7 8 9 10 ...
$ SC : Factor w/ 4 levels "C","F","O","P": 2 2 2 2 2 2 2 2 2 2 ...
$ Conta : Factor w/ 2150 levels "","* = AMORTIZACOES",..: 194 1025 758 170 155 ...
$ CC : Factor w/ 21 levels "","BANCO+AGENCIA+CTA.BANCARIA",..: 8 1 2 2 2 2 ...
De posse do plano de contas, os balancetes podem ser importados da seguinte forma:
> bgeSet2008 <- importarBGE("BalanceteSet2008.txt", PCU22102008)
> head(bgeSet2008)
Codigo Conta SdInic DC1 Debitos DC2
1 1.1.1.1.1.01.00 = CAIXA 671838.16 D 1016182.86 C
2 1.1.1.1.2.01.16 BANCO ITAU S/A 2465739.68 D 42115236.03 C
3 1.1.1.1.2.99.02 = BANCO DO BRASIL S/A 137137423.36 D 65140303.67 D
4 1.1.1.1.2.99.03 = BANCO BRADESCO S/A 4347.07 D 4535.99 C
5 1.1.1.1.2.99.04 = CAIXA ECONOMICA FEDERAL 11046887.20 D 3518776.15 D
6 1.1.1.1.2.99.10 = BANCO ABN-AMRO BANK 27285.44 D 122056.70 D
Creditos DC3 SdFinal DC4
1 309379.84 D 981218.00 D
2 96501404.64 D 98967144.32 D
3 287608964.47 D 424746387.83 D
4 864.25 D 5211.32 D
5 906445.07 D 11953332.27 D
6 561474.22 D 588759.66 D
> tail(bgeSet2008)
Codigo Conta SdInic DC1 Debitos
1952 6.2.3.3.1.73.00 OUTRAS OBRIGACOES NA 4000000.00
1953 6.2.3.3.1.75.00 OBRIGACOES SOCIAIS E FISCAIS - LP NA 413585.92
1954 6.2.3.3.1.77.00 PROVISOES - LONGO PRAZO NA NA
1955 6.2.3.3.1.85.00 RESULTADO DE EXERCICIOS FUTUROS NA NA
1956 6.2.3.4.2.01.00 VARIACAO CAMBIAL NA 974266.78
1957 6.2.3.8.0.00.00 AJUSTES DE EXERCICIOS ANTERIORES NA 141246.89
DC2 Creditos DC3 SdFinal DC4
1952 C 445266495.58 C 445266495.58 C
1953 C 4037281.26 C 4037281.26 C
1954 77373.49 C 77373.49 C
1955 2475123.85 C 2475123.85 C
1956 C 1053347.42 C 1053347.42 C
1957 C 324129.45 C 324129.45 C
O balancete importado possui apenas contas escrituráveis, ou seja, as contas nas quais efetivamente são feitos os lançamentos contábeis. A utilidade deste fato está em que agora é possivel fazer cálculos com os saldos das contas.
RELATÓRIOS DAS UNIDADES GESTORAS
Os
funcionários que disponham de acesso ao SIAFEM podem gerar e/ou
consultar relatórios utilizando algumas transações, tais como ">balancete", ">razao", ">lisne", ">lisob", ">liscelne" e etc.
Embora
alguns desses relatórios possam ser impressos, o SIAFEM não dispõe de
um mecanismo que permita exportar estes relatórios para meio magnético
de forma a permitir que as informações contidas nos mesmos possam ser
trabalhadas em outro software, como o Excel, por exemplo.
Uma
abordagem comumente utilizada para se obter as informações em meio
magnético é fazer uso do recurso de copiar as telas dos relatórios
apresentadas na tela do computador em um arquivo texto que poderá ser
processado posteriormente, desde que adequadamente editado, tarefa que
pode demandar considerável tempo, além de ser propensa a erros.
Uma vez criado o arquivo de texto, a importação dos dados poderá ser feita, sem a necessidade de editar o arquivo, com as funções a seguir relacionadas:
- importarBalancete(): Função para a importação do balancete, obtido com a transação ">balancete"
- importarRazao(): Função para a importação do razão, obtido com a transação ">razao"
- importarLisne(): Função para a importação da listagem de empenhos, obtida com a transação ">lisne"
- importarLisob(): Função para a importação da listagem de ordens bancárias (OBs), obtida com a transação ">lisob"
- importarLiscelne(): Função para a importação de listagem de céludas de despesa dos empenhos emititos, obtida com a transação ">liscelne".
Naturalmente que as funções acima não contemplam a totalidade dos relatórios produzidos pelo SIAFEM/RJ e oportunamente irei acrescentando novas funções à medida que eu as for concluindo.
Ilustração do uso das funções acima elencadas, bem como algumas dicas de utilização do R para a análise dos dados contidos nos relatórios podem ser vistas no texto a seguir:
Usando_R_na_Analise_de_Relatorios_do_SIAFEM_Dez2007.pdf
