Browse Source

Add pauta_sessao report

pull/202/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
c5194a4941
  1. 80
      relatorios/templates/pdf_pauta_sessao_gerar.py
  2. 7
      relatorios/urls.py
  3. 188
      relatorios/views.py

80
relatorios/templates/pdf_pauta_sessao_gerar.py

@ -12,47 +12,33 @@ def cabecalho(inf_basicas_dic,imagem):
"""
"""
tmp = ''
tmp+='\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + imagem + '"/>\n'
tmp += '\t\t\t\t<image x="2.1cm" y="25.7cm" width="59" height="62" file="' + \
imagem + '"/>\n'
tmp += '\t\t\t\t<lines>2cm 25.4cm 19cm 25.4cm</lines>\n'
tmp += '\t\t\t\t<setFont name="Helvetica-Bold" size="14"/>\n'
tmp+='\t\t\t\t<drawString x="5cm" y="27.2cm">' + str(inf_basicas_dic["nom_camara"]) + '</drawString>\n'
tmp += '\t\t\t\t<drawString x="5cm" y="27.2cm">' + \
str(inf_basicas_dic["nom_camara"]) + '</drawString>\n'
tmp += '\t\t\t\t<setFont name="Helvetica" size="12"/>\n'
tmp += '\t\t\t\t<drawString x="5cm" y="26.6cm">Sistema de Apoio ao Processo Legislativo</drawString>\n'
tmp += '\t\t\t\t<setFont name="Helvetica-Bold" size="12"/>\n'
tmp+='\t\t\t\t<drawString x="2.2cm" y="24.6cm">Pauta 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'
tmp += '\t\t\t\t<drawString x="2.2cm" y="24.6cm">Pauta 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'
return tmp
def rodape(rodape_dic):
"""
"""
tmp=''
linha1 = rodape_dic['end_casa']
linha2 = ''
if rodape_dic['end_casa']!="" and rodape_dic['end_casa']!=None:
linha1 = linha1 + " - "
if rodape_dic['num_cep']!="" and rodape_dic['num_cep']!=None:
linha1 = linha1 + "CEP " + rodape_dic['num_cep']
if rodape_dic['nom_localidade']!="" and rodape_dic['nom_localidade']!=None:
linha1 = linha1 + " - " + rodape_dic['nom_localidade']
if rodape_dic['sgl_uf']!="" and rodape_dic['sgl_uf']!=None:
linha1 = linha1 + " " + rodape_dic['sgl_uf']
if rodape_dic['num_tel']!="" and rodape_dic['num_tel']!=None:
linha1 = linha1 + " Tel: "+ rodape_dic['num_tel']
if rodape_dic['end_web_casa']!="" and rodape_dic['end_web_casa']!=None:
linha1 = rodape_dic['end_web_casa']
if rodape_dic['end_email_casa']!="" and rodape_dic['end_email_casa']!=None:
linha2 = linha2 + " - E-mail: " + rodape_dic['end_email_casa']
if rodape_dic['data_emissao']!="" and rodape_dic['data_emissao']!=None:
data_emissao = rodape_dic['data_emissao']
tmp+='\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
tmp+='\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
tmp+='\t\t\t\t<drawString x="2cm" y="3.3cm">' + data_emissao + '</drawString>\n'
tmp+='\t\t\t\t<drawString x="17.9cm" y="3.3cm">Página <pageNumber/></drawString>\n'
tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + linha1 + '</drawCentredString>\n'
tmp+='\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + linha2 + '</drawCentredString>\n'
return tmp
def rodape(lst_rodape):
"""Gera o codigo rml do rodape"""
tmp_data = ''
tmp_data += '\t\t\t\t<lines>2cm 3.2cm 19cm 3.2cm</lines>\n'
tmp_data += '\t\t\t\t<setFont name="Helvetica" size="8"/>\n'
tmp_data += '\t\t\t\t<drawString x="2cm" y="3.3cm">' + \
lst_rodape[2] + '</drawString>\n'
tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="2.7cm">' + \
lst_rodape[0] + '</drawCentredString>\n'
tmp_data += '\t\t\t\t<drawCentredString x="10.5cm" y="2.3cm">' + \
lst_rodape[1] + '</drawCentredString>\n'
return tmp_data
def paraStyle():
"""
@ -95,6 +81,7 @@ def paraStyle():
return tmp
def inf_basicas(inf_basicas_dic):
"""
"""
@ -112,8 +99,11 @@ def inf_basicas(inf_basicas_dic):
tmp += '\t\t<para style="P2">\n'
tmp += '\t\t\t<font color="white"> </font>\n'
tmp += '\t\t</para>\n'
tmp+='\t\t<para style="P2" spaceAfter="5"><b>Tipo da Sessão: </b> ' + nom_sessao + '</para>\n'
tmp+='\t\t<para style="P2" spaceAfter="5"><b>Abertura: </b> ' + dat_inicio_sessao + ' <b>- </b> ' + hr_inicio_sessao + '</para>\n'
tmp += '\t\t<para style="P2" spaceAfter="5"><b>Tipo da Sessão: </b> ' + \
nom_sessao + '</para>\n'
tmp += '\t\t<para style="P2" spaceAfter="5"><b>Abertura: </b> ' + \
dat_inicio_sessao.strftime(
"%d/%m/%Y") + ' <b>- </b> ' + hr_inicio_sessao + '</para>\n'
return tmp
@ -129,14 +119,17 @@ def expediente_materia(lst_expediente_materia):
tmp += '<blockTable style="repeater" repeatRows="1">\n'
tmp += '<tr><td >Matéria</td><td>Ementa</td><td>Situação</td></tr>\n'
for expediente_materia in lst_expediente_materia:
tmp+= '<tr><td><para style="P3"><b>' + str(expediente_materia['num_ordem']) + '</b> - ' + expediente_materia['id_materia'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + expediente_materia['nom_autor'] +'</para></td>\n'
tmp += '<tr><td><para style="P3"><b>' + str(expediente_materia['num_ordem']) + '</b> - ' + expediente_materia[
'id_materia'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + expediente_materia['nom_autor'] + '</para></td>\n'
txt_ementa = expediente_materia['txt_ementa'].replace('&', '&amp;')
tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\n'
tmp+='<td><para style="P3">' + expediente_materia['des_situacao'] + '</para></td></tr>\n'
tmp += '<td><para style="P3">' + \
str(expediente_materia['des_situacao']) + '</para></td></tr>\n'
tmp += '\t\t</blockTable>\n'
return tmp
def votacao(lst_votacao):
"""
"""
@ -149,14 +142,18 @@ def votacao(lst_votacao):
tmp += '<blockTable style="repeater" repeatRows="1">\n'
tmp += '<tr><td >Matéria</td><td >Ementa</td><td>Situação</td></tr>\n'
for votacao in lst_votacao:
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>Turno: </b>' + votacao['des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] + '</para></td>\n'
tmp+='<td><para style="P4">' + votacao['txt_ementa'] + '</para></td>\n'
tmp+='<td><para style="P3">' + votacao['des_situacao'] + '</para></td></tr>\n'
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>Turno: </b>' + votacao['des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] + '</para></td>\n'
tmp += '<td><para style="P4">' + \
votacao['txt_ementa'] + '</para></td>\n'
tmp += '<td><para style="P3">' + \
str(votacao['des_situacao']) + '</para></td></tr>\n'
tmp += '\t\t</blockTable>\n'
return tmp
def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic):
def principal(cabecalho_dic, rodape_dic, sessao, imagem, inf_basicas_dic, lst_expediente_materia, lst_votacao):
"""
"""
@ -182,6 +179,7 @@ def principal(cabecalho, rodape, sessao, imagem, inf_basicas_dic):
tmp += votacao(lst_votacao)
tmp += '\t</story>\n'
tmp += '</document>\n'
tmp_pdf = parseString(tmp)
return tmp_pdf

7
relatorios/urls.py

@ -3,7 +3,8 @@ from django.conf.urls import url
from .views import (relatorio_documento_administrativo, relatorio_materia,
relatorio_ordem_dia, relatorio_processo,
relatorio_protocolo, relatorio_espelho,
relatorio_etiqueta_protocolo)
relatorio_etiqueta_protocolo,
relatorio_pauta_sessao)
urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),
@ -19,5 +20,7 @@ urlpatterns = [
url(r'^relatorios/protocolo$',
relatorio_protocolo, name='relatorio_protocolo'),
url(r'^relatorios/etiqueta_protocolo$',
relatorio_etiqueta_protocolo, name='relatorio_etiqueta_protocolo')
relatorio_etiqueta_protocolo, name='relatorio_etiqueta_protocolo'),
url(r'^relatorios/pauta_sessao$',
relatorio_pauta_sessao, name='relatorio_pauta_sessao'),
]

188
relatorios/views.py

@ -8,20 +8,19 @@ from comissoes.models import Comissao
from materia.models import (Autor, Autoria, MateriaLegislativa, Numeracao,
Tramitacao, UnidadeTramitacao)
from django.http import HttpResponse
from parlamentares.models import Parlamentar
from protocoloadm.models import (DocumentoAdministrativo, Protocolo,
TramitacaoAdministrativo)
from sessao.models import OrdemDia, SessaoPlenaria
from sessao.models import (ExpedienteMateria, OrdemDia, SessaoPlenaria)
from .templates import (pdf_capa_processo_gerar,
pdf_documento_administrativo_gerar,
pdf_espelho_gerar,
pdf_materia_gerar,
pdf_protocolo_gerar,
pdf_etiqueta_protocolo_gerar)
pdf_etiqueta_protocolo_gerar,
pdf_pauta_sessao_gerar)
def get_cabecalho(casa):
@ -694,3 +693,184 @@ def get_etiqueta_protocolos(prots):
protocolos.append(dic)
return protocolos
def relatorio_pauta_sessao(request):
'''
pdf__pauta_sessao_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_pauta_sessao.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
sessao = SessaoPlenaria.objects.first()
lst_expediente_materia, lst_votacao, inf_basicas_dic = get_pauta_sessao(
sessao, casa)
pdf = pdf_pauta_sessao_gerar.principal(cabecalho,
rodape,
sessao,
imagem,
inf_basicas_dic,
lst_expediente_materia,
lst_votacao)
response.write(pdf)
return response
def get_pauta_sessao(sessao, casa):
inf_basicas_dic = {}
inf_basicas_dic["nom_sessao"] = sessao.tipo.nome
inf_basicas_dic["num_sessao_plen"] = sessao.numero
inf_basicas_dic["num_legislatura"] = sessao.legislatura
inf_basicas_dic["num_sessao_leg"] = sessao.legislatura
inf_basicas_dic["dat_inicio_sessao"] = sessao.data_inicio
inf_basicas_dic["hr_inicio_sessao"] = sessao.hora_inicio
inf_basicas_dic["dat_fim_sessao"] = sessao.data_fim
inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim
inf_basicas_dic["nom_camara"] = casa.nome
lst_expediente_materia = []
for expediente_materia in ExpedienteMateria.objects.filter(
data_ordem=sessao.data_inicio, sessao_plenaria=sessao):
materia = MateriaLegislativa.objects.filter(
id=expediente_materia.materia.id).first()
dic_expediente_materia = {}
dic_expediente_materia["num_ordem"] = str(
expediente_materia.numero_ordem)
dic_expediente_materia["id_materia"] = str(
materia.numero) + "/" + str(materia.ano)
dic_expediente_materia["txt_ementa"] = materia.ementa
dic_expediente_materia["ordem_observacao"] = str(
expediente_materia.observacao)
dic_expediente_materia["des_numeracao"] = ' '
numeracao = Numeracao.objects.filter(materia=materia)
if numeracao is not None:
numeracao = numeracao.first()
dic_expediente_materia["des_numeracao"] = str(numeracao)
dic_expediente_materia["nom_autor"] = ' '
autoria = Autoria.objects.filter(
materia=materia, primeiro_autor=True).first()
if autoria is not None:
autor = Autor.objects.filter(id=autoria.autor.id)
if autor is not None:
autor = autor.first()
if autor.tipo == 'Parlamentar':
parlamentar = Parlamentar.objects.filter(
id=autor.parlamentar.id)
dic_expediente_materia["nom_autor"] = str(
parlamentar.nome_completo)
elif autor.tipo == 'Comissao':
comissao = Comissao.objects.filter(id=autor.comissao.id)
dic_expediente_materia["nom_autor"] = str(comissao)
else:
dic_expediente_materia["nom_autor"] = str(autor.nome)
elif autoria is None:
dic_expediente_materia["nom_autor"] = 'Desconhecido'
dic_expediente_materia["des_turno"] = ' '
dic_expediente_materia["des_situacao"] = ' '
tramitacao = Tramitacao.objects.filter(materia=materia)
if tramitacao is not None:
tramitacao = tramitacao.first()
if tramitacao.turno != '':
for turno in [("P", "Primeiro"),
("S", "Segundo"),
("U", "Único"),
("F", "Final"),
("L", "Suplementar"),
("A", "Votação Única em Regime de Urgência"),
("B", "1ª Votação"),
("C", "2ª e 3ª Votações")]:
if tramitacao.turno == turno.first():
dic_expediente_materia["des_turno"] = turno.first()
dic_expediente_materia["des_situacao"] = tramitacao.status
if dic_expediente_materia["des_situacao"] is None:
dic_expediente_materia["des_situacao"] = ' '
lst_expediente_materia.append(dic_expediente_materia)
lst_votacao = []
for votacao in OrdemDia.objects.filter(
data_ordem=sessao.data_inicio, sessao_plenaria=sessao):
materia = MateriaLegislativa.objects.filter(
id=votacao.materia.id).first()
dic_votacao = {}
dic_votacao["num_ordem"] = votacao.numero_ordem
dic_votacao["id_materia"] = str(
materia.numero) + "/" + str(materia.ano)
dic_votacao["txt_ementa"] = materia.ementa
dic_votacao["ordem_observacao"] = votacao.observacao
dic_votacao["des_numeracao"] = ' '
numeracao = Numeracao.objects.filter(materia=materia)
# if numeracao is not None:
# numeracao = numeracao.first()
# dic_votacao["des_numeracao"] = str(
# numeracao.numero) + '/' + str(numeracao.ano)
dic_votacao["nom_autor"] = ' '
autoria = Autoria.objects.filter(
materia=materia, primeiro_autor=True).first()
if autoria is not None:
autor = Autor.objects.filter(id=autoria.autor.id)
if autor is not None:
autor = autor.first()
if autor.tipo == 'Parlamentar':
parlamentar = Parlamentar.objects.filter(
id=autor.parlamentar.id)
dic_votacao["nom_autor"] = str(parlamentar.nome_completo)
elif autor.tipo == 'Comissao':
comissao = Comissao.objects.filter(
id=autor.comissao.id)
dic_votacao["nom_autor"] = str(comissao)
else:
dic_votacao["nom_autor"] = str(autor.nome)
elif autoria is None:
dic_votacao["nom_autor"] = 'Desconhecido'
dic_votacao["des_turno"] = ' '
dic_votacao["des_situacao"] = ' '
tramitacao = Tramitacao.objects.filter(materia=materia)
if tramitacao is not None:
tramitacao = tramitacao.first()
if tramitacao.turno != '':
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")]:
if tramitacao.turno == turno.first():
dic_votacao["des_turno"] = turno.first()
dic_votacao["des_situacao"] = tramitacao.status
if dic_votacao["des_situacao"] is None:
dic_votacao["des_situacao"] = ' '
lst_votacao.append(dic_votacao)
return (lst_expediente_materia,
lst_votacao,
inf_basicas_dic)

Loading…
Cancel
Save