diff --git a/sme_ptrf_apps/__init__.py b/sme_ptrf_apps/__init__.py index a115c00f8..02fa9bd16 100644 --- a/sme_ptrf_apps/__init__.py +++ b/sme_ptrf_apps/__init__.py @@ -1,4 +1,4 @@ -__version__ = "8.8.1" +__version__ = "8.8.2" __version_info__ = tuple( [ diff --git a/sme_ptrf_apps/core/models/participante.py b/sme_ptrf_apps/core/models/participante.py index 7017b75bf..e0478a078 100644 --- a/sme_ptrf_apps/core/models/participante.py +++ b/sme_ptrf_apps/core/models/participante.py @@ -58,6 +58,26 @@ def get_informacao_servidor(cls, identificador): } return result + + @staticmethod + def ordenar_por_cargo(participante): + cargos = { + 'Presidente da diretoria executiva': 1, + 'Vice-Presidente da diretoria executiva': 2, + 'Secretário': 3, + 'Tesoureiro': 4, + 'Vogal': 5, + 'Presidente do conselho fiscal': 6, + 'Conselheiro': 7, + } + return cargos.get(participante['cargo'], 8) # 8 para cargos não listados + + @classmethod + def participantes_ordenados_por_cargo(cls, ata, membro): + presentes_ata_membros = cls.objects.filter(ata=ata, membro=membro).values() + + presentes_ata_membros_ordenados = sorted(presentes_ata_membros, key=cls.ordenar_por_cargo) + return presentes_ata_membros_ordenados class Meta: verbose_name = "Participantes ata" diff --git a/sme_ptrf_apps/core/services/analise_prestacao_conta_service.py b/sme_ptrf_apps/core/services/analise_prestacao_conta_service.py index a929ff98c..7fbece79a 100644 --- a/sme_ptrf_apps/core/services/analise_prestacao_conta_service.py +++ b/sme_ptrf_apps/core/services/analise_prestacao_conta_service.py @@ -81,6 +81,10 @@ def copia_analises_de_lancamento(): # Todas as solicitações foram consideradas corretas automaticamente então passa a análise para correta nova_analise_lancamento.resultado = AnaliseLancamentoPrestacaoConta.RESULTADO_CORRETO nova_analise_lancamento.save() + + # Verifica se não há solicitações de acerto e, se não houver, exclui a nova_analise_lancamento + if not analise_lancamento.solicitacoes_de_ajuste_da_analise.exists(): + nova_analise_lancamento.delete() def copia_analise_documento(analise_documento_origem): from sme_ptrf_apps.core.models import AnaliseDocumentoPrestacaoConta diff --git a/sme_ptrf_apps/core/services/ata_dados_service.py b/sme_ptrf_apps/core/services/ata_dados_service.py index 655725f93..9bbca1928 100644 --- a/sme_ptrf_apps/core/services/ata_dados_service.py +++ b/sme_ptrf_apps/core/services/ata_dados_service.py @@ -82,14 +82,14 @@ def devolucoes_ao_tesouro_ata(ata, prestacao_de_contas): def presentes_ata(ata): from .membro_associacao_service import retorna_membros_do_conselho_fiscal_por_associacao - presentes_ata_membros = Participante.objects.filter(ata=ata).filter(membro=True).values() + presentes_ata_membros_ordenados = Participante.participantes_ordenados_por_cargo(ata, True) presentes_ata_nao_membros = Participante.objects.filter(ata=ata).filter(membro=False).filter( conselho_fiscal=False).order_by('nome').values() presentes_ata_conselho_fiscal = retorna_membros_do_conselho_fiscal_por_associacao(ata.associacao) presentes_na_ata = { - "presentes_ata_membros": presentes_ata_membros, + "presentes_ata_membros": presentes_ata_membros_ordenados, "presentes_ata_nao_membros": presentes_ata_nao_membros, "presentes_ata_conselho_fiscal": presentes_ata_conselho_fiscal, } diff --git a/sme_ptrf_apps/core/services/membro_associacao_service.py b/sme_ptrf_apps/core/services/membro_associacao_service.py index 75ec9effb..76cbd18a7 100644 --- a/sme_ptrf_apps/core/services/membro_associacao_service.py +++ b/sme_ptrf_apps/core/services/membro_associacao_service.py @@ -2,6 +2,7 @@ from functools import reduce from django.db.models import Q from operator import or_ +from operator import itemgetter import requests from django.conf import settings @@ -110,6 +111,7 @@ def retorna_membros_do_conselho_fiscal_por_associacao(associacao): reduce(or_, [Q(cargo_associacao__icontains=c) for c in cargos_membros_conselho_fiscal])) lista_content = [] + presidente = None for membro in result: content = { @@ -123,6 +125,12 @@ def retorna_membros_do_conselho_fiscal_por_associacao(associacao): 'uuid': membro.uuid, } - lista_content.append(content) + if "PRESIDENTE_CONSELHO_FISCAL" in membro.cargo_associacao: + presidente = content + else: + lista_content.append(content) + + if presidente: + lista_content.insert(0, presidente) return lista_content