From b3d769fa909757ef3961946499b8ece558c72ea5 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Wed, 20 Jan 2016 10:44:24 -0200 Subject: [PATCH] Add etiqueta protocolo report --- .../templates/pdf_etiqueta_protocolo_gerar.py | 161 ++++++++++-------- relatorios/urls.py | 7 +- relatorios/views.py | 86 +++++++++- 3 files changed, 177 insertions(+), 77 deletions(-) diff --git a/relatorios/templates/pdf_etiqueta_protocolo_gerar.py b/relatorios/templates/pdf_etiqueta_protocolo_gerar.py index 6b17b06e1..cc686042b 100755 --- a/relatorios/templates/pdf_etiqueta_protocolo_gerar.py +++ b/relatorios/templates/pdf_etiqueta_protocolo_gerar.py @@ -1,4 +1,4 @@ -##parameters=sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro +# parameters=sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro """relatorio_protocolo.py External method para gerar o arquivo rml da etiqueta de protocolo @@ -11,102 +11,116 @@ import time from trml2pdf import parseString -def cabecalho(inf_basicas_dic,imagem): +def cabecalho(dic_cabecalho, imagem): """Gera o codigo rml do cabecalho""" - tmp_data='' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\t' + dic_cabecalho['nom_casa'] + '\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tSistema de Apoio ao Processo Legislativo\n' - tmp_data+='\t\t\t\t\n' - tmp_data+='\t\t\t\tRelatório de Controle do Protocolo\n' + tmp_data = '' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t2cm 25.4cm 19cm 25.4cm\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tSistema de Apoio ao Processo Legislativo\n' + tmp_data += '\t\t\t\t\n' + tmp_data += '\t\t\t\tRelatório de Controle do Protocolo\n' return tmp_data + 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\tPágina \n' - tmp_data+='\t\t\t\t' + lst_rodape[0] + '\n' - tmp_data+='\t\t\t\t' + lst_rodape[1] + '\n' + 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\tPágina \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(): """Gera o codigo rml que define o estilo dos paragrafos""" - tmp_data='' - tmp_data+='\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\n' - tmp_data+='\t\n' + tmp_data = '' + tmp_data += '\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\n' + tmp_data += '\t\n' return tmp_data -def protocolos(lst_protocolos): + +def protocolos(lst_protocolos, dic_cabecalho): """Gera o codigo rml do conteudo da pesquisa de protocolos""" - tmp_data='' + tmp_data = '' - #inicio do bloco que contem os flowables - tmp_data+='\t\n' + # inicio do bloco que contem os flowables + tmp_data += '\t\n' for dic in lst_protocolos: - #condicao para a quebra de pagina - tmp_data+='\t\t\n' - - #protocolos - if dic['titulo']!=None: - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - tmp_data+='\t\t'+dic_cabecalho['nom_casa']+'\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - tmp_data+='\t\t' +dic['titulo']+ '\n' - tmp_data+='\t\tPROTOCOLO GERAL '+dic['titulo']+'\n' - if dic['data']!=None: - tmp_data+='\t\t'+dic['data']+'\n' - tmp_data+='\t\t'+dic['natureza']+' - '+dic['ident_processo']+'\n' - - tmp_data+='\t\n' + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # protocolos + if dic['titulo'] != None: + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\t' + \ + dic_cabecalho['nom_casa'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\t' + \ + dic['titulo'] + '\n' + tmp_data += '\t\tPROTOCOLO GERAL ' + \ + dic['titulo'] + '\n' + if dic['data'] != None: + tmp_data += '\t\t' + \ + dic['data'] + '\n' + tmp_data += '\t\t' + \ + dic['natureza'] + ' - ' + dic['ident_processo'] + '\n' + + tmp_data += '\t\n' return tmp_data -def principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro={}): + +def principal(sessao, imagem, data, lst_protocolos, dic_cabecalho, lst_rodape, dic_filtro={}): """Funcao pricipal que gera a estrutura global do arquivo rml""" - arquivoPdf=str(int(time.time()*100))+".pdf" - - tmp_data='' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\n' - tmp_data+='\t\n' - tmp_data+=paraStyle() - tmp_data+=protocolos(lst_protocolos) - tmp_data+='\n' - tmp_pdf=parseString(tmp_data) - + arquivoPdf = str(int(time.time() * 100)) + ".pdf" + + tmp_data = '' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\n' + tmp_data += '\t\n' + tmp_data += paraStyle() + tmp_data += protocolos(lst_protocolos, dic_cabecalho) + tmp_data += '\n' + tmp_pdf = parseString(tmp_data) + return tmp_pdf # if hasattr(context.temp_folder,arquivoPdf): # context.temp_folder.manage_delObjects(ids=arquivoPdf) @@ -116,4 +130,5 @@ def principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_fil # return "/temp_folder/"+arquivoPdf -# return principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro) +# return +# principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro) diff --git a/relatorios/urls.py b/relatorios/urls.py index b40a009c8..810e071ba 100644 --- a/relatorios/urls.py +++ b/relatorios/urls.py @@ -2,7 +2,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_protocolo, relatorio_espelho, + relatorio_etiqueta_protocolo) urlpatterns = [ url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'), @@ -16,5 +17,7 @@ urlpatterns = [ url(r'^relatorios/espelho$', relatorio_espelho, name='relatorio_espelho'), url(r'^relatorios/protocolo$', - relatorio_protocolo, name='relatorio_protocolo') + relatorio_protocolo, name='relatorio_protocolo'), + url(r'^relatorios/etiqueta_protocolo$', + relatorio_etiqueta_protocolo, name='relatorio_etiqueta_protocolo') ] diff --git a/relatorios/views.py b/relatorios/views.py index fe5fd310f..26a2b4eed 100644 --- a/relatorios/views.py +++ b/relatorios/views.py @@ -7,19 +7,21 @@ from base.views import ESTADOS from comissoes.models import Comissao from materia.models import (Autor, Autoria, MateriaLegislativa, Numeracao, Tramitacao, UnidadeTramitacao) + from django.http import HttpResponse -from sessao.models import OrdemDia from parlamentares.models import Parlamentar from protocoloadm.models import (DocumentoAdministrativo, Protocolo, TramitacaoAdministrativo) + from sessao.models import OrdemDia, SessaoPlenaria from .templates import (pdf_capa_processo_gerar, pdf_documento_administrativo_gerar, pdf_espelho_gerar, pdf_materia_gerar, - pdf_protocolo_gerar) + pdf_protocolo_gerar, + pdf_etiqueta_protocolo_gerar) def get_cabecalho(casa): @@ -612,3 +614,83 @@ def relatorio_protocolo(request): response.write(pdf) return response + + +def relatorio_etiqueta_protocolo(request): + ''' + pdf__etiqueta_protocolo_gerar.py + ''' + + response = HttpResponse(content_type='application/pdf') + response[ + 'Content-Disposition'] = 'attachment; filename="relatorio_etiqueta_protocolo.pdf"' + + casa = CasaLegislativa.objects.first() + + cabecalho = get_cabecalho(casa) + rodape = get_rodape(casa) + imagem = get_imagem(casa) + + protocolos = Protocolo.objects.all()[:50] + + protocolo_data = get_etiqueta_protocolos(protocolos) + + pdf = pdf_etiqueta_protocolo_gerar.principal(None, + imagem, + None, + protocolo_data, + cabecalho, + rodape) + + response.write(pdf) + + return response + + +def get_etiqueta_protocolos(prots): + + protocolos = [] + for p in prots: + dic = {} + + dic['titulo'] = str(p.numero) + '/' + str(p.ano) + dic['data'] = p.data.strftime( + "%d/%m/%Y") + ' - Horário:' + p.hora.strftime("%H:%m") + dic['txt_assunto'] = p.assunto_ementa + dic['txt_interessado'] = p.interessado + + dic['nom_autor'] = ' ' + + if p.autor: + if p.autor.parlamentar: + dic['nom_autor'] = p.autor.parlamentar.nome_completo + elif p.autor.comissao: + dic['nom_autor'] = p.autor.comissao.nome + + dic['natureza'] = '' + if p.tipo_processo == 0: + dic['natureza'] = 'Administrativo' + if p.tipo_processo == 1: + dic['natureza'] = 'Legislativo' + + dic['num_materia'] = '' + for materia in MateriaLegislativa.objects.filter( + numero_protocolo=p.numero, ano=p.ano): + dic['num_materia'] = str(materia) + + dic['num_documento'] = '' + for documento in DocumentoAdministrativo.objects.filter( + numero_protocolo=p.numero): + dic['num_documento'] = str(documento) + + dic['ident_processo'] = dic['num_materia'] or dic['num_documento'] + + dic['processo'] = (str(p.tipo_materia) or + str(p.tipo_documento)) + + dic['anulado'] = '' + if p.anulado: + dic['anulado'] = 'Nulo' + + protocolos.append(dic) + return protocolos