diff --git a/relatorios/templates/pdf_pauta_sessao_gerar.py b/relatorios/templates/pdf_pauta_sessao_gerar.py index d28340542..31910156f 100755 --- a/relatorios/templates/pdf_pauta_sessao_gerar.py +++ b/relatorios/templates/pdf_pauta_sessao_gerar.py @@ -8,113 +8,103 @@ import time from trml2pdf import parseString -def cabecalho(inf_basicas_dic,imagem): +def cabecalho(inf_basicas_dic, imagem): """ """ - tmp='' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + str(inf_basicas_dic["nom_camara"]) + '\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\tPauta 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 \n' + tmp = '' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\t' + \ + str(inf_basicas_dic["nom_camara"]) + '\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\tSistema de Apoio ao Processo Legislativo\n' + tmp += '\t\t\t\t\n' + tmp += '\t\t\t\tPauta 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 \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\t2cm 3.2cm 19cm 3.2cm\n' - tmp+='\t\t\t\t\n' - tmp+='\t\t\t\t' + data_emissao + '\n' - tmp+='\t\t\t\tPágina \n' - tmp+='\t\t\t\t' + linha1 + '\n' - tmp+='\t\t\t\t' + linha2 + '\n' - return tmp +def rodape(lst_rodape): + """Gera o codigo rml do rodape""" + tmp_data = '' + tmp_data += '\t\t\t\t2cm 3.2cm 19cm 3.2cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[2] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[0] + '\n' + tmp_data += '\t\t\t\t' + \ + lst_rodape[1] + '\n' + return tmp_data + def paraStyle(): """ """ - tmp='' - tmp+='\t\n' - tmp+='\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\n' - - tmp+='\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\t\n' - tmp +='\t\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\t\n' - tmp+='\t\n' + tmp = '' + tmp += '\t\n' + tmp += '\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\n' + + tmp += '\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\t\n' + tmp += '\t\n' return tmp + def inf_basicas(inf_basicas_dic): """ """ - tmp="" + tmp = "" nom_sessao = inf_basicas_dic['nom_sessao'] num_sessao_plen = inf_basicas_dic["num_sessao_plen"] num_sessao_leg = inf_basicas_dic["num_sessao_leg"] num_legislatura = inf_basicas_dic["num_legislatura"] dat_inicio_sessao = inf_basicas_dic["dat_inicio_sessao"] - hr_inicio_sessao = inf_basicas_dic["hr_inicio_sessao"] + hr_inicio_sessao = inf_basicas_dic["hr_inicio_sessao"] dat_fim_sessao = inf_basicas_dic["dat_fim_sessao"] hr_fim_sessao = inf_basicas_dic["hr_fim_sessao"] - tmp+='\t\tInformações Básicas\n' - tmp+='\t\t\n' - tmp+='\t\t\t \n' - tmp+='\t\t\n' - tmp+='\t\tTipo da Sessão: ' + nom_sessao + '\n' - tmp+='\t\tAbertura: ' + dat_inicio_sessao + ' - ' + hr_inicio_sessao + '\n' - + tmp += '\t\tInformações Básicas\n' + tmp += '\t\t\n' + tmp += '\t\t\t \n' + tmp += '\t\t\n' + tmp += '\t\tTipo da Sessão: ' + \ + nom_sessao + '\n' + tmp += '\t\tAbertura: ' + \ + dat_inicio_sessao.strftime( + "%d/%m/%Y") + ' - ' + hr_inicio_sessao + '\n' + return tmp @@ -122,67 +112,75 @@ def expediente_materia(lst_expediente_materia): """ """ tmp = '' - tmp+='Matérias do Expediente\n\n' - tmp+='\t\t\n' - tmp+='\t\t\t \n' - tmp+='\t\t\n' - tmp+='\n' - tmp+='MatériaEmentaSituação\n' + tmp += 'Matérias do Expediente\n\n' + tmp += '\t\t\n' + tmp += '\t\t\t \n' + tmp += '\t\t\n' + tmp += '\n' + tmp += 'MatériaEmentaSituação\n' for expediente_materia in lst_expediente_materia: - tmp+= '' + str(expediente_materia['num_ordem']) + ' - ' + expediente_materia['id_materia'] + '\n' + 'Autor: ' + expediente_materia['nom_autor'] +'\n' - txt_ementa = expediente_materia['txt_ementa'].replace('&','&') - tmp+='' + txt_ementa + '\n' - tmp+='' + expediente_materia['des_situacao'] + '\n' - - tmp+='\t\t\n' + tmp += '' + str(expediente_materia['num_ordem']) + ' - ' + expediente_materia[ + 'id_materia'] + '\n' + 'Autor: ' + expediente_materia['nom_autor'] + '\n' + txt_ementa = expediente_materia['txt_ementa'].replace('&', '&') + tmp += '' + txt_ementa + '\n' + tmp += '' + \ + str(expediente_materia['des_situacao']) + '\n' + + tmp += '\t\t\n' return tmp + def votacao(lst_votacao): """ """ tmp = '' - tmp+='Matérias da Ordem do Dia\n\n' - tmp+='\t\t\n' - tmp+='\t\t\t \n' - tmp+='\t\t\n' - tmp+='\n' - tmp+='MatériaEmentaSituação\n' + tmp += 'Matérias da Ordem do Dia\n\n' + tmp += '\t\t\n' + tmp += '\t\t\t \n' + tmp += '\t\t\n' + tmp += '\n' + tmp += 'MatériaEmentaSituação\n' for votacao in lst_votacao: - tmp+= '' + str(votacao['num_ordem']) + ' - ' + votacao['id_materia'] + '\n' + 'Processo: ' + votacao['des_numeracao'] + '\n' + 'Turno: ' + votacao['des_turno'] + '\n' + 'Autor: ' + votacao['nom_autor'] + '\n' - tmp+='' + votacao['txt_ementa'] + '\n' - tmp+='' + votacao['des_situacao'] + '\n' - - tmp+='\t\t\n' + tmp += '' + str(votacao['num_ordem']) + ' - ' + votacao['id_materia'] + '\n' + 'Processo: ' + votacao[ + 'des_numeracao'] + '\n' + 'Turno: ' + votacao['des_turno'] + '\n' + 'Autor: ' + votacao['nom_autor'] + '\n' + tmp += '' + \ + votacao['txt_ementa'] + '\n' + tmp += '' + \ + str(votacao['des_situacao']) + '\n' + + tmp += '\t\t\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): """ """ - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp='' - tmp+='\n' - tmp+='\n' - tmp+='\n' - tmp+='\t\n' - tmp+=paraStyle() - tmp+='\t\n' - tmp+=inf_basicas(inf_basicas_dic) - tmp+=expediente_materia(lst_expediente_materia) - tmp+=votacao(lst_votacao) - tmp+='\t\n' - tmp+='\n' - tmp_pdf=parseString(tmp) + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp = '' + tmp += '\n' + tmp += '\n' + tmp += '\n' + tmp += '\t\n' + tmp += paraStyle() + tmp += '\t\n' + tmp += inf_basicas(inf_basicas_dic) + tmp += expediente_materia(lst_expediente_materia) + tmp += votacao(lst_votacao) + tmp += '\t\n' + tmp += '\n' + + tmp_pdf = parseString(tmp) return tmp_pdf # if hasattr(context.temp_folder,arquivoPdf): diff --git a/relatorios/urls.py b/relatorios/urls.py index 810e071ba..3080ba7a0 100644 --- a/relatorios/urls.py +++ b/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'), ] diff --git a/relatorios/views.py b/relatorios/views.py index 26a2b4eed..c2a9b7c1b 100644 --- a/relatorios/views.py +++ b/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)