Browse Source

Fix #1922

pull/1927/head
Talitha 8 years ago
parent
commit
8a653a8c4a
  1. 30
      sapl/materia/forms.py
  2. 18
      sapl/protocoloadm/forms.py

30
sapl/materia/forms.py

@ -36,7 +36,7 @@ from sapl.materia.models import (AssuntoMateria, Autoria, MateriaAssunto,
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
from sapl.protocoloadm.models import Protocolo from sapl.protocoloadm.models import Protocolo, DocumentoAdministrativo
from sapl.settings import MAX_DOC_UPLOAD_SIZE from sapl.settings import MAX_DOC_UPLOAD_SIZE
from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES, from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES,
ChoiceWithoutValidationField, ChoiceWithoutValidationField,
@ -182,19 +182,39 @@ class MateriaLegislativaForm(ModelForm):
data_apresentacao = cleaned_data['data_apresentacao'] data_apresentacao = cleaned_data['data_apresentacao']
ano = cleaned_data['ano'] ano = cleaned_data['ano']
protocolo = cleaned_data['numero_protocolo']
protocolo_antigo = self.instance.numero_protocolo
if protocolo:
if not Protocolo.objects.filter(numero=protocolo,ano=ano).exists():
raise ValidationError(_('Protocolo %s/%s não'
' existe' % (protocolo, ano)))
if protocolo_antigo != protocolo:
exist_materia = MateriaLegislativa.objects.filter(
numero_protocolo=protocolo,
ano=ano).exists()
exist_doc = DocumentoAdministrativo.objects.filter(
protocolo_id=protocolo,
ano=ano).exists()
if exist_materia or exist_doc:
raise ValidationError(_('Protocolo %s/%s ja possui'
' documento vinculado'
% (protocolo, ano)))
if data_apresentacao.year != ano: if data_apresentacao.year != ano:
raise ValidationError("O ano da matéria não pode ser " raise ValidationError(_("O ano da matéria não pode ser "
"diferente do ano na data de apresentação") "diferente do ano na data de apresentação"))
ano_origem_externa = cleaned_data['ano_origem_externa'] ano_origem_externa = cleaned_data['ano_origem_externa']
data_origem_externa = cleaned_data['data_origem_externa'] data_origem_externa = cleaned_data['data_origem_externa']
if ano_origem_externa and data_origem_externa and \ if ano_origem_externa and data_origem_externa and \
ano_origem_externa != data_origem_externa.year: ano_origem_externa != data_origem_externa.year:
raise ValidationError("O ano de origem externa da matéria não " raise ValidationError(_("O ano de origem externa da matéria não "
"pode ser diferente do ano na data de " "pode ser diferente do ano na data de "
"origem externa") "origem externa"))
return cleaned_data return cleaned_data

18
sapl/protocoloadm/forms.py

@ -698,6 +698,24 @@ class DocumentoAdministrativoForm(ModelForm):
numero_protocolo, ano_protocolo)) numero_protocolo, ano_protocolo))
raise ValidationError(msg) raise ValidationError(msg)
try:
protocolo_antigo = self.instance.protocolo.numero
except:
protocolo_antigo = None
if str(protocolo_antigo) != numero_protocolo:
exist_materia = MateriaLegislativa.objects.filter(
numero_protocolo=numero_protocolo,
ano=ano_protocolo).exists()
exist_doc = DocumentoAdministrativo.objects.filter(
protocolo_id=numero_protocolo,
ano=ano_protocolo).exists()
if exist_materia or exist_doc:
raise ValidationError(_('Protocolo %s/%s ja possui'
' documento vinculado'
% (numero_protocolo, ano_protocolo)))
return self.cleaned_data return self.cleaned_data
def save(self, commit=True): def save(self, commit=True):

Loading…
Cancel
Save