source: publico/ILSAPL/branches/2.4/skins/sk_sapl/relatorios/pdf_sessao_plenaria_gerar.py @ 5384

Última Alteração nesse arquivo desde 5384 foi 5384, incluída por lucianodefazio, 8 anos atrás

Adiciona número do processo no PDF da Sessão Plenária (Resumo)

File size: 11.0 KB
Linha 
1##parameters=rodape_dic, sessao='', imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_presenca_ordem_dia, lst_votacao, lst_oradores
2"""Script para geração do PDF das sessoes plenarias
3   Autor: Gustavo Lepri
4   Atualizado por Luciano De Fázio - 24/09/2011
5   versão: 1.0
6"""
7from trml2pdf import parseString
8from cStringIO import StringIO
9import time
10
11def cabecalho(inf_basicas_dic,imagem):
12    """
13    """
14    tmp=''
15    tmp+='\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + imagem + '"/>\n'
16    tmp+='\t\t\t\t<lines>2cm 25.4cm 19cm 25.4cm</lines>\n'
17    tmp+='\t\t\t\t<setFont name="Helvetica-Bold" size="14"/>\n'
18    tmp+='\t\t\t\t<drawString x="5cm" y="27.2cm">' + str(inf_basicas_dic["nom_camara"]) + '</drawString>\n'
19    tmp+='\t\t\t\t<setFont name="Helvetica" size="12"/>\n'
20    tmp+='\t\t\t\t<drawString x="5cm" y="26.6cm">Sistema de Apoio ao Processo Legislativo</drawString>\n'
21    tmp+='\t\t\t\t<setFont name="Helvetica-Bold" size="12"/>\n'
22    tmp+='\t\t\t\t<drawString x="2.2cm" y="24.6cm">Resumo da ' + str(inf_basicas_dic['num_sessao_plen']) + 'ª Reunião ' + str(inf_basicas_dic['nom_sessao']) + ' da ' + str(inf_basicas_dic['num_sessao_leg']) + 'ª Sessão Legislativa da ' + str(inf_basicas_dic['num_legislatura']) + 'ª Legislatura </drawString>\n'
23    return tmp
24
25def rodape(rodape_dic):
26    """
27    """
28    tmp=''
29    linha1 = rodape_dic['end_casa']
30    if rodape_dic['end_casa']!="" and rodape_dic['end_casa']!=None:
31        linha1 = linha1 + " - "
32    if rodape_dic['num_cep']!="" and rodape_dic['num_cep']!=None:
33        linha1 = linha1 + "CEP " + rodape_dic['num_cep']
34    if rodape_dic['nom_localidade']!="" and rodape_dic['nom_localidade']!=None:
35        linha1 = linha1 + " - " + rodape_dic['nom_localidade']
36    if rodape_dic['sgl_uf']!="" and rodape_dic['sgl_uf']!=None:
37        linha1 = linha1 + " " + rodape_dic['sgl_uf']
38    if rodape_dic['num_tel']!="" and rodape_dic['num_tel']!=None:
39        linha1 = linha1 + " Tel: "+ rodape_dic['num_tel']
40    if rodape_dic['end_web_casa']!="" and rodape_dic['end_web_casa']!=None:
41        linha2 = rodape_dic['end_web_casa']
42    if rodape_dic['end_email_casa']!="" and rodape_dic['end_email_casa']!=None:
43        linha2 = linha2 + " - E-mail: " + rodape_dic['end_email_casa']
44    if rodape_dic['data_emissao']!="" and rodape_dic['data_emissao']!=None:
45        data_emissao = rodape_dic['data_emissao']
46
47    tmp+='\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
48    tmp+='\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
49    tmp+='\t\t\t\t<drawString x="2cm" y="3.3cm">' + data_emissao + '</drawString>\n'
50    tmp+='\t\t\t\t<drawString x="17.9cm" y="3.3cm">Página <pageNumber/></drawString>\n'
51    tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + linha1 + '</drawCentredString>\n'
52    tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + linha2 + '</drawCentredString>\n'
53
54    return tmp
55
56def paraStyle():
57    """
58    """
59    tmp=''
60    tmp+='\t<stylesheet>\n'
61    tmp+='\t\t<blockTableStyle id="votacao">\n'
62    tmp+='\t\t\t<blockBackground colorName="silver" start="0,0" stop="3,0" />\n'
63    tmp+='\t\t\t<lineStyle kind="GRID" colorName="silver" />\n'
64    tmp +='\t\t\t<blockAlignment value="CENTER"/>\n'
65    tmp+='\t\t\t<blockValign value="MIDDLE"/>\n'
66    tmp+='\t\t</blockTableStyle>\n'
67    tmp+='\t\t<initialize>\n'
68    tmp+='\t\t\t<paraStyle name="all" alignment="justify"/>\n'
69    tmp+='\t\t</initialize>\n'
70    tmp+='\t\t<paraStyle name="style.Title" fontName="Helvetica" fontSize="11" leading="13" alignment="RIGHT"/>\n'
71    tmp+='\t\t<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="12.0" textColor="silver" leading="14" spaceBefore="12" alignment="LEFT"/>\n'
72    tmp+='\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="10.0" leading="10" alignment="JUSTIFY"/>\n'
73    tmp+='\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="9" leading="10" spaceAfter="3" alignment="LEFT"/>\n'
74    tmp+='\t\t<paraStyle name="P4" fontName="Helvetica" fontSize="9" leading="10" spaceAfter="3" alignment="JUSTIFY"/>\n'
75    tmp+='\t\t<paraStyle name="texto_projeto" fontName="Helvetica" fontSize="12.0" leading="12" spaceAfter="10" alignment="JUSTIFY"/>\n'
76    tmp+='\t\t<paraStyle name="numOrdem" alignment="CENTER"/>\n'
77    tmp+='\t</stylesheet>\n'
78
79    return tmp
80
81def inf_basicas(inf_basicas_dic):
82    """
83    """
84    tmp=""
85    nom_sessao = inf_basicas_dic['nom_sessao']
86    num_sessao_plen = inf_basicas_dic["num_sessao_plen"]
87    num_sessao_leg = inf_basicas_dic["num_sessao_leg"]
88    num_legislatura = inf_basicas_dic["num_legislatura"]
89    dat_inicio_sessao = inf_basicas_dic["dat_inicio_sessao"]
90    hr_inicio_sessao =  inf_basicas_dic["hr_inicio_sessao"]
91    dat_fim_sessao = inf_basicas_dic["dat_fim_sessao"]
92    hr_fim_sessao = inf_basicas_dic["hr_fim_sessao"]
93
94    tmp+='\t\t<para style="P1">Informações Básicas</para>\n'
95    tmp+='\t\t<para style="P2">\n'
96    tmp+='\t\t\t<font color="white"> </font>\n'
97    tmp+='\t\t</para>\n'
98    tmp+='\t\t<para style="P2" spaceAfter="5"><b>Tipo da Sessão: </b> ' + nom_sessao + '</para>\n'
99    tmp+='\t\t<para style="P2" spaceAfter="5"><b>Abertura: </b> ' + dat_inicio_sessao + ' <b>- </b> ' + hr_inicio_sessao + '</para>\n'
100    tmp+='\t\t<para style="P2" spaceAfter="5"><b>Encerramento: </b> ' + dat_fim_sessao + ' <b>- </b> ' + hr_fim_sessao + '</para>\n'
101 
102    return tmp
103
104def mesa(lst_mesa):
105    """
106   
107    """
108    tmp=''
109    tmp+='\t\t<para style="P1">Mesa Diretora</para>\n'
110    tmp+='\t\t<para style="P2">\n'
111    tmp+='\t\t\t<font color="white"> </font>\n'
112    tmp+='\t\t</para>\n'
113    for mesa in lst_mesa:
114        tmp+='\t\t<para style="P2" spaceAfter="5"><b>'+ str(mesa['des_cargo']) +':</b> ' + str(mesa['nom_parlamentar']) + '/' + str(mesa['sgl_partido']) +'</para>\n'
115    return tmp
116
117def presenca(lst_presenca_sessao):
118    """
119   
120    """
121    tmp = ''
122    tmp+='\t\t<para style="P1">Lista de Presença da Sessão</para>\n'
123    tmp+='\t\t<para style="P2">\n'
124    tmp+='\t\t\t<font color="white"> </font>\n'
125    tmp+='\t\t</para>\n'
126    for presenca in lst_presenca_sessao:
127        tmp+='\t\t<para style="P2" spaceAfter="5">'+ str(presenca['nom_parlamentar']) + '/' + str(presenca['sgl_partido']) +'</para>\n'
128    return tmp
129
130def expedientes(lst_expedientes):
131    """
132   
133    """
134    tmp = ''
135    tmp+='\t\t<para style="P1">Expedientes</para>\n'
136    tmp+='\t\t<para style="P2">\n'
137    tmp+='\t\t\t<font color="white"> </font>\n'
138    tmp+='\t\t</para>\n'
139    for expediente in lst_expedientes:
140        tmp+='\t\t<para style="P2"><b>' + expediente['nom_expediente'] +': </b> ' + str(expediente['txt_expediente']) +'</para>\n'
141        tmp+='\t\t<para style="P2">\n'
142        tmp+='\t\t\t<font color="white"> </font>\n'
143        tmp+='\t\t</para>\n'
144    return tmp
145
146def expediente_materia(lst_expediente_materia):
147    """
148    """
149
150    tmp = ''
151    tmp+='<para style="P1">Matérias do Expediente</para>\n\n'
152    tmp+='\t\t<para style="P2">\n'
153    tmp+='\t\t\t<font color="white"> </font>\n'
154    tmp+='\t\t</para>\n'
155    tmp+='<blockTable style="votacao" repeatRows="1" colWidths="5cm,8cm,4cm">\n'
156    tmp+='<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n'
157    for expediente_materia in lst_expediente_materia:
158        tmp+= '<tr><td><para style="P3"><b>' + str(expediente_materia['num_ordem']) + '</b> - ' + expediente_materia['id_materia'] + '</para>\n' + '<para style="P3"><b>Processo: </b>' + expediente_materia['des_numeracao'] +'</para>\n' + '<para style="P3"><b>Autor: </b>' + expediente_materia['nom_autor'] +'</para></td>\n'
159        tmp+='<td><para style="P4">' + expediente_materia['txt_ementa'] + '</para></td>\n'
160        tmp+='<td><para style="P3">' + expediente_materia['nom_resultado'] + '</para></td></tr>\n'
161
162    tmp+='\t\t</blockTable>\n'
163    return tmp
164
165def presenca_ordem_dia(lst_presenca_ordem_dia):
166    """
167   
168    """
169    tmp = ''
170    tmp+='\t\t<para style="P1">Lista de Presença da Ordem do Dia</para>\n'
171    tmp+='\t\t<para style="P2">\n'
172    tmp+='\t\t\t<font color="white"> </font>\n'
173    tmp+='\t\t</para>\n'
174    for presenca_ordem_dia in lst_presenca_ordem_dia:
175        tmp+='\t\t<para style="P2" spaceAfter="5">'+ str(presenca_ordem_dia['nom_parlamentar']) + '/' + str(presenca_ordem_dia['sgl_partido']) +'</para>\n'
176    return tmp
177
178def votacao(lst_votacao):
179    """
180    """
181
182    tmp = ''
183    tmp+='<para style="P1">Matérias da Ordem do Dia</para>\n\n'
184    tmp+='\t\t<para style="P2">\n'
185    tmp+='\t\t\t<font color="white"> </font>\n'
186    tmp+='\t\t</para>\n'
187    tmp+='<blockTable style="votacao" repeatRows="1" colWidths="5cm,8cm,4cm">\n'
188    tmp+='<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n'
189    for votacao in lst_votacao:
190        tmp+= '<tr><td><para style="P3"><b>'+ str(votacao['num_ordem']) + '</b> - ' + votacao['id_materia'] + '</para>\n' + '<para style="P3"><b>Processo: </b>' + votacao['des_numeracao'] +'</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] +'</para></td>\n'
191        tmp+='<td><para style="P4">' + votacao['txt_ementa'] + '</para></td>\n'
192        tmp+='<td><para style="P3">' + votacao['nom_resultado'] + '</para></td></tr>\n'
193
194    tmp+='\t\t</blockTable>\n'
195    return tmp
196
197def oradores(lst_oradores):
198    """
199   
200    """
201    tmp = ''
202    tmp+='\t\t<para style="P1">Oradores Inscritos</para>\n'
203    tmp+='\t\t<para style="P2">\n'
204    tmp+='\t\t\t<font color="white"> </font>\n'
205    tmp+='\t\t</para>\n'
206    for orador in lst_oradores:
207        tmp+='\t\t<para style="P2" spaceAfter="5"><b>'+ str(orador['num_ordem']) +'</b> - ' + orador['nom_parlamentar'] + '/' + str(orador['sgl_partido']) +'</para>\n'
208    return tmp
209
210def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic):
211    """
212    """
213
214    arquivoPdf=str(int(time.time()*100))+".pdf"
215
216    tmp=''
217    tmp+='<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>\n'
218    tmp+='<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
219    tmp+='<document filename="relatorio.pdf">\n'
220    tmp+='\t<template pageSize="(21cm, 29.7cm)" title="Sessao Plenaria" author="Interlegis" allowSplitting="20">\n'
221    tmp+='\t\t<pageTemplate id="first">\n'
222    tmp+='\t\t\t<pageGraphics>\n'
223    tmp+=cabecalho(inf_basicas_dic,imagem)
224    tmp+=rodape(rodape_dic)
225    tmp+='\t\t\t</pageGraphics>\n'
226    tmp+='\t\t\t<frame id="first" x1="2cm" y1="4cm" width="17cm" height="20.5cm"/>\n'
227    tmp+='\t\t</pageTemplate>\n'
228    tmp+='\t</template>\n'
229    tmp+=paraStyle()
230    tmp+='\t<story>\n'
231    tmp+=inf_basicas(inf_basicas_dic)
232    tmp+=mesa(lst_mesa)
233    tmp+=presenca(lst_presenca_sessao)
234    tmp+=expedientes(lst_expedientes)
235    tmp+=expediente_materia(lst_expediente_materia)
236    tmp+=presenca_ordem_dia(lst_presenca_ordem_dia)
237    tmp+=votacao(lst_votacao)
238    tmp+=oradores(lst_oradores)
239    tmp+='\t</story>\n'
240    tmp+='</document>\n'
241    tmp_pdf=parseString(tmp)
242
243    if hasattr(context.temp_folder,arquivoPdf):
244        context.temp_folder.manage_delObjects(ids=arquivoPdf)
245    context.temp_folder.manage_addFile(arquivoPdf)
246    arq=context.temp_folder[arquivoPdf]
247    arq.manage_edit(title='Arquivo PDF temporario.',filedata=tmp_pdf,content_type='application/pdf')
248
249    return "/temp_folder/"+arquivoPdf
250
251return principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic)
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.