source: publico/ILSAPL/branches/2.5/skins/sk_sapl/pysc/protocolo_proximo_obter_pysc.py @ 8237

Última Alteração nesse arquivo desde 8237 foi 8237, incluída por claudiomorale, 4 anos atrás

altera procedimentos protocolo

  • Propriedade svn:executable mudada para *
File size: 3.7 KB
Linha 
1## Script (Python) "protocolo_proximo_obter_pysc"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=opcao=""
8##title=
9##
10
11''' Script para a verificacao do numero de protocolo e inclusao de um novo.'''
12''' Faz a inclusao de sequencial por ano ou sequencial unico do nr de protocolo . '''
13''' ou, ainda, sequencial por legislatura '''
14''' a partir de 30/05/2016 passa a valer o seguinte: '''
15''' opcao = 0 ou 1 - sequencial por ano '''
16''' opcao = 2 - sequencial consecutivo '''
17''' opcao = 3 - sequencial por legislatura. '''
18#
19import string
20#-----------------------------correcao do num_protocolo em 2014 -------------------------
21total2014=0
22total2014=context.zsql.protocolo_2014total_obter_zsql(ano=2014)[0].total
23if int(total2014)>0:
24   context.zsql.protocolo_2014update_zsql()
25
26# Obtem o proximo "num_protocolo" por ano ou sequencial unico ----- 10/11/2014
27#
28#  opcao=1 - numeracao por ano, =2 - numeracao unica =3 - numeracao por legislatura
29
30# Busca os parametros iniciais
31#
32op=opcao
33try:
34   op=context.zsql.protocolo_tipo_numeracao_obter_zsql()[0].tip_numeracao_protocolo
35   di=context.zsql.protocolo_tipo_numeracao_obter_zsql()[0].dat_inicial_protocolo
36   vi=context.zsql.protocolo_tipo_numeracao_obter_zsql()[0].vlr_inicial_protocolo
37except:
38   di='0000-00-00 00:00:00'
39   vi=0
40
41di=str(di)                    # aaaa-mm-dd hh:mm:ss
42sodata=string.split(di, ' ')  # [aaaa-mm-dd, hh:mm:ss]
43dat_inicial=sodata[0]         # aaaa-mm-dd
44
45dh=DateTime().ISO()           # data corrente
46sodatah=string.split(dh, ' ')
47dh=sodatah[0]
48ano_corrente=dh[:4]           # aaaa corrente
49
50#return 'dat_inicial=' + str(dat_inicial) + ' - ' + 'dh=' + str(dh) + ' - ' + 'ano_corrente=' + str(ano_corrente) + ' - ' + ' op=' + str(op)
51
52num_protocolo=0
53
54if (int(op)<2):               # sequencial por ano
55   num_protocolo=context.zsql.protocolo_ultimo_obter_zsql(ano=ano_corrente)[0].num_protocolo
56   dat_ultimo_protocolo=context.zsql.protocolo_ultima_data_obter_zsql(ano_protocolo=ano_corrente)[0].dat_timestamp
57   if (dat_ultimo_protocolo <= di) and (dat_ultimo_protocolo!='0001-01-01 00:00:00'):
58      return vi
59   return num_protocolo + 1
60# -----------------------------------------------------------------------------------------------
61if (int(op)==2):              # sequencial consecutivo
62   num_protocolo=context.zsql.protocolo_ultimo_obter_zsql()[0].num_protocolo
63   dat_ultimo_protocolo=context.zsql.protocolo_ultima_data_obter_zsql()[0].dat_timestamp
64   if (dat_ultimo_protocolo <= di) and (num_protocolo < vi):
65      return vi
66   return num_protocolo + 1
67# -----------------------------------------------------------------------------------------------
68# op = 3  --> sequencial por legislatura, reiniciando em 1 a cada nova legislatura.
69#
70try:
71  dlf=context.zsql.legislatura_data_fim_obter_zsql(data_hoje=dh)[0].dat_fim
72  dlf=str(dlf)
73  df=string.split(dlf, '/')
74  dat_fim_legislatura=str(df[0]) + '-' + str(df[1]) + '-' + str(df[2]) 
75  dat_ultimo_protocolo=context.zsql.protocolo_ultima_data_obter_zsql()[0].dat_timestamp
76  num_protocolo=context.zsql.protocolo_ultimo_obter_zsql()[0].num_protocolo
77#
78  if (dat_ultimo_protocolo=='0001-01-01 00:00:00' or num_protocolo==0): # iniciando
79     return vi
80#
81  data=str(dat_ultimo_protocolo)
82  dtp=string.split(data, ' ')
83  dat_ult_prot=dtp[0]
84  if ((dat_ultimo_protocolo <= di)           and    #aaaa-mm-dd hh:mm:ss
85      (dat_fim_legislatura  >= dat_inicial)  and    #aaaa-mm-dd
86      (dat_fim_legislatura  >= dat_ult_prot) and    #aaaa-mm-dd
87      (num_protocolo < vi)
88     ):
89     return vi                # houve mudança no tipo de numeracao e/ou no valor inicial do protocolo
90except:
91  pass
92
93# retorna proximo numero de protocolo
94
95return num_protocolo + 1
96
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.