Skip to content

Commit

Permalink
Merge pull request #1490 from prefeiturasp/hotfix/1.33.8
Browse files Browse the repository at this point in the history
Hotfix/1.33.8
  • Loading branch information
ollyvergithub authored Oct 10, 2022
2 parents d4dc66e + 3b13ae7 commit 56f7a4c
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 119 deletions.
3 changes: 3 additions & 0 deletions hotfixes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
### 1.33.8 - 10/10/2022 - Hotfix - Soluções de bugs urgentes durante a sprint 51
* (76004) Demonstrativo de Execução Físico-Financeira exibindo linha de total mesmo quando há apenas uma conta

### 1.33.7 - 05/10/2022 - Hotfix - Soluções de bugs urgentes durante a sprint 51
* (74981) Cadastro de membros: Código EOL de estudante não encontrado

Expand Down
2 changes: 1 addition & 1 deletion sme_ptrf_apps/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.33.7"
__version__ = "1.33.8"


__version_info__ = tuple(
Expand Down
16 changes: 13 additions & 3 deletions sme_ptrf_apps/dre/services/relatorio_consolidado_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -964,9 +964,10 @@ def _totaliza_previsoes_repasses_sme(associacao, periodo, tipo_conta, totais):

return totais

def _totaliza_devolucoes_ao_tesouro(prestacao_conta, periodo, totais):
def _totaliza_devolucoes_ao_tesouro(prestacao_conta, periodo, totais, tipo_conta):
# Devoluções ao tesouro de PCs de Associações da DRE, no período e concluídas
devolucoes = prestacao_conta.devolucoes_ao_tesouro_da_prestacao.all()

for devolucao in devolucoes:
totais['devolucoes_ao_tesouro_no_periodo_total'] += devolucao.valor

Expand Down Expand Up @@ -1008,11 +1009,20 @@ def _totaliza_devolucoes_ao_tesouro(prestacao_conta, periodo, totais):
if prestacao_conta:
totais = _totaliza_fechamentos(associacao, periodo, tipo_conta, totais)
totais = _atualiza_demais_creditos(totais)
totais = _totaliza_devolucoes_ao_tesouro(prestacao_conta, periodo, totais)
totais = _totaliza_devolucoes_ao_tesouro(prestacao_conta, periodo, totais, tipo_conta)

totais = _totaliza_previsoes_repasses_sme(associacao, periodo, tipo_conta, totais)

soma_dos_totais = sum(totais.values())
"""
Corrige exibição de conta sem valores quando uma associação
tiver 02 contas, porém valor cadastrado em apenas uma delas
e tiver devoluções ao tesouro cadastrada.
"""
totais_sem_devolucao_ao_tesouro = totais.copy()
key_to_remove = 'devolucoes_ao_tesouro_no_periodo_total'
totais_sem_devolucao_ao_tesouro.pop(key_to_remove, None) # No `KeyError` here

soma_dos_totais = sum(totais_sem_devolucao_ao_tesouro.values())

"""
Verificando se existe algum valor para incluir os dados no resultado
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,157 +201,161 @@

{% endfor %}

{% for valor in dados.execucao_financeira.total_todas_as_contas %}
{% if dados.execucao_financeira.por_tipo_de_conta|length > 1 %}

{% for valor in dados.execucao_financeira.total_todas_as_contas %}

{% comment %}
*************** Não remover <div> </div> ***************
Esta tag HTML que tem display block impede que a tabela quebre dentro da linha mesclada durante o for.
Na tabela, para evitar a quebra, foi utilizado a classe CSS nao-quebra-linha, que usa a regra break-after: avoid !important;.
Ref: Documentação do WeasyPrint. Its a miracle.
{% endcomment %}
<div> </div>
{% comment %}
*************** FIM Não remover <div> </div> ***************
{% endcomment %}
*************** Não remover <div> </div> ***************
Esta tag HTML que tem display block impede que a tabela quebre dentro da linha mesclada durante o for.
Na tabela, para evitar a quebra, foi utilizado a classe CSS nao-quebra-linha, que usa a regra break-after: avoid !important;.
Ref: Documentação do WeasyPrint. Its a miracle.
{% endcomment %}
<div> </div>
{% comment %}
*************** FIM Não remover <div> </div> ***************
{% endcomment %}

<table class="table table-bordered tabela-relatorio-dre nao-quebra-linha" >
<thead>
<tr>
<th colSpan="24" class="font-12"><strong>Execução financeira - {{ valor.tipo_conta }}</strong></th>
</tr>
<table class="table table-bordered tabela-relatorio-dre nao-quebra-linha" >
<thead>
<tr>
<th colSpan="2" style="width: 15%" class="th-fundo-branco">01 - Saldo reprogramado do período anterior</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="24" class="font-12"><strong>Execução financeira - {{ valor.tipo_conta }}</strong></th>
</tr>
<tr>
<th colSpan="2" style="width: 15%" class="th-fundo-branco">01 - Saldo reprogramado do período anterior</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" style="width: 10%" class="th-fundo-branco">02 - Previsto pela SME</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" style="width: 10%" class="th-fundo-branco">02 - Previsto pela SME</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" style="width: 15%" class="th-fundo-branco">03 - Transferido pela DRE </th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" style="width: 15%" class="th-fundo-branco">03 - Transferido pela DRE </th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" style="width: 10%" class="th-fundo-branco">04 - Outros créditos</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" style="width: 10%" class="th-fundo-branco">04 - Outros créditos</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" class="th-fundo-branco">05 - Valor total disponível</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" class="th-fundo-branco">05 - Valor total disponível</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" class="th-fundo-branco">06 - Despesa realizada</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" class="th-fundo-branco">06 - Despesa realizada</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="2" style="width: 15%" class="th-fundo-branco">07 - Saldo reprogramado para o próximo período</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>
<th colSpan="2" style="width: 15%" class="th-fundo-branco">07 - Saldo reprogramado para o próximo período</th>
<th rowspan="2" class="separacao-de-colunas-da-tabela"> </th>

<th colSpan="3" class="th-fundo-branco">08 - Devolução ao Tesouro</th>
</tr>
</thead>
<th colSpan="3" class="th-fundo-branco">08 - Devolução ao Tesouro</th>
</tr>
</thead>

<tbody style="border-top: none !important;">
<tr>
<tbody style="border-top: none !important;">
<tr>

<td rowSpan="2" style="width: 4%; padding: 5px 0 5px 5px">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.saldo_reprogramado_periodo_anterior_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%; padding: 5px 0 5px 5px">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.saldo_reprogramado_periodo_anterior_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.repasses_previstos_sme_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.repasses_previstos_sme_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.repasses_no_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.repasses_no_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.outros_creditos }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.outros_creditos }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.valor_total_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.valor_total_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="3" style="width: 4%">C</td>
<td rowSpan="3" class="text-right">{{ valor.custeio.despesas_no_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="3" style="width: 4%">C</td>
<td rowSpan="3" class="text-right">{{ valor.custeio.despesas_no_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.saldo_reprogramado_proximo_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>
<td rowSpan="2" style="width: 4%">C</td>
<td rowSpan="2" class="text-right">{{ valor.custeio.saldo_reprogramado_proximo_periodo_custeio }}</td>
<td rowspan="7" class="separacao-de-colunas-da-tabela"> </td>

<td rowSpan="8" colspan="2" class="text-center" style="width: 2%"><strong>T</strong></td>
<td rowSpan="8" colspan="2" class="text-right"><strong>{{ valor.totais.devolucoes_ao_tesouro_no_periodo_total }}</strong></td>
</tr>
<tr></tr>
<tr>
<td rowSpan="2" style="padding: 5px 0 5px 5px"> L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.saldo_reprogramado_periodo_anterior_livre }}</td>
<td rowSpan="8" colspan="2" class="text-center" style="width: 2%"><strong>T</strong></td>
<td rowSpan="8" colspan="2" class="text-right"><strong>{{ valor.totais.devolucoes_ao_tesouro_no_periodo_total }}</strong></td>
</tr>
<tr></tr>
<tr>
<td rowSpan="2" style="padding: 5px 0 5px 5px"> L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.saldo_reprogramado_periodo_anterior_livre }}</td>

<td rowSpan="2">L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.repasses_previstos_sme_livre }}</td>
<td rowSpan="2">L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.repasses_previstos_sme_livre }}</td>

<td rowSpan="2">L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.repasses_no_periodo_livre }}</td>
<td rowSpan="2">L</td>
<td rowSpan="2" class="text-right">{{ valor.livre.repasses_no_periodo_livre }}</td>

<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.outros_creditos }}</td>
<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.outros_creditos }}</td>

<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.valor_total_livre }}</td>
<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.valor_total_livre }}</td>

<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.saldo_reprogramado_proximo_periodo_livre }}</td>
<td style="display: inline-table; border:none !important;"></td>
<td rowSpan="2"> L</td>
<td rowSpan="2"
class="text-right">{{ valor.livre.saldo_reprogramado_proximo_periodo_livre }}</td>
<td style="display: inline-table; border:none !important;"></td>

</tr>
<tr>
<td rowSpan="3"> K</td>
<td rowSpan="3" class="text-right">{{ valor.capital.despesas_no_periodo_capital }}</td>
</tr>
<tr>
<td rowSpan="2" style="padding: 0 0 0 5px"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.saldo_reprogramado_periodo_anterior_capital }}</td>
</tr>
<tr>
<td rowSpan="3"> K</td>
<td rowSpan="3" class="text-right">{{ valor.capital.despesas_no_periodo_capital }}</td>
</tr>
<tr>
<td rowSpan="2" style="padding: 0 0 0 5px"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.saldo_reprogramado_periodo_anterior_capital }}</td>

<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.repasses_previstos_sme_capital }}</td>
<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.repasses_previstos_sme_capital }}</td>

<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.repasses_no_periodo_capital }}</td>
<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.repasses_no_periodo_capital }}</td>

<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.outros_creditos }}</td>
<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.outros_creditos }}</td>

<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.valor_total_capital }}</td>
<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.valor_total_capital }}</td>

<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.saldo_reprogramado_proximo_periodo_capital }}</td>
</tr>
<tr></tr>
<tr>
<td rowSpan="2"> K</td>
<td rowSpan="2" class="text-right">{{ valor.capital.saldo_reprogramado_proximo_periodo_capital }}</td>
</tr>
<tr></tr>
<tr>

<td rowSpan="2" style="padding: 5px 0 5px 5px"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.saldo_reprogramado_periodo_anterior_total }}</strong></td>
<td rowSpan="2" style="padding: 5px 0 5px 5px"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.saldo_reprogramado_periodo_anterior_total }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.repasses_previstos_sme_total }}</strong></td>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.repasses_previstos_sme_total }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.repasses_no_periodo_total }}</strong></td>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.repasses_no_periodo_total }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.outros_creditos }}</strong></td>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.outros_creditos }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.valor_total }}</strong></td>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.valor_total }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.despesas_no_periodo_total }}</strong></td>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.despesas_no_periodo_total }}</strong></td>

<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.saldo_reprogramado_proximo_periodo_total }}</strong></td>
</tr>
</tbody>
</table>
<td rowSpan="2"><strong>T</strong></td>
<td rowSpan="2" class="text-right"><strong>{{ valor.totais.saldo_reprogramado_proximo_periodo_total }}</strong></td>
</tr>
</tbody>
</table>

{% endfor %}
{% endfor %}

{% endif %}

0 comments on commit 56f7a4c

Please sign in to comment.