From 405a068397cdc28c7dbaf6b5e61fb3756dfaeae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Mon, 25 May 2020 19:14:06 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20corre=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/views.py | 22 ++++++++++++---------- sapl/protocoloadm/views.py | 29 ++++++++++++++++++----------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/sapl/base/views.py b/sapl/base/views.py index d41abbc21..b6e388d7b 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -2054,9 +2054,9 @@ class AppConfigCrud(CrudAux): if numeracao_nova != numeracao_antiga: if numeracao == 'A': - numeros = Protocolo.objects.filter( + numero_max = Protocolo.objects.filter( ano=timezone.now().year - ) + ).aggregate(Max('numero'))['numero__max'] elif numeracao == 'L': legislatura = Legislatura.objects.filter( data_inicio__year__lte=timezone.now().year, @@ -2066,17 +2066,19 @@ class AppConfigCrud(CrudAux): data_inicio = legislatura.data_inicio data_fim = legislatura.data_fim - numeros = Protocolo.objects.filter( - data__gte=data_inicio, - data_lte=data_fim - ) + numero_max = Protocolo.objects.filter( + data__gte=data_inicio, data_lte=data_fim + ).aggregate(Max('numero'))['numero__max'] elif numeracao == 'U': - numeros = Protocolo.objects.all() + numero_max = Protocolo.objects.all().aggregate( + Max('numero') + )['numero__max'] - if numeros: + ultimo_numero_cadastrado = int(numero_max) if numero_max else 0 + if numeracao_nova <= ultimo_numero_cadastrado and numeracao != 'U': msg = "O novo início da numeração de protocolo entrará em vigor na " \ - "próxima sequência, pois já existem protocolos cadastrados na " \ - "atual." + "próxima sequência, pois já existe protocolo cadastrado com " \ + "número superior ou igual ao número inicial definido." messages.warning(self.request, msg) return super().form_valid(form) diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index e32be4cd9..8aee6bd3c 100755 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -613,12 +613,14 @@ class ProtocoloDocumentoView(PermissionRequiredMixin, return self.render_to_response(self.get_context_data()) if numeracao == 'A': - numero = Protocolo.objects.filter( - ano=timezone.now().year).aggregate(Max('numero')) + numero_max = Protocolo.objects.filter(ano=timezone.now().year).aggregate( + Max('numero') + )['numero__max'] elif numeracao == 'L': legislatura = Legislatura.objects.filter( data_inicio__year__lte=timezone.now().year, - data_fim__year__gte=timezone.now().year).first() + data_fim__year__gte=timezone.now().year + ).first() data_inicio = legislatura.data_inicio data_fim = legislatura.data_fim @@ -638,14 +640,15 @@ class ProtocoloDocumentoView(PermissionRequiredMixin, timestamp_data_hora_manual__lte=data_fim_utc,)).\ aggregate(Max('numero')) elif numeracao == 'U': - numero = Protocolo.objects.all().aggregate(Max('numero')) + numero_max = Protocolo.objects.all().aggregate(Max('numero'))['numero__max'] protocolo.tipo_processo = '0' # TODO validar o significado protocolo.anulado = False - inicio_numeracao = AppConfig.objects.all()[0].inicio_numeracao_protocolo + inicio_numeracao = AppConfig.objects.first().inicio_numeracao_protocolo + numero = int(numero_max) if numero_max else 0 protocolo.numero = ( - (numero['numero__max'] + 1 ) if numero['numero__max'] else inicio_numeracao + (numero + 1 ) if numero and numero >= inicio_numeracao else inicio_numeracao ) protocolo.ano = timezone.now().year @@ -821,12 +824,15 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): return self.render_to_response(self.get_context_data()) if numeracao == 'A': - numero = Protocolo.objects.filter( - ano=timezone.now().year).aggregate(Max('numero')) + numero_max = Protocolo.objects.filter(ano=timezone.now().year).aggregate( + Max('numero') + )['numero__max'] elif numeracao == 'L': legislatura = Legislatura.objects.filter( data_inicio__year__lte=timezone.now().year, - data_fim__year__gte=timezone.now().year).first() + data_fim__year__gte=timezone.now().year + ).first() + data_inicio = legislatura.data_inicio data_fim = legislatura.data_fim @@ -846,11 +852,12 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView): aggregate(Max('numero')) elif numeracao == 'U': - numero = Protocolo.objects.all().aggregate(Max('numero')) + numero_max = Protocolo.objects.all().aggregate(Max('numero'))['numero__max'] inicio_numeracao = AppConfig.objects.first().inicio_numeracao_protocolo + numero = int(numero_max) if numero_max else 0 protocolo.numero = ( - (numero['numero__max'] + 1 ) if numero['numero__max'] else inicio_numeracao + (numero + 1 ) if numero and numero >= inicio_numeracao else inicio_numeracao ) protocolo.ano = timezone.now().year