Skip to content
This repository was archived by the owner on Jun 19, 2024. It is now read-only.

Commit

Permalink
Finalizado programa com conferência de valores
Browse files Browse the repository at this point in the history
  • Loading branch information
everton3x committed Sep 2, 2022
1 parent f5cf5a7 commit 2e29705
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 33 deletions.
85 changes: 53 additions & 32 deletions fcproj/calc.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
""" Rotinas para cálculos.
"""
import numpy as np

import pandas as pd


Expand All @@ -14,34 +14,6 @@ def saldo_atual(balver):
return df


def a_arrecadar(balrec, receita, month):
balrec['balrec'] = np.where(balrec.receita_realizada > balrec.previsao_atualizada, balrec.receita_realizada,
balrec.previsao_atualizada)
receita['meta_1'] = round(receita.meta_1bim / 2, 2)
receita['meta_2'] = round(receita.meta_1bim / 2, 2)
receita['meta_3'] = round(receita.meta_2bim / 2, 2)
receita['meta_4'] = round(receita.meta_2bim / 2, 2)
receita['meta_5'] = round(receita.meta_3bim / 2, 2)
receita['meta_6'] = round(receita.meta_3bim / 2, 2)
receita['meta_7'] = round(receita.meta_4bim / 2, 2)
receita['meta_8'] = round(receita.meta_4bim / 2, 2)
receita['meta_9'] = round(receita.meta_5bim / 2, 2)
receita['meta_10'] = round(receita.meta_5bim / 2, 2)
receita['meta_11'] = round(receita.meta_6bim / 2, 2)
receita['meta_12'] = round(receita.meta_6bim / 2, 2)
receita['receita'] = 0.0
for i in range(1, month, 1):
receita['receita'] += round(receita[f'meta_{i}'], 2)
receita = receita[['recurso_vinculado', 'receita']]
receita = receita.groupby('recurso_vinculado').sum()
balrec = balrec[['recurso_vinculado', 'balrec']]
balrec = balrec.groupby('recurso_vinculado').sum()
df = pd.merge(balrec, receita, on='recurso_vinculado', how='left')
df['a_arrecadar'] = np.where(df.balrec > df.receita, df.balrec, df.receita)
df = df.drop(['balrec', 'receita'], axis='columns')
return df


def a_empenhar(baldesp):
baldesp['a_empenhar'] = round(baldesp.dotacao_atualizada - baldesp.valor_empenhado, 2)
baldesp = baldesp[baldesp['funcao'] != 99]
Expand Down Expand Up @@ -80,20 +52,23 @@ def saldo_final(data):
data.saldo_atual + data.a_arrecadar - data.a_empenhar - data.a_pagar - data.saldo_rp - data.extra_a_pagar, 2)
return data


def total(data):
total = data.copy()
total['total'] = 'Total'
total = total[
['total', 'saldo_atual', 'a_arrecadar', 'a_empenhar', 'a_pagar', 'saldo_rp', 'extra_a_pagar', 'saldo_final']].groupby('total').sum()
['total', 'saldo_atual', 'a_arrecadar', 'a_empenhar', 'a_pagar', 'saldo_rp', 'extra_a_pagar',
'saldo_final']].groupby('total').sum()
total['recurso_vinculado'] = 9999
total['nome'] = 'Total'
total = total.reset_index(level=0)
total = total.drop('total', axis='columns')
data = pd.concat([data, total])
return data


def deficit_vinculados(data):
vinculados = data[(data['recurso_vinculado'] > 0) & (data['recurso_vinculado'] != 50)]
vinculados = data[(data['recurso_vinculado'] > 0) & (data['recurso_vinculado'] != 50) & (data['saldo_final'] < 0)]
resultado = round(vinculados['saldo_final'].sum(), 2)
if resultado < 0:
return resultado
Expand All @@ -104,4 +79,50 @@ def deficit_vinculados(data):
def resultado_proprio(data, deficit_vinculados):
proprio = data[data['recurso_vinculado'] == 0]
resultado = round(proprio['saldo_final'].sum(), 2)
return (resultado - deficit_vinculados)
return (resultado + deficit_vinculados)


def a_arrecadar(balrec, receita, month):
# pega receita realizada e previsão atualizada
df1 = balrec[['recurso_vinculado', 'receita_realizada', 'previsao_atualizada']]
df1 = df1[df1['recurso_vinculado'] > 0]
df1 = df1.groupby('recurso_vinculado').sum()

# Calcula reestimativa a partir do arrecadado + meta futura

df2 = receita.copy()
df2 = df2[df2['recurso_vinculado'] > 0]
df2['meta_1'] = round(df2['meta_1bim'] / 2, 2)
df2['meta_2'] = round(df2['meta_1bim'] / 2, 2)
df2['meta_3'] = round(df2['meta_2bim'] / 2, 2)
df2['meta_4'] = round(df2['meta_2bim'] / 2, 2)
df2['meta_5'] = round(df2['meta_3bim'] / 2, 2)
df2['meta_6'] = round(df2['meta_3bim'] / 2, 2)
df2['meta_7'] = round(df2['meta_4bim'] / 2, 2)
df2['meta_8'] = round(df2['meta_4bim'] / 2, 2)
df2['meta_9'] = round(df2['meta_5bim'] / 2, 2)
df2['meta_10'] = round(df2['meta_5bim'] / 2, 2)
df2['meta_11'] = round(df2['meta_6bim'] / 2, 2)
df2['meta_12'] = round(df2['meta_6bim'] / 2, 2)
df2['reestimativa'] = 0.0
for i in range(month + 1, 13, 1):
df2['reestimativa'] += round(df2[f'meta_{i}'], 2)
df2 = df2[['recurso_vinculado', 'reestimativa']]
df2 = df2.groupby('recurso_vinculado').sum()

# Mescla os df1 e df2
df3 = pd.merge(df1, df2, on='recurso_vinculado', how='left')

# Completa cálculo da reestimativa
df3['reestimativa'] = round(df3['reestimativa'] + df3['receita_realizada'], 2)

# Define o maior valore entre o arrecadado, a previsão atualizada e a reestimativa
df3['a_arrecadar'] = 0.0
df3['a_arrecadar'] = df3[['previsao_atualizada', 'receita_realizada', 'reestimativa']].max(axis=1, skipna=True,
numeric_only=True)

# Define o valor a arrecadar final
df3['a_arrecadar'] = round(df3['a_arrecadar'] - df3['receita_realizada'], 2)
df3 = df3.reset_index(level=0)
df = df3[['recurso_vinculado', 'a_arrecadar']]
return df
Binary file modified output/fcproj_report_2022-07.pdf
Binary file not shown.
18 changes: 18 additions & 0 deletions report.ps1
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# Inicia o venv
.\venv\Scripts\activate.ps1


$opt = '&Sim', '&Não'

# Processando o código Python
$RunR = $Host.UI.PromptForChoice('Executar Python', 'Deseja gerar os dados?', $opt, 0)
if ($RunR -eq 0) {
python main.py
if ($LASTEXITCODE -ne 0) {
Write-Error -Message "Um erro aconteceu: $LASTEXITCODE"
Pause
exit
}

} else {
Write-Host 'Pulando a geração dos dados com Python...'
}
Expand All @@ -14,6 +24,11 @@ $Output = Join-Path -Path 'output' -ChildPath $OutputFile

# Gerando a saída em PDF
pdflatex -file-line-error -halt-on-error -output-directory cache/ -output-format pdf report.tex
if ($LASTEXITCODE -ne 0) {
Write-Error -Message "Um erro aconteceu: $LASTEXITCODE"
Pause
exit
}
# Executa duas vezes por causa do longtable
pdflatex -file-line-error -halt-on-error -output-directory cache/ -output-format pdf report.tex

Expand All @@ -30,3 +45,6 @@ if ($ClearTrash -eq 0) {
} else {
Write-Host 'Os arquivos de cache não foram apagados...'
}

# desativa o venv
deactivate
2 changes: 1 addition & 1 deletion report.tex
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ \chapter*{Metodologia} \label{ch:metodologia}

\item[A arrecadar] considera os valores estimados a arrecadar desde o mês imediatamente posterior ao de referência até o final do exercício.\\Considera o maior dos valores entre o valor já arrecadado, a previsão atualizada da receita e a soma do arrecadado acrescido do previsto a arrecadar.

\item[A empenhar] considera que a totalidade da dotação atualizada será empregada no ano. Por isso é apurado a partir da subtração do valor empenhado da dotação atualizada.
\item[A empenhar] considera que a totalidade da dotação atualizada será empregada no ano, excluíds as reservas de contingência e do RPPS. Por isso é apurado a partir da subtração do valor empenhado da dotação atualizada.

\item[Empenhado a pagar] representa os valores empenhados, liquidados e não liquidados ainda não pagos. Expressa a premissa de que o total empenhado será pago no ano.

Expand Down

0 comments on commit 2e29705

Please sign in to comment.