source: publico/ILSAPL/branches/2.4/skins/sk_sapl/relatorios/pdf_sessao_plenaria_preparar_pysc.py

Última Alteração nesse arquivo foi 5980, incluída por claudiomorale, 8 anos atrás

correção relatórios

File size: 11.5 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    cod_sessao_plen = context.REQUEST['cod_sessao_plen']
10    pauta = [] # lista contendo a pauta da ordem do dia a ser impressa   
11    data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd
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=cod_sessao_plen, 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+" No. "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
70            dic_expediente_materia["des_numeracao"]=""
71            numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia)
72            if len(numeracao):
73               numeracao = numeracao[0]
74               dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
75            dic_expediente_materia["txt_ementa"] = materia.txt_ementa
76            dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao
77            dic_expediente_materia["nom_autor"] = ''
78            autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1)       
79            if len(autoria) > 0: # se existe autor
80                autoria = autoria[0]
81                autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
82                if len(autor) > 0:
83                    autor = autor[0]
84           
85                if autor.des_tipo_autor == "Parlamentar":
86                    parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]     
87                    dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar
88                elif autor.des_tipo_autor == "Comissao":
89                    comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
90                    dic_expediente_materia["nom_autor"] = comissao.nom_comissao
91                else:
92                    dic_expediente_materia["nom_autor"] = autor.nom_autor
93           
94            if expediente_materia.tip_resultado_votacao:
95                resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0)
96                for i in resultado:
97                    dic_expediente_materia["nom_resultado"] = i.nom_resultado
98                    if expediente_materia.votacao_observacao:
99                        dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao
100            else:
101                dic_expediente_materia["nom_resultado"] = "Matéria não votada"
102                dic_expediente_materia["votacao_observacao"] = "Vazio"
103            lst_expediente_materia.append(dic_expediente_materia)
104
105        # Lista presença na ordem do dia
106        lst_presenca_ordem_dia = []
107        for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
108            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0):
109                dic_presenca_ordem_dia = {}
110                dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar
111                dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido
112                lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
113       
114        # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
115        lst_votacao=[]
116        for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
117       
118            # seleciona os detalhes de uma matéria
119            materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0]
120
121            dic_votacao = {}
122            dic_votacao["num_ordem"] = votacao.num_ordem
123            dic_votacao["id_materia"] = materia.sgl_tipo_materia+" - "+materia.des_tipo_materia+" No. "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
124            dic_votacao["des_numeracao"]=""
125            numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia)
126            if len(numeracao):
127               numeracao = numeracao[0]
128               dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
129            dic_votacao["txt_ementa"] = materia.txt_ementa
130            dic_votacao["ordem_observacao"] = votacao.ordem_observacao
131            dic_votacao["nom_autor"] = ''
132            autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1)       
133            if len(autoria) > 0: # se existe autor
134                autoria = autoria[0]
135                autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
136                if len(autor) > 0:
137                    autor = autor[0]
138           
139                if autor.des_tipo_autor == "Parlamentar":
140                    parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]     
141                    dic_votacao["nom_autor"] = parlamentar.nom_parlamentar
142                elif autor.des_tipo_autor == "Comissao":
143                    comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
144                    dic_votacao["nom_autor"] = comissao.nom_comissao
145                else:
146                    dic_votacao["nom_autor"] = autor.nom_autor
147           
148            if votacao.tip_resultado_votacao:
149                resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0)
150                for i in resultado:
151                    dic_votacao["nom_resultado"] = i.nom_resultado
152                    if votacao.votacao_observacao:
153                        dic_votacao["votacao_observacao"] = votacao.votacao_observacao
154            else:
155                dic_votacao["nom_resultado"] = "Matéria não votada"
156                dic_votacao["votacao_observacao"] = "Vazio"
157            lst_votacao.append(dic_votacao)
158
159        # Lista dos oradores
160        lst_oradores = []
161        for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
162            for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0):
163                dic_oradores = {}
164                dic_oradores["num_ordem"] = orador.num_ordem
165                dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar
166                dic_oradores['sgl_partido'] = parlamentar.sgl_partido
167                lst_oradores.append(dic_oradores)
168
169    # obtém as propriedades da casa legislativa para montar o cabeçalho e o rodapé da página
170    cabecalho={}
171
172    # tenta buscar o logotipo da casa LOGO_CASA
173    if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'):
174        imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url()
175    else:
176        imagem = context.imagens.absolute_url() + "/brasao_transp.gif"
177   
178    #Abaixo é gerado o dic do rodapé da página (linha 7)
179    casa={}
180    aux=context.sapl_documentos.props_sapl.propertyItems()
181    for item in aux:
182        casa[item[0]]=item[1]
183    localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"])
184    data_emissao= DateTime().strftime("%d/%m/%Y")
185    rodape= casa
186    rodape['data_emissao']= data_emissao
187
188    inf_basicas_dic['nom_camara']= casa['nom_casa']
189    REQUEST=context.REQUEST
190    for local in context.zsql.localidade_obter_zsql(cod_localidade = casa['cod_localidade']):
191        rodape['nom_localidade']= "   "+local.nom_localidade
192        rodape['sgl_uf']= local.sgl_uf
193
194#    return lst_votacao
195    sessao=session.id
196    caminho = context.pdf_sessao_plenaria_gerar(rodape, sessao, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_presenca_ordem_dia, lst_votacao, lst_oradores)
197    if caminho=='aviso':
198        return response.redirect('mensagem_emitir_proc')
199    else:
200       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.