Browse Source

Fix #1735 (#1736)

* Fix protocolação de Materia Legislativa

* Fix #1735

* Fix #1735
pull/1741/head
Talitha Pumar 7 years ago
committed by Edward
parent
commit
cd083f7430
  1. 2
      sapl/protocoloadm/forms.py
  2. 77
      sapl/protocoloadm/views.py

2
sapl/protocoloadm/forms.py

@ -412,6 +412,8 @@ class ProtocoloMateriaForm(ModelForm):
if self.is_valid():
if data['vincular_materia'] == 'True':
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'],
numero=data['numero_materia'],
tipo=data['tipo_materia'])

77
sapl/protocoloadm/views.py

@ -277,8 +277,7 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
kwargs={'pk': self.object.id})
def form_valid(self, form):
f = form.save(commit=False)
protocolo = form.save(commit=False)
try:
numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao
@ -288,30 +287,36 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
messages.add_message(self.request, messages.ERROR, msg)
return self.render_to_response(self.get_context_data())
tipo = form.cleaned_data['tipo_documento']
if numeracao == 'A':
numero = Protocolo.objects.filter(
ano=timezone.now().year).aggregate(Max('numero'))
numero = DocumentoAdministrativo.objects.filter(
ano=timezone.now().year, tipo=tipo).aggregate(Max('numero'))
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_fim = legislatura.data_fim
numero = Protocolo.objects.filter(
data__gte=data_inicio, data__lte=data_fim).aggregate(
Max('numero'))
numero = DocumentoAdministrativo.objects.filter(
data__gte=data_inicio,
data__lte=data_fim,
tipo=tipo).aggregate(
Max('numero'))
elif numeracao == 'U':
numero = Protocolo.objects.all().aggregate(Max('numero'))
f.tipo_processo = '0' # TODO validar o significado
f.anulado = False
f.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1
f.ano = timezone.now().year
f.data = timezone.now()
f.hora = timezone.now().time()
f.timestamp = timezone.now()
f.assunto_ementa = self.request.POST['assunto']
f.save()
self.object = f
numero = DocumentoAdministrativo.objects.filter(tipo=tipo).aggregate(Max('numero'))
protocolo.tipo_processo = '0' # TODO validar o significado
protocolo.anulado = False
protocolo.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1
protocolo.ano = timezone.now().year
protocolo.data = timezone.now()
protocolo.hora = timezone.now().time()
protocolo.timestamp = timezone.now()
protocolo.assunto_ementa = self.request.POST['assunto']
protocolo.save()
self.object = protocolo
return redirect(self.get_success_url())
@ -414,7 +419,6 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
'pk': protocolo.pk})
def form_valid(self, form):
try:
numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao
@ -431,17 +435,21 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
numeracao = tipo.sequencia_numeracao
if numeracao == 'A':
numero = Protocolo.objects.filter(
ano=timezone.now().year).aggregate(Max('numero'))
numero = MateriaLegislativa.objects.filter(
ano=timezone.now().year, tipo=tipo).aggregate(Max('numero'))
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_fim = legislatura.data_fim
numero = Protocolo.objects.filter(
data__gte=data_inicio, data__lte=data_fim).aggregate(
Max('numero'))
numero = MateriaLegislativa.objects.filter(
data_apresentacao__gte=data_inicio,
data_apresentacao__lte=data_fim,
tipo=tipo).aggregate(
Max('numero'))
elif numeracao == 'U':
numero = Protocolo.objects.all().aggregate(Max('numero'))
numero = MateriaLegislativa.objects.filter(tipo=tipo).aggregate(Max('numero'))
if numeracao is None:
numero['numero__max'] = 0
@ -469,11 +477,12 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
protocolo.save()
data = form.cleaned_data
materia = MateriaLegislativa.objects.get(ano=data['ano_materia'],
numero=data['numero_materia'],
tipo=data['tipo_materia'])
materia.numero_protocolo = protocolo.numero
materia.save()
if data['vincular_materia'] == 'True':
materia = MateriaLegislativa.objects.get(ano=data['ano_materia'],
numero=data['numero_materia'],
tipo=data['tipo_materia'])
materia.numero_protocolo = protocolo.numero
materia.save()
return redirect(self.get_success_url(protocolo))

Loading…
Cancel
Save