Browse Source

Add relatorio capa_processo

pull/202/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
7832664ce7
  1. 114
      relatorios/templates/pdf_capa_processo_gerar.py
  2. 16
      relatorios/templates/pdf_protocolo_gerar.py
  3. 3
      relatorios/urls.py
  4. 147
      relatorios/views.py

114
relatorios/templates/pdf_capa_processo_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
@ -14,69 +14,78 @@ from trml2pdf import parseString
def paraStyle():
"""Gera o codigo rml que define o estilo dos paragrafos"""
tmp_data=''
tmp_data+='\t<stylesheet>\n'
tmp_data+='\t\t<blockTableStyle id="Standard_Outline">\n'
tmp_data+='\t\t\t<blockAlignment value="LEFT"/>\n'
tmp_data+='\t\t\t<blockValign value="TOP"/>\n'
tmp_data+='\t\t</blockTableStyle>\n'
tmp_data+='\t\t<initialize>\n'
tmp_data+='\t\t\t<paraStyle name="all" alignment="justify"/>\n'
tmp_data+='\t\t</initialize>\n'
tmp_data+='\t\t<paraStyle name="P1" fontName="Helvetica" fontSize="9" leading="11" alignment="justify"/>\n'
tmp_data+='\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="8" leading="9" alignment="right"/>\n'
tmp_data+='\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="9" leading="9" alignment="justify"/>\n'
tmp_data+='\t</stylesheet>\n'
tmp_data = ''
tmp_data += '\t<stylesheet>\n'
tmp_data += '\t\t<blockTableStyle id="Standard_Outline">\n'
tmp_data += '\t\t\t<blockAlignment value="LEFT"/>\n'
tmp_data += '\t\t\t<blockValign value="TOP"/>\n'
tmp_data += '\t\t</blockTableStyle>\n'
tmp_data += '\t\t<initialize>\n'
tmp_data += '\t\t\t<paraStyle name="all" alignment="justify"/>\n'
tmp_data += '\t\t</initialize>\n'
tmp_data += '\t\t<paraStyle name="P1" fontName="Helvetica" fontSize="9" leading="11" alignment="justify"/>\n'
tmp_data += '\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="8" leading="9" alignment="right"/>\n'
tmp_data += '\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="9" leading="9" alignment="justify"/>\n'
tmp_data += '\t</stylesheet>\n'
return tmp_data
def protocolos(lst_protocolos):
"""Gera o codigo rml do conteudo da pesquisa de protocolos"""
tmp_data=''
tmp_data = ''
#inicio do bloco que contem os flowables
tmp_data+='\t<story>\n'
# inicio do bloco que contem os flowables
tmp_data += '\t<story>\n'
for dic in lst_protocolos:
#condicao para a quebra de pagina
tmp_data+='\t\t<condPageBreak height="3cm"/>\n'
#protocolos
tmp_data+='\t\t<barCode code="Code128" x="5.6cm" barHeight="0.3in" barWidth="0.012in">' +dic['titulo']+ '</barCode>\n'
tmp_data+='\t\t<para style="P2"><b>Protocolo:</b> ' +dic['titulo']+ '</para>\n'
tmp_data+='\t\t<para style="P2">'+ dic['data']+ '</para>\n'
tmp_data+='\t\t<para style="P1"><b>'+dic['numeracao']+'</b></para>\n'
tmp_data+='\t\t<para style="P1"><b>'+dic['sgl_processo']+' '+dic['ident_processo']+ ' '+dic['num_processo']+ '</b></para>\n'
tmp_data+='\t\t<para style="P1"><b>Autor:</b> <font size="8">' +dic['nom_autor']+ '</font></para>\n'
tmp_data+='\t\t<para style="P2">\n'
tmp_data+='\t\t\t<font color="white"> </font>\n'
tmp_data+='\t\t</para>\n'
tmp_data+='\t\t<para style="P3"><b>Ementa:</b> <font size="8">' +dic['txt_assunto']+ '</font></para>\n'
tmp_data+='\t</story>\n'
# condicao para a quebra de pagina
tmp_data += '\t\t<condPageBreak height="3cm"/>\n'
# protocolos
tmp_data += '\t\t<barCode code="Code128" x="5.6cm" barHeight="0.3in" barWidth="0.012in">' + \
dic['titulo'] + '</barCode>\n'
tmp_data += '\t\t<para style="P2"><b>Protocolo:</b> ' + \
dic['titulo'] + '</para>\n'
tmp_data += '\t\t<para style="P2">' + dic['data'] + '</para>\n'
tmp_data += '\t\t<para style="P1"><b>' + \
dic['numeracao'] + '</b></para>\n'
tmp_data += '\t\t<para style="P1"><b>' + \
dic['sgl_processo'] + ' ' + dic['ident_processo'] + \
' ' + dic['num_processo'] + '</b></para>\n'
tmp_data += '\t\t<para style="P1"><b>Autor:</b> <font size="8">' + \
dic['nom_autor'] + '</font></para>\n'
tmp_data += '\t\t<para style="P2">\n'
tmp_data += '\t\t\t<font color="white"> </font>\n'
tmp_data += '\t\t</para>\n'
tmp_data += '\t\t<para style="P3"><b>Ementa:</b> <font size="8">' + \
dic['txt_assunto'] + '</font></para>\n'
tmp_data += '\t</story>\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+='<?xml version="1.0" encoding="utf-8" standalone="no" ?>\n'
tmp_data+='<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
tmp_data+='<document filename="etiquetas.pdf">\n'
tmp_data+='\t<template pageSize="(10cm, 6.2cm)" title="Etiquetas de Protocolo" author="Luciano De Fazio" allowSplitting="20" rightMargin="3mm" showBoundary="0">\n'
tmp_data+='\t\t<pageTemplate id="main">\n'
tmp_data+='\t\t<pageGraphics>\n'
tmp_data+='\t\t</pageGraphics>\n'
tmp_data+='\t\t\t<frame id="first" x1="4mm" y1="1mm" width="94mm" height="60mm"/>\n'
tmp_data+='\t\t</pageTemplate>\n'
tmp_data+='\t</template>\n'
tmp_data+=paraStyle()
tmp_data+=protocolos(lst_protocolos)
tmp_data+='</document>\n'
tmp_pdf=parseString(tmp_data)
arquivoPdf = str(int(time.time() * 100)) + ".pdf"
tmp_data = ''
tmp_data += '<?xml version="1.0" encoding="utf-8" standalone="no" ?>\n'
tmp_data += '<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
tmp_data += '<document filename="etiquetas.pdf">\n'
tmp_data += '\t<template pageSize="(10cm, 6.2cm)" title="Etiquetas de Protocolo" author="Luciano De Fazio" allowSplitting="20" rightMargin="3mm" showBoundary="0">\n'
tmp_data += '\t\t<pageTemplate id="main">\n'
tmp_data += '\t\t<pageGraphics>\n'
tmp_data += '\t\t</pageGraphics>\n'
tmp_data += '\t\t\t<frame id="first" x1="4mm" y1="1mm" width="94mm" height="60mm"/>\n'
tmp_data += '\t\t</pageTemplate>\n'
tmp_data += '\t</template>\n'
tmp_data += paraStyle()
tmp_data += protocolos(lst_protocolos)
tmp_data += '</document>\n'
tmp_pdf = parseString(tmp_data)
return tmp_pdf
@ -88,4 +97,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)

16
relatorios/templates/pdf_protocolo_gerar.py

@ -125,12 +125,14 @@ def principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_fil
tmp_data+='</document>\n'
tmp_pdf=parseString(tmp_data)
if hasattr(context.temp_folder,arquivoPdf):
context.temp_folder.manage_delObjects(ids=arquivoPdf)
context.temp_folder.manage_addFile(arquivoPdf)
arq=context.temp_folder[arquivoPdf]
arq.manage_edit(title='Arquivo PDF temporário.',filedata=tmp_pdf,content_type='application/pdf')
return tmp_pdf
return "/temp_folder/"+arquivoPdf
# if hasattr(context.temp_folder,arquivoPdf):
# context.temp_folder.manage_delObjects(ids=arquivoPdf)
# context.temp_folder.manage_addFile(arquivoPdf)
# arq=context.temp_folder[arquivoPdf]
# arq.manage_edit(title='Arquivo PDF temporário.',filedata=tmp_pdf,content_type='application/pdf')
return principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro)
# return "/temp_folder/"+arquivoPdf
# return principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro)

3
relatorios/urls.py

@ -4,5 +4,6 @@ from .views import relatorio_materia, relatorio_processo
urlpatterns = [
url(r'^relatorios/materia$', relatorio_materia, name='relatorio_materia'),
url(r'^relatorios/processo$', relatorio_processo, name='relatorio_processo'),
url(r'^relatorios/cap_processo$',
relatorio_processo, name='relatorio_cap_processo'),
]

147
relatorios/views.py

@ -1,10 +1,13 @@
from datetime import datetime
from django.http import HttpResponse
from base.models import CasaLegislativa
from base.views import ESTADOS
from materia.models import Autoria, MateriaLegislativa, Tramitacao
from comissoes.models import Comissao
from django.http import HttpResponse
from materia.models import (Autor, Autoria, MateriaLegislativa, Tramitacao,
Numeracao)
from parlamentares.models import Parlamentar
from protocoloadm.models import Protocolo, DocumentoAdministrativo
from .templates import pdf_capa_processo_gerar, pdf_materia_gerar
@ -156,62 +159,69 @@ def relatorio_materia(request):
return response
def get_processos(prot):
pass
# protocolos = []
# for p in prot:
# dic={}
# dic['titulo']=str(protocolo.cod_protocolo)
# dic['ano']=str(protocolo.ano_protocolo)
# dic['data']=context.pysc.iso_to_port_pysc(protocolo.dat_protocolo)+' - '+protocolo.hor_protocolo
# dic['txt_assunto']=protocolo.txt_assunto_ementa
# dic['txt_interessado']=protocolo.txt_interessado
# dic['nom_autor'] = " "
# if protocolo.cod_autor!=None:
# for autor in context.zsql.autor_obter_zsql(cod_autor=protocolo.cod_autor):
# if autor.des_tipo_autor=='Parlamentar':
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar):
# dic['nom_autor']=parlamentar.nom_completo
# elif autor.des_tipo_autor=='Comissao':
# for comissao in context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao):
# dic['nom_autor']=comissao.nom_comissao
# else:
# dic['nom_autor']=autor.nom_autor
# else:
# dic['nom_autor']=protocolo.txt_interessado
# dic['natureza']=''
# if protocolo.tip_processo==0:
# dic['natureza']='Administrativo'
# if protocolo.tip_processo==1:
# dic['natureza']='Legislativo'
# dic['ident_processo']=protocolo.des_tipo_materia or protocolo.des_tipo_documento
# dic['sgl_processo']=protocolo.sgl_tipo_materia or protocolo.sgl_tipo_documento
# dic['num_materia']=''
# for materia in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo,ano_ident_basica=protocolo.ano_protocolo):
# dic['num_materia']=str(materia.num_ident_basica)+'/'+ str(materia.ano_ident_basica)
# dic['num_documento']=''
# for documento in context.zsql.documento_administrativo_obter_zsql(num_protocolo=protocolo.cod_protocolo):
# dic['num_documento']=str(documento.num_documento)+'/'+ str(documento.ano_documento)
# dic['num_processo']=dic['num_materia'] or dic['num_documento']
# dic['numeracao']=''
# for materia_num in context.zsql.materia_obter_zsql(num_protocolo=protocolo.cod_protocolo,ano_ident_basica=protocolo.ano_protocolo):
# for numera in context.zsql.numeracao_obter_zsql(cod_materia=materia_num.cod_materia,ind_excluido=0):
# dic['numeracao']='PROCESSO N&#176; ' +str(numera.num_materia)+'/'+ str(numera.ano_materia)
# dic['anulado']=''
# if protocolo.ind_anulado==1:
# dic['anulado']='Nulo'
# protocolos.append(dic)
def get_capa_processo(prot):
protocolos = []
for p in prot:
dic = {}
dic['numero'] = str(p.numero)
dic['ano'] = str(p.ano)
dic['data'] = str(p.data) + ' - ' + str(p.hora)
dic['txt_assunto'] = p.assunto_ementa
dic['txt_interessado'] = p.interessado
dic['nom_autor'] = " "
dic['titulo'] = " "
if p.autor is not None:
for autor in Autor.objects.filter(id=p.autor.id):
if autor.tipo == 'Parlamentar':
for parlamentar in Parlamentar.objects.filter(
id=p.autor.parlamentar.id):
dic['nom_autor'] = parlamentar.nome_completo or ' '
elif autor.tipo == 'Comissao':
for comissao in Comissao.objects.filter(
id=p.autor.comissao.id):
dic['nom_autor'] = comissao.nome or ' '
else:
dic['nom_autor'] = autor.nome or ' '
else:
dic['nom_autor'] = p.interessado
dic['natureza'] = ''
if p.tipo_processo == 0:
dic['natureza'] = 'Administrativo'
if p.tipo_processo == 1:
dic['natureza'] = 'Legislativo'
dic['ident_processo'] = str(p.tipo_materia) or str(p.tipo_documento)
dic['sgl_processo'] = str(p.tipo_materia) or str(p.tipo_documento)
dic['num_materia'] = ''
for materia in MateriaLegislativa.objects.filter(
numero_protocolo=p.numero, ano=p.ano):
dic['num_materia'] = str(materia.numero) + '/' + str(materia.ano)
dic['num_documento'] = ''
for documento in DocumentoAdministrativo.objects.filter(
numero=p.numero):
dic['num_documento'] = str(
documento.numero) + '/' + str(documento.ano)
dic['num_processo'] = dic['num_materia'] or dic['num_documento']
dic['numeracao'] = ''
for materia_num in MateriaLegislativa.objects.filter(
numero_protocolo=p.numero, ano=p.ano):
for numera in Numeracao.objects.filter(materia=materia_num):
dic['numeracao'] = 'PROCESSO N&#176; ' + \
str(numera.numero) + '/' + str(numera.ano)
dic['anulado'] = ''
if p.anulado == 1:
dic['anulado'] = 'Nulo'
protocolos.append(dic)
return protocolos
def relatorio_processo(request):
@ -228,17 +238,16 @@ def relatorio_processo(request):
rodape = get_rodape(casa)
imagem = get_imagem(casa)
protocolos = Protocolo.objects.all()[:50]
protocolos_pdf = get_capa_processo(protocolos)
protocolos = get_processo(protocolos)
pdf = pdf_materia_gerar.principal(None,
imagem,
None,
protocolos,
cabecalho,
rodape)
pdf = pdf_capa_processo_gerar.principal(None,
imagem,
None,
protocolos_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
return response

Loading…
Cancel
Save