Browse Source

Fix protocolação de Materia Legislativa

pull/1736/head
tapumar@gmail.com 7 years ago
parent
commit
d006c0fb42
  1. 2
      sapl/protocoloadm/forms.py
  2. 48
      sapl/protocoloadm/views.py

2
sapl/protocoloadm/forms.py

@ -412,6 +412,8 @@ class ProtocoloMateriaForm(ModelForm):
if self.is_valid(): if self.is_valid():
if data['vincular_materia'] == 'True': if data['vincular_materia'] == 'True':
try: try:
if not data['ano_materia'] or not data['numero_materia']:
raise ValidationError('Favor informar o número e ano da matéria a ser vinculada')
self.materia = MateriaLegislativa.objects.get(ano=data['ano_materia'], self.materia = MateriaLegislativa.objects.get(ano=data['ano_materia'],
numero=data['numero_materia'], numero=data['numero_materia'],
tipo=data['tipo_materia']) tipo=data['tipo_materia'])

48
sapl/protocoloadm/views.py

@ -289,17 +289,21 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
return self.render_to_response(self.get_context_data()) return self.render_to_response(self.get_context_data())
if numeracao == 'A': if numeracao == 'A':
numero = Protocolo.objects.filter( numero = MateriaLegislativa.objects.filter(
ano=timezone.now().year).aggregate(Max('numero')) ano=timezone.now().year, tipo=tipo).aggregate(Max('numero'))
elif numeracao == 'L': elif numeracao == 'L':
legislatura = Legislatura.objects.first() legislatura = Legislatura.objects.filter(
data_inicio__year__lte=timezone.now().year,
data_fim__year__gte=timezone.now().year).first()
data_inicio = legislatura.data_inicio data_inicio = legislatura.data_inicio
data_fim = legislatura.data_fim data_fim = legislatura.data_fim
numero = Protocolo.objects.filter( numero = MateriaLegislativa.objects.filter(
data__gte=data_inicio, data__lte=data_fim).aggregate( data_apresentacao__gte=data_inicio,
Max('numero')) data_apresentacao__lte=data_fim,
tipo=tipo).aggregate(
Max('numero'))
elif numeracao == 'U': elif numeracao == 'U':
numero = Protocolo.objects.all().aggregate(Max('numero')) numero = MateriaLegislativa.objects.filter(tipo=tipo).aggregate(Max('numero'))
f.tipo_processo = '0' # TODO validar o significado f.tipo_processo = '0' # TODO validar o significado
f.anulado = False f.anulado = False
@ -414,7 +418,6 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
'pk': protocolo.pk}) 'pk': protocolo.pk})
def form_valid(self, form): def form_valid(self, form):
try: try:
numeracao = sapl.base.models.AppConfig.objects.last( numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao ).sequencia_numeracao
@ -431,17 +434,21 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
numeracao = tipo.sequencia_numeracao numeracao = tipo.sequencia_numeracao
if numeracao == 'A': if numeracao == 'A':
numero = Protocolo.objects.filter( numero = MateriaLegislativa.objects.filter(
ano=timezone.now().year).aggregate(Max('numero')) ano=timezone.now().year, tipo=tipo).aggregate(Max('numero'))
elif numeracao == 'L': elif numeracao == 'L':
legislatura = Legislatura.objects.first() legislatura = Legislatura.objects.filter(
data_inicio__year__lte=timezone.now().year,
data_fim__year__gte=timezone.now().year).first()
data_inicio = legislatura.data_inicio data_inicio = legislatura.data_inicio
data_fim = legislatura.data_fim data_fim = legislatura.data_fim
numero = Protocolo.objects.filter( numero = MateriaLegislativa.objects.filter(
data__gte=data_inicio, data__lte=data_fim).aggregate( data_apresentacao__gte=data_inicio,
Max('numero')) data_apresentacao__lte=data_fim,
tipo=tipo).aggregate(
Max('numero'))
elif numeracao == 'U': elif numeracao == 'U':
numero = Protocolo.objects.all().aggregate(Max('numero')) numero = MateriaLegislativa.objects.filter(tipo=tipo).aggregate(Max('numero'))
if numeracao is None: if numeracao is None:
numero['numero__max'] = 0 numero['numero__max'] = 0
@ -469,11 +476,12 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.save() protocolo.save()
data = form.cleaned_data data = form.cleaned_data
materia = MateriaLegislativa.objects.get(ano=data['ano_materia'], if data['vincular_materia'] == 'True':
numero=data['numero_materia'], materia = MateriaLegislativa.objects.get(ano=data['ano_materia'],
tipo=data['tipo_materia']) numero=data['numero_materia'],
materia.numero_protocolo = protocolo.numero tipo=data['tipo_materia'])
materia.save() materia.numero_protocolo = protocolo.numero
materia.save()
return redirect(self.get_success_url(protocolo)) return redirect(self.get_success_url(protocolo))

Loading…
Cancel
Save