5  Gestão orçamentária

mostrar o código
library(readxl)
library(tidyverse)
library(janitor)
library(lubridate)
library(tidyverse)
library(purrr)
library(knitr)
library(kableExtra)
library(DescTools)
library(zoo)
library(stringr)
library(DT)
library(plotly)
library(readr)
library(scales)
library(ggthemes)
mostrar o código
`%notin%` <- Negate(`%in%`)

# formato dos numeros
myNumFmt <- as.fmt(digits=0, big.mark=".")

options(scipen = 999)
mostrar o código
lista_ugs_gestor <- read_excel("lista_ugs_gestor.xlsx") |>
  clean_names()
mostrar o código
# ug_selecionada <-  "070015"

ug_selecionada <-
  read_csv("ug_selecionada.csv") $ug_selecionada

5.1 Quem executa o orçamento x Quem é o “dono” do orçamento

5.1.1 Visão UO (unidade orçamentária - dono do orçamento)

5.1.2 Visão UGE (unidade gestora - executor do orçamento)

5.2 Fluxo orçamentário

5.2.1 Movimentação de crédito

Destaque : descentralização de crédito orçamentário de uma unidade orçamentária para uma unidade orçamentária de outro órgão realizada por meio de TED.

Provisão: Descentralização de crédito orçamentário de uma unidade orçamentária para outra do mesmo órgão.

mostrar o código
ug_nc <- read_excel(paste0(ug_selecionada,"_nc.xlsx")) |>
  clean_names() 

if(!c("destaque_recebido") %in% colnames(ug_nc)){ug_nc <- ug_nc |>
  mutate(destaque_recebido = 0)}

if(!c("provisao_recebida") %in% colnames(ug_nc)){ug_nc <- ug_nc |>
  mutate(provisao_recebida = 0)}

ug_nc <- ug_nc |>
  mutate(
    tipo_descentralizacao = ifelse(emitente_orgao_codigo == orgao_uge_codigo,
                                   "provisao",
                                   "destaque")
    )
mostrar o código
ug_nc |>
  group_by(emitente_orgao_nome,ug_executora_nome) |>
  summarise(
    valor = (
      sum(provisao_recebida, na.rm = TRUE) +
      sum(destaque_recebido, na.rm = TRUE) ) /1000) |>
  arrange(desc(valor))|>
  head()|>
  kable(
    col.names = c("De", "Para", "Valor"),
    digits = 2,
    format.args = list(big.mark = ".", decimal.mark = ",")
    )
Tabela 5.1: quem
De Para Valor
MINISTERIO DO TRABALHO E EMPREGO SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 3.660,31
MINISTERIO DA FAZENDA SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 3.655,67
MIN.DA GEST.E DA INOVACAO EM SERVICOS PUBLICO SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 2.521,24
CONTROLADORIA-GERAL DA UNIAO SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 418,25
PRESIDENCIA DA REPUBLICA SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 99,26
INSTITUTO NAC. DA PROPRIEDADE INDUSTRIAL SUPERINT. REG. ADM. DO MGI - SANTA CATARINA 71,54
mostrar o código
ug_nc |>
  group_by(tipo_descentralizacao)|>
  summarise(
    valor = (
      sum(provisao_recebida, na.rm = TRUE) +
      sum(destaque_recebido, na.rm = TRUE)) / 1000
    ) |>
  kable(
    col.names = c("Tipo de descentralização", "Valor"),
    digits = 2,
    format.args = list(big.mark = ".", decimal.mark = ",")
    )
Tabela 5.2: Tipo
Tipo de descentralização Valor
destaque 8.014,95
provisao 2.521,24
mostrar o código
ug_nc |>
  select( doc_observacao) |>
  head() |>
  kable(col.names = "Doc Observação" )
Tabela 5.3: obs
Doc Observação
RATEIO DE DESPESAS 1º TRIMESTRE/2023 TERMO DE CESSAO DE USO Nº 02/2017 - SAMF/SC PROCESSO 00091.001626/2017-18
DESTAQUE REF. A CONTRATACAO DE SERV. DE MANUT. DO SISTEMA DE AR CONDICIONADO- GRA/SC // CONF. DESPACHO 0820051 E 0820081 PROCESSO 00091.001716/2017-17
DESTAQUE REF. A CONTRATACAO DE SERV. DE MANUT. DO SISTEMA DE AR CONDICIONADO- GRA/SC // CONF. DESPACHO 0820051 E 0820081 (ESTORNO) PROCESSO 00091.001716/2017-17
RATEIO DE DESPESAS 1º TRIMESTRE/2023 TERMO DE CESSAO DE USO Nº 02/2017 - SAMF/SC PROCESSO 00091.001626/2017-18
RATEIO DE DESPESAS 2º TRIMESTRE/2023 TERMO DE CESSAO DE USO Nº 02/2017 - SAMF/SC PROCESSO 00091.001626/2017-18
RATEIO DE DESPESAS 3º TRIMESTRE/2023 TERMO DE CESSAO DE USO Nº 02/2017 - SAMF/SC PROCESSO 00091.001626/2017-18
mostrar o código
ug_nc |>
  select(
    conta_corrente,
    ptres,
    fonte_recursos_detalhada_codigo,
    fonte_recursos_detalhada_nome,
    natureza_despesa_codigo,
    natureza_despesa_nome,
    ug_responsavel_codigo,
    ug_responsavel_nome,
    pi_codigo_pi,
    pi_nome ) |>
  tail(1)|>
  pivot_longer(
    cols = everything()
    ) |>
  mutate(
    name = str_to_upper(str_replace_all( name,"_"," "))
    ) |>
  kable(
    col.names = c("Atributo", "Resultado")
    )
Atributo Resultado
CONTA CORRENTE 1225040100000000044905217016646200004166
PTRES 225040
FONTE RECURSOS DETALHADA CODIGO 1000000000
FONTE RECURSOS DETALHADA NOME RECURSOS LIVRES DA UNIAO
NATUREZA DESPESA CODIGO 449052
NATUREZA DESPESA NOME EQUIPAMENTOS E MATERIAL PERMANENTE
UG RESPONSAVEL CODIGO 170166
UG RESPONSAVEL NOME SUPERINT. REG. ADM. DO MGI - SANTA CATARINA
PI CODIGO PI 46200004166
PI NOME MATERIAL PERMANENTE, EQUIPAMENTOS/INSTALACOES

5.2.2 Crédito disponível

5.2.3 Detalhamento do orçamento

mostrar o código
ug_nd <- 
  read_excel(paste0(ug_selecionada,"_nd.xlsx")) |>
  clean_names() 
mostrar o código
ug_nd |>
  group_by(documento,conta_corrente) |>
  summarise(credito_disponivel= sum(credito_disponivel)) |>
  head() |>
  kable(
    col.names = c("Documento", "Conta Corrente", "Valor"),
    digits = 2,
    format.args = list(big.mark = ".", decimal.mark = ",")
    )
Documento Conta Corrente Valor
170166000012023ND000001 11922861000000000339037 110255 -1.723,00
170166000012023ND000001 11922861000000000339047 110255 1.723,00
170166000012023ND000002 12254091050000234339039 183038UNIDADE RS -1.207,95
170166000012023ND000002 12254091050000234339047 183038UNIDADE RS 1.207,95
170166000012023ND000003 12250401000000000339039 17016646200043166 30,00
170166000012023ND000003 12250401000000000339039 17016646200067166 -30,00

5.3 Pontos de controle

mostrar o código
saldos <-
  read_excel("saldos.xlsx") |>
  clean_names() |>
  mutate(
    dia_lancamento = 
      ifelse(
        str_detect(dia_lancamento,"000"),
        paste0("01/01/",str_sub (dia_lancamento, start =  -4L)),
        dia_lancamento)
    ) |>
  mutate(dia_mes = parse_date_time(dia_lancamento,"dmy")) |>
  filter(endsWith(dia_lancamento,"2023"))

saldos <- rename(saldos, limite_de_saque = number_sg_limite_de_saque_diversos)

saldos <- rename(saldos, RP_a_pagar = restos_a_pagar_a_pagar_proc_e_n_proc)

saldos <- rename(saldos, pre_empenhadas  = despesas_pre_empenhadas_a_empenhar)

saldos <- rename(saldos, a_liquidar  = despesas_empenhadas_a_liquidar)

saldos <- rename(saldos, a_pagar  = despesas_liquidadas_a_pagar)


saldos[is.na(saldos)] <- 0
mostrar o código
grafico <-
  function(x){
    p <-
      ggplot( saldos |>
                filter(ug_executora_codigo == ug_selecionada ) |>
                group_by(dia_mes) |>
                summarise(across(where(is.numeric), sum))|>
                mutate(across(where(is.numeric),cumsum)) |>
                select(dia_mes, x) |>
                pivot_longer(
                  cols = x,
                  names_to = "item",
                  values_to = "saldo") ,
              aes(
                x= dia_mes,
                y=  saldo ,
                label= Format(saldo, fmt = myNumFmt))
              ) +
      geom_line()  +
      theme(
        legend.position="none",
        panel.grid.major.y = element_line(color = "grey") ,
        axis.title.y = element_blank(),
        axis.title.x = element_blank()
        ) +
      labs(
        title = paste0(
          "UG ",
          ug_selecionada,
          ": ",
          str_to_upper( str_replace_all(x,"_"," ") ))
        ) +
      scale_y_continuous(
        labels = label_number(prefix = "R$", big.mark = ".")
                         )
  
  ggplotly( p)
  
}
mostrar o código
grafico("credito_disponivel")
mostrar o código
grafico("a_pagar")
mostrar o código
grafico("RP_a_pagar")
mostrar o código
grafico("limite_de_saque")
mostrar o código
# for (i in colnames(select_if(saldos, is.numeric)    )){ print( grafico(i))}
# 
# 
# print( map(colnames(select_if(saldos_serie, is.numeric)    ), grafico_serie))