Skip to content

Commit

Permalink
Merge pull request #2957 from prefeiturasp/hotfix/9.6.1
Browse files Browse the repository at this point in the history
Hotfix/9.6.1
  • Loading branch information
alcfernandes authored Jun 19, 2024
2 parents 5e8b5a7 + c9e5115 commit a40a556
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 1 deletion.
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__ = "9.6.0"
__version__ = "9.6.1"

__version_info__ = tuple(
[
Expand Down
31 changes: 31 additions & 0 deletions sme_ptrf_apps/despesas/services/despesa_service.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import logging

from django.db.models import Count

from sme_ptrf_apps.core.models import Associacao, Periodo

logger = logging.getLogger(__name__)


def ordena_despesas_por_imposto(qs, lista_argumentos_ordenacao=None):

Expand All @@ -21,3 +27,28 @@ def ordena_despesas_por_imposto(qs, lista_argumentos_ordenacao=None):

return despesas_ordenadas


def migra_despesas_periodos_anteriores():
"""
Percorre todas as despesas com data de transação anterior ao período inicial de sua associação e atualiza os campos
despesa_anterior_ao_uso_do_sistema e despesa_anterior_ao_uso_do_sistema_pc_concluida.
O período inicial de uma associação é o período do seu saldo de implantação
"""
logger.info('Obtendo lista de todas as associações ativas..')
associacoes = Associacao.ativas.all()

for associacao in associacoes:
if associacao.periodo_inicial is None:
logger.info(f'Associação {associacao} não possui período inicial.')
continue

logger.info(f'Migrando despesas anteriores a {associacao.periodo_inicial.referencia} da associação {associacao}..')

despesas_anteriores = associacao.despesas.filter(data_transacao__lte=associacao.periodo_inicial.data_fim_realizacao_despesas)

for despesa in despesas_anteriores:
logger.info(f'Migrando despesa {despesa}..')
despesa.despesa_anterior_ao_uso_do_sistema = True
despesa.despesa_anterior_ao_uso_do_sistema_pc_concluida = associacao.prestacoes_de_conta_da_associacao.exists()
despesa.save()
1 change: 1 addition & 0 deletions sme_ptrf_apps/despesas/tasks/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .migrar_gastos_periodos_anteriores import migrar_gastos_periodos_anteriores_async
20 changes: 20 additions & 0 deletions sme_ptrf_apps/despesas/tasks/migrar_gastos_periodos_anteriores.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import logging

from celery import shared_task
from sme_ptrf_apps.despesas.services.despesa_service import migra_despesas_periodos_anteriores

logger = logging.getLogger(__name__)


@shared_task(
retry_backoff=2,
retry_kwargs={'max_retries': 8},
time_limet=600,
soft_time_limit=300
)
def migrar_gastos_periodos_anteriores_async():
logger.info('Iniciando a task de migração de gastos de períodos anteriores.')

migra_despesas_periodos_anteriores()

logger.info('Finalizado a task de migração de gastos de períodos anteriores.')

0 comments on commit a40a556

Please sign in to comment.