source: publico/il.sapl/trunk/il/sapl/skins/relatorios/pdf_sessao_plenaria_preparar_pysc.py

Última Alteração nesse arquivo foi 7913, incluída por gustavolepri, 5 anos atrás

correção

File size: 16.8 KB
Linha 
1import os
2
3request=context.REQUEST
4response=request.RESPONSE
5session= request.SESSION
6
7if context.REQUEST['data']!='':
8    dat_inicio_sessao = context.REQUEST['data']
9    pauta = [] # lista contendo a pauta da ordem do dia a ser impressa   
10    data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd
11    codigo = context.REQUEST['cod_sessao_plen']
12
13    # seleciona as matérias que compõem a pauta na data escolhida
14    for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0):
15        inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria
16        # seleciona o tipo da sessao plenaria
17        tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0]
18        inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao
19        inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen
20        inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao
21        inf_basicas_dic["num_legislatura"] = sessao.num_legislatura
22        inf_basicas_dic["num_sessao_leg"] = sessao.num_sessao_leg
23        inf_basicas_dic["dat_inicio_sessao"] = sessao.dat_inicio_sessao
24        inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao
25        inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao
26        inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao
27 
28        # Lista da composicao da mesa diretora
29        lst_mesa = []
30        for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
31            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar,ind_excluido=0):
32                for cargo in context.zsql.cargo_mesa_obter_zsql(cod_cargo=composicao.cod_cargo, ind_excluido=0):
33                    dic_mesa = {}
34                    dic_mesa['nom_parlamentar'] = parlamentar.nom_parlamentar
35                    dic_mesa['sgl_partido'] = parlamentar.sgl_partido
36                    dic_mesa['des_cargo'] = cargo.des_cargo
37                    lst_mesa.append(dic_mesa)
38
39        # Lista de presença na sessão
40        lst_presenca_sessao = []
41        for presenca in context.zsql.presenca_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
42            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar,ind_excluido=0):
43                dic_presenca = {}
44                dic_presenca["nom_parlamentar"] = parlamentar.nom_parlamentar
45                dic_presenca['sgl_partido'] = parlamentar.sgl_partido
46                lst_presenca_sessao.append(dic_presenca)
47
48        # Exibe os Expedientes
49        lst_expedientes = []
50        dic_expedientes = None
51        for tip_expediente in context.zsql.tipo_expediente_obter_zsql():
52            for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,cod_expediente=tip_expediente.cod_expediente, ind_excluido=0):
53                dic_expedientes = {}
54                dic_expedientes["nom_expediente"] = tip_expediente.nom_expediente
55                dic_expedientes["txt_expediente"] = expediente.txt_expediente
56
57            if dic_expedientes:
58                lst_expedientes.append(dic_expedientes)
59     
60        # Lista das matérias do Expediente, incluindo o resultado das votacoes
61        lst_expediente_materia=[]
62        for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
63       
64            # seleciona os detalhes de uma matéria
65            materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0]
66
67            dic_expediente_materia = {}
68            dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem
69            dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
70            dic_expediente_materia["des_numeracao"]=""
71
72            numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia)
73            if len(numeracao):
74               numeracao = numeracao[0]
75               dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
76
77            tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
78            dic_expediente_materia["des_turno"]=""
79            if len(tram):
80               tram_turno = tram[0]
81               if tram_turno.sgl_turno != "":           
82                  for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações"), ("F", "Final")]:
83                    if tram_turno.sgl_turno == turno[0]:
84                        dic_expediente_materia["des_turno"] = turno[1]
85
86            dic_expediente_materia["txt_ementa"] = materia.txt_ementa
87            dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao
88#           dic_expediente_materia["nom_autor"] = ""
89
90            lst_autoria_exp_mat=[]
91            a="2"
92            n="NC-em"
93            nc=n
94            t="não definido"
95 
96            for autoria in context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia):       
97#           if len(autoria) > 0: # se existe autor
98#               autoria = autoria[0]
99                a="2"
100                if autoria.ind_primeiro_autor==1:
101                   a="1"
102                for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor):
103#               if len(autor) > 0:
104#                   autor = autor[0]
105                    try:
106                      if autor.des_tipo_autor == "Parlamentar":
107                         parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]     
108#                        dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar
109                         n=parlamentar.nom_parlamentar
110                         nc=parlamentar.nom_completo
111                         t="Parlamentar"
112                      elif autor.des_tipo_autor == "Comissao":
113                         comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
114#                        dic_expediente_materia["nom_autor"] = comissao.nom_comissao
115                         n=comissao.sgl_comissao
116                         nc=comissao.nom_comissao
117                         t="Comissão"
118                      elif autor.nom_autor != "":
119#                        dic_expediente_materia["nom_autor"] = autor.nom_autor
120                         n=autor.nom_autor
121                         nc=n
122                         t=autor.des_tipo_autor
123                      else:
124#                        dic_expediente_materia["nom_autor"] = autor.des_tipo_autor
125                         n=autor.des_tipo_autor
126                         nc=n
127                         t=autor.des_tipo_autor
128                    except:
129#                     dic_expediente_materia["nom_autor"] = "NC-em"
130                      n="NC-em"
131                      nc=n
132                      t="não definido"
133                    lst_autoria_exp_mat.append({a+n:[a,n,nc,t]})
134
135            lst_autoria_exp_mat.sort()
136            if len(lst_autoria_exp_mat)>0: 
137               dic_expediente_materia["autoria_exp_mat"]=lst_autoria_exp_mat
138            else:
139               lst_autoria_exp_mat.append({a+n:[a,n,nc,t]})
140               dic_expediente_materia["autoria_exp_mat"]=lst_autoria_exp_mat
141 
142            dic_expediente_materia["votacao_observacao"]=""
143            if expediente_materia.tip_resultado_votacao:
144                resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0)
145                for i in resultado:
146                    dic_expediente_materia["nom_resultado"] = i.nom_resultado
147                    if expediente_materia.votacao_observacao:
148                        dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao
149            else:
150                dic_expediente_materia["nom_resultado"] = "Matéria não votada"
151                dic_expediente_materia["votacao_observacao"] = "Vazio"
152            lst_expediente_materia.append(dic_expediente_materia)
153
154        # Lista dos oradores do Expediente
155        lst_oradores_expediente = []
156        for orador_expediente in context.zsql.oradores_expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
157            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador_expediente.cod_parlamentar,ind_excluido=0):
158                dic_oradores_expediente = {}
159                dic_oradores_expediente["num_ordem"] = orador_expediente.num_ordem
160                dic_oradores_expediente["nom_parlamentar"] = parlamentar.nom_parlamentar
161                dic_oradores_expediente['sgl_partido'] = parlamentar.sgl_partido
162                lst_oradores_expediente.append(dic_oradores_expediente)
163
164        # Lista presença na ordem do dia
165        lst_presenca_ordem_dia = []
166        for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
167            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0):
168                dic_presenca_ordem_dia = {}
169                dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar
170                dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido
171                lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
172       
173        # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
174        lst_votacao=[]
175        for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
176       
177            # seleciona os detalhes de uma matéria
178            materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0]
179
180            dic_votacao = {}
181            dic_votacao["num_ordem"] = votacao.num_ordem
182            dic_votacao["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
183            dic_votacao["des_numeracao"]=""
184            numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia)
185            if len(numeracao):
186               numeracao = numeracao[0]
187               dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
188            dic_votacao["des_turno"]=""
189            tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1)
190            if len(tramitacao):
191               tramitacao = tramitacao[0]
192            tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
193            if len(tram):
194               tram_turno = tram[0]
195               if tram_turno.sgl_turno != "":           
196                  for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("F","Final"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]:
197                    if tram_turno.sgl_turno == turno[0]:
198                        dic_votacao["des_turno"] = turno[1]
199            dic_votacao["txt_ementa"] = materia.txt_ementa
200            dic_votacao["ordem_observacao"] = votacao.ordem_observacao
201#           dic_votacao["nom_autor"] = ""
202            lst_autoria_od=[]
203            a="2"
204            n="NC-od"
205            nc="NC - OD"
206            t="não definido"
207
208            for autoria in context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia):       
209#               if len(autoria) > 0: # se existe autor
210#                  autoria = autoria[0]
211                a="2"
212                n="NC-od"
213                nc="NC - OD"
214                t="não definido"
215                if autoria.ind_primeiro_autor==1:
216                   a="1"
217                for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor):
218#                    if len(autor) > 0:
219#                      autor = autor[0]
220                    try:           
221                       if autor.des_tipo_autor == "Parlamentar":
222                          parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]     
223#                         dic_votacao["nom_autor"] = parlamentar.nom_parlamentar
224                          n=parlamentar.nom_parlamentar
225                          nc=parlamentar.nom_completo
226                          t="Parlamentar"
227                       elif autor.des_tipo_autor == "Comissao":
228                          comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
229#                         dic_votacao["nom_autor"] = comissao.nom_comissao
230                          n=comissao.sgl_comissao
231                          nc=comissao.nom_comissao
232                          t="Comissão"
233                       elif autor.nom_autor != "":
234#                         dic_votacao["nom_autor"] = autor.nom_autor
235                          n=autor.nom_autor
236                          nc=autor.nom_autor
237                          t=autor.des_tipo_autor
238                       else:
239#                         dic_votacao["nom_autor"] = autor.des_tipo_autor
240                          n=autor.des_tipo_autor
241                          nc=autor.des_tipo_autor
242                          t=autor.des_tipo_autor
243                    except:
244#                      dic_votacao["nom_autor"] = "NC-od"
245                       n="NC-od"
246                       nc="NC - OD"
247                       t="não definido"
248
249                    lst_autoria_od.append({a+n:[a,n,nc,t]})
250
251            lst_autoria_od.sort()
252            if len(lst_autoria_od)>0:
253               dic_votacao["autoria_od"]=lst_autoria_od
254            else:
255               lst_autoria_od.append({a+n:[a,n,nc,t]})
256               dic_votacao["autoria_od"]=lst_autoria_od
257
258            dic_votacao["votacao_observacao"]=""
259            if votacao.tip_resultado_votacao:
260                resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0)
261                for i in resultado:
262                    dic_votacao["nom_resultado"] = i.nom_resultado
263                    if votacao.votacao_observacao:
264                        dic_votacao["votacao_observacao"] = votacao.votacao_observacao
265            else:
266                dic_votacao["nom_resultado"] = "Matéria não votada"
267                dic_votacao["votacao_observacao"] = "Vazio"
268            lst_votacao.append(dic_votacao)
269
270        # Lista dos oradores nas Explicações Pessoais
271        lst_oradores = []
272        for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
273            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0):
274                dic_oradores = {}
275                dic_oradores["num_ordem"] = orador.num_ordem
276                dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar
277                dic_oradores['sgl_partido'] = parlamentar.sgl_partido
278                lst_oradores.append(dic_oradores)
279
280    # obtém as propriedades da casa legislativa para montar o cabeçalho e o rodapé da página
281    cabecalho={}
282
283    # tenta buscar o logotipo da casa LOGO_CASA
284    if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'):
285        imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url()
286    else:
287        imagem = context.imagens.absolute_url() + "/brasao_transp.gif"
288   
289    #Abaixo é gerado o dic do rodapé da página (linha 7)
290    casa={}
291    aux=context.sapl_documentos.props_sapl.propertyItems()
292    for item in aux:
293        casa[item[0]]=item[1]
294    localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"])
295    data_emissao= DateTime().strftime("%d/%m/%Y")
296    rodape= casa
297    rodape['data_emissao']= data_emissao
298
299    inf_basicas_dic['nom_camara']= casa['nom_casa']
300    REQUEST=context.REQUEST
301    for local in context.zsql.localidade_obter_zsql(cod_localidade = casa['cod_localidade']):
302        rodape['nom_localidade']= "   "+local.nom_localidade
303        rodape['sgl_uf']= local.sgl_uf
304
305#    return lst_votacao
306    sessao=session.id
307    caminho = context.pdf_sessao_plenaria_gerar(rodape, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores, sessao)
308    if caminho=='aviso':
309        return response.redirect('mensagem_emitir_proc')
310    else:
311       response.redirect(caminho)
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.