Sobre o Site

Pacotes


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