diff --git a/relatorios/templates/pdf_capa_processo_gerar.py b/relatorios/templates/pdf_capa_processo_gerar.py index f147ccda6..32b06ca8e 100755 --- a/relatorios/templates/pdf_capa_processo_gerar.py +++ b/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\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\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\t\n' + tmp_data += '\t\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\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 - tmp_data+='\t\t' +dic['titulo']+ '\n' - tmp_data+='\t\tProtocolo: ' +dic['titulo']+ '\n' - tmp_data+='\t\t'+ dic['data']+ '\n' - tmp_data+='\t\t'+dic['numeracao']+'\n' - tmp_data+='\t\t'+dic['sgl_processo']+' '+dic['ident_processo']+ ' '+dic['num_processo']+ '\n' - tmp_data+='\t\tAutor: ' +dic['nom_autor']+ '\n' - tmp_data+='\t\t\n' - tmp_data+='\t\t\t \n' - tmp_data+='\t\t\n' - tmp_data+='\t\tEmenta: ' +dic['txt_assunto']+ '\n' - - tmp_data+='\t\n' + # condicao para a quebra de pagina + tmp_data += '\t\t\n' + + # protocolos + tmp_data += '\t\t' + \ + dic['titulo'] + '\n' + tmp_data += '\t\tProtocolo: ' + \ + dic['titulo'] + '\n' + tmp_data += '\t\t' + dic['data'] + '\n' + tmp_data += '\t\t' + \ + dic['numeracao'] + '\n' + tmp_data += '\t\t' + \ + dic['sgl_processo'] + ' ' + dic['ident_processo'] + \ + ' ' + dic['num_processo'] + '\n' + tmp_data += '\t\tAutor: ' + \ + dic['nom_autor'] + '\n' + tmp_data += '\t\t\n' + tmp_data += '\t\t\t \n' + tmp_data += '\t\t\n' + tmp_data += '\t\tEmenta: ' + \ + dic['txt_assunto'] + '\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) + tmp_data += '\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) diff --git a/relatorios/templates/pdf_protocolo_gerar.py b/relatorios/templates/pdf_protocolo_gerar.py index 62a1486a9..e0f9993eb 100755 --- a/relatorios/templates/pdf_protocolo_gerar.py +++ b/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+='\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) diff --git a/relatorios/urls.py b/relatorios/urls.py index b18e4fa98..3340b168e 100644 --- a/relatorios/urls.py +++ b/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'), ] diff --git a/relatorios/views.py b/relatorios/views.py index e6c221663..e3d962bf4 100644 --- a/relatorios/views.py +++ b/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° ' +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° ' + \ + 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