Browse Source

Retira associação de doc a protocolo do ano seguinte

Associávamos o documento administrativo a um protocolo
no ano seguinte quando não encontrávamos protocolo no ano do documento.
Isso estava gerando várias associações erradas então abolimos.
pull/2255/head
Marcio Mazza 6 years ago
parent
commit
f25a4c9011
  1. 71
      sapl/legacy/migracao_dados.py

71
sapl/legacy/migracao_dados.py

@ -1031,65 +1031,34 @@ def adjust_acompanhamentomateria(new, old):
new.confirmado = True new.confirmado = True
NOTA_DOCADM = '''
## NOTA DE MIGRAÇÃO DE DADOS DO SAPL 2.5 ##
O número de protocolo original deste documento era [{num_protocolo}], ano {ano_original}.
'''.strip() # noqa
def adjust_documentoadministrativo(new, old): def adjust_documentoadministrativo(new, old):
if old.num_protocolo: if old.num_protocolo:
nota = None numero, ano = old.num_protocolo, new.ano
ano_original = new.ano # False < True => o primeiro será o protocolo não anulado
protocolo = Protocolo.objects.filter( protocolos = Protocolo.objects.filter(
numero=old.num_protocolo, ano=new.ano) numero=numero, ano=ano).order_by('anulado')
if not protocolo: if protocolos:
# tentamos encontrar o protocolo no ano seguinte new.protocolo = protocolos[0]
ano_novo = ano_original + 1 else:
protocolo = Protocolo.objects.filter(numero=old.num_protocolo, # Se não achamos o protocolo registramos no número externo
ano=ano_novo) new.numero_externo = numero
if protocolo:
nota = NOTA_DOCADM + ''' nota = '''
O protocolo vinculado é o de mesmo número, porém do ano seguinte ({ano_novo}), ## NOTA DE MIGRAÇÃO DE DADOS DO SAPL 2.5 ##
pois não existe protocolo no sistema com este número no ano {ano_original}. O número de protocolo original deste documento era [{numero}], ano [{ano}].
'''
nota = nota.strip().format(num_protocolo=old.num_protocolo,
ano_original=ano_original,
ano_novo=ano_novo)
msg = 'PROTOCOLO ENCONTRADO APENAS PARA O ANO SEGUINTE!!!!! '\
'DocumentoAdministrativo: {cod_documento}, '\
'numero_protocolo: {num_protocolo}, '\
'ano doc adm: {ano_original}'
warn('protocolo_ano_seguinte', msg,
{'cod_documento': old.cod_documento,
'num_protocolo': old.num_protocolo,
'ano_original': ano_original,
'nota': nota})
else:
# Se não achamos mesmo no ano anteriro
# colocamos no número externo
new.numero_externo = old.num_protocolo
nota = NOTA_DOCADM + '''
Não existe no sistema nenhum protocolo com estes dados Não existe no sistema nenhum protocolo com estes dados
e portanto nenhum protocolo foi vinculado a este documento. e portanto nenhum protocolo foi vinculado a este documento.
Colocamos então o número de protocolo no campo "número externo". Colocamos então o número de protocolo no campo "número externo".
''' '''
nota = nota.format( nota = nota.strip().format(numero=numero, ano=ano)
num_protocolo=old.num_protocolo, msg = 'Protocolo {numero} faltando (referenciado ' \
ano_original=ano_original) 'no documento administrativo {cod_documento})'
msg = 'Protocolo {num_protocolo} faltando (referenciado ' \ warn('protocolo_faltando', msg,
'no documento administrativo {cod_documento})' {'numero': numero,
warn('protocolo_faltando', msg, 'cod_documento': old.cod_documento,
{'num_protocolo': old.num_protocolo, 'nota': nota})
'cod_documento': old.cod_documento,
'nota': nota})
if protocolo:
assert len(protocolo) == 1, 'mais de um protocolo encontrado'
[new.protocolo] = protocolo
# adiciona nota ao final da observação
if nota:
new.observacao += ('\n\n' if new.observacao else '') + nota new.observacao += ('\n\n' if new.observacao else '') + nota

Loading…
Cancel
Save