Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1111 lines
44 KiB

from datetime import datetime
from django.http import HttpResponse
from base.models import CasaLegislativa
from base.views import ESTADOS
from comissoes.models import Comissao
from materia.models import (Autor, Autoria, MateriaLegislativa, Numeracao,
Tramitacao, UnidadeTramitacao)
from parlamentares.models import Parlamentar
from protocoloadm.models import (DocumentoAdministrativo, Protocolo,
TramitacaoAdministrativo)
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_pauta_sessao_gerar)
def get_cabecalho(casa):
cabecalho = {}
cabecalho["nom_casa"] = casa.nome
cabecalho["nom_estado"] = "Estado de " + ESTADOS[casa.uf.upper()]
return cabecalho
def get_imagem(casa):
if casa.logotipo:
return casa.logotipo.path
else:
# TODO: recuperar de uma variavel de sistema
return 'static/img/brasao_transp.gif'
def get_rodape(casa):
if len(casa.cep) == 8:
cep = casa.cep[:4] + "-" + casa.cep[5:]
else:
cep = ""
linha1 = casa.endereco
if cep:
if casa.endereco:
linha1 = linha1 + " - "
linha1 = linha1 + "CEP " + cep
# substituindo nom_localidade por municipio e sgl_uf por uf
if casa.municipio:
linha1 = linha1 + " - " + casa.municipio + " " + casa.uf
if casa.telefone:
linha1 = linha1 + " Tel.: " + casa.telefone
if casa.endereco_web:
linha2 = casa.endereco_web
else:
linha2 = ""
if casa.email:
if casa.endereco_web:
linha2 = linha2 + " - "
linha2 = linha2 + "E-mail: " + casa.email
data_emissao = datetime.today().strftime("%d/%m/%Y")
return [linha1, linha2, data_emissao]
def get_materias(mats):
materias = []
for materia in mats:
dic = {}
dic['titulo'] = materia.tipo.sigla + " " + materia.tipo.descricao \
+ " " + str(materia.numero) + "/" + str(materia.ano)
dic['txt_ementa'] = materia.ementa
autores = Autoria.objects.filter(materia=materia)
dic['nom_autor'] = " "
for autoria in autores:
if autoria.autor.parlamentar:
dic['nom_autor'] = autoria.autor.parlamentar.nome_completo
elif autoria.autor.comissao:
dic['nom_autor'] = autoria.autor.comissao.nome
des_status = ''
txt_tramitacao = ''
dic['localizacao_atual'] = " "
tramitacoes = Tramitacao.objects.filter(
unidade_tramitacao_destino__isnull=True).order_by(
'data_tramitacao')
for tramitacao in tramitacoes:
des_status = tramitacao.status.descricao
txt_tramitacao = tramitacao.texto
# for tramitacao in context.zsql
# .tramitacao_obter_zsql(cod_materia
# =materia.cod_materia,ind_ult_tramitacao=1):
# if tramitacao.cod_unid_tram_dest:
# cod_unid_tram = tramitacao.cod_unid_tram_dest
# else:
# cod_unid_tram = tramitacao.cod_unid_tram_local
# for unidade_tramitacao in
# context.zsql
# .unidade_tramitacao_obter_zsql(
# cod_unid_tramitacao = cod_unid_tram):
# if unidade_tramitacao.cod_orgao:
# dic['localizacao_atual']=unidade_tramitacao.nom_orgao
# else:
# dic['localizacao_atual']=unidade_tramitacao.nom_comissao
# des_status=tramitacao.des_status
# txt_tramitacao=tramitacao.txt_tramitacao
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao
dic['norma_vinculada'] = " "
# for norma_vinculada in context.zsql
# .materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia):
# dic['norma_vinculada']=
# norma_vinculada.des_norma+" "
# +str(norma_vinculada.num_norma)+"/"+str(norma_vinculada.ano_norma)
materias.append(dic)
return materias
def relatorio_materia(request):
'''
pdf_materia_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_materia.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
# TODO pesquisar baseado em filtros
mats = MateriaLegislativa.objects.all()[:50]
materias = get_materias(mats)
pdf = pdf_materia_gerar.principal(None,
imagem,
None,
materias,
cabecalho,
rodape)
response.write(pdf)
return response
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):
'''
pdf_capa_processo_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_processo.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
protocolos = Protocolo.objects.all()[:50]
protocolos_pdf = get_capa_processo(protocolos)
pdf = pdf_capa_processo_gerar.principal(None,
imagem,
None,
protocolos_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
def get_ordem_dia(ordem, sessao):
pass
# splen = []
# pauta = []
# data = ''
# for dat_sessao in SessaoPlenaria.objects.filter(id=sessao.id):
# data = dat_sessao.data_inicio
# dat_ordem = dat_sessao.data_inicio
# seleciona dados da sessão plenária
# for sp in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, ind_excluido=0):
# dicsp = {} # dicionário que armazenará os dados a serem impressos de uma sessão plenária
# ts = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sp.tip_sessao)[0]
# dicsp["sessao"] = str(sp.num_sessao_plen)+"ª Sessao "+ts.nom_sessao+" da "+str(sp.num_sessao_leg)+"ª Sessao Legislativa da "+str(sp.num_legislatura)+"ª Legislatura"
# dia = context.pysc.data_converter_por_extenso_pysc(data=sp.dat_inicio_sessao)
# hora = context.pysc.hora_formatar_pysc(hora=sp.hr_inicio_sessao)
# dicsp["datasessao"] = "Dia "+str(dia)+" ("+str(sp.dia_sessao)+") - Inicio as "+hora
# splen.append(dicsp)
# seleciona as matérias que compõem a pauta na data escolhida
# for ordem in context.zsql.ordem_dia_obter_zsql(dat_ordem=data, ind_excluido=0):
# seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=ordem.cod_materia)[0]
# dic = {} # dicionário que armazenará os dados a serem impressos de uma matéria
# dic["num_ordem"] = ordem.num_ordem
# dic["id_materia"] = materia.des_tipo_materia+" - Nº "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
# dic["id_materia"] = materia.sgl_tipo_materia+" - "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)+" - "+materia.des_tipo_materia
# dic["txt_ementa"] = ordem.txt_observacao
# numeracao do processo 26/02/2011
# dic["des_numeracao"]=""
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=ordem.cod_materia)
# if len(numeracao):
# numeracao = numeracao[0]
# dic["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# dic["des_turno"]=""
# dic["des_situacao"] = ""
# tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=ordem.cod_materia, ind_ult_tramitacao=1)
# if len(tramitacao):
# tramitacao = tramitacao[0]
# if tramitacao.sgl_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.sgl_turno == turno[0]:
# dic["des_turno"] = turno[1]
# dic["des_situacao"] = tramitacao.des_status
# if dic["des_situacao"]==None:
# dic["des_situacao"] = " "
# dic["nom_autor"] = ''
# autoria = context.zsql.autoria_obter_zsql(cod_materia=ordem.cod_materia, ind_primeiro_autor=1)
# if len(autoria): # se existe autor
# autoria = autoria[0]
# try:
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
# if len(autor):
# autor = autor[0]
# if autor.des_tipo_autor == "Parlamentar":
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic["nom_autor"] = parlamentar.nom_parlamentar
# elif autor.des_tipo_autor == "Comissao":
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
# dic["nom_autor"] = comissao.nom_comissao
# else:
# dic["nom_autor"] = autor.nom_autor
# except:
# pass
# lst_relator = [] # lista contendo os relatores da matéria
# for relatoria in context.zsql.relatoria_obter_zsql(cod_materia=ordem.cod_materia):
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=relatoria.cod_parlamentar)[0]
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=relatoria.cod_comissao)[0]
# lst_relator.append(parlamentar.nom_parlamentar+" - "+comissao.nom_comissao)
# if not len(lst_relator):
# lst_relator = ['']
# dic["lst_relator"] = lst_relator
# adiciona o dicionário na pauta
# pauta.append(dic)
def relatorio_ordem_dia(request):
'''
pdf_ordem_dia_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_ordem_dia.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
ordem = OrdemDia.objects.all()[:50]
sessao = SessaoPlenaria.objects.first()
ordem_pdf = get_ordem_dia(ordem, sessao)
pdf = pdf_capa_processo_gerar.principal(None,
imagem,
None,
ordem_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
def relatorio_documento_administrativo(request):
'''
pdf_documento_administrativo_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_documento_administrativo.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
docs = DocumentoAdministrativo.objects.all()[:50]
doc_pdf = get_documento_administrativo(docs)
pdf = pdf_documento_administrativo_gerar.principal(
None,
imagem,
None,
doc_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
def get_documento_administrativo(docs):
documentos = []
for d in docs:
dic = {}
dic['titulo'] = str(d)
dic['txt_assunto'] = d.assunto
dic['txt_interessado'] = d.interessado
des_status = ''
txt_tramitacao = ''
dic['localizacao_atual'] = ' '
# Será removido o 'última'?
for t in TramitacaoAdministrativo.objects.filter(
documento=d, ultima=True):
if t.unidade_tramitacao_destino:
cod_unid_tram = t.unidade_tramitacao_destino
else:
cod_unid_tram = t.unidade_tramitacao_destino
for unidade_tramitacao in UnidadeTramitacao.objects.filter(
id=cod_unid_tram):
if unidade_tramitacao.orgao:
dic['localizacao_atual'] = unidade_tramitacao.orgao
else:
dic['localizacao_atual'] = unidade_tramitacao.comissao
des_status = t.status.descricao
txt_tramitacao = t.texto
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao
documentos.append(dic)
return documentos
def relatorio_espelho(request):
'''
pdf_espelho_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_espelho.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
mats = MateriaLegislativa.objects.all()[:50]
mat_pdf = get_espelho(mats)
pdf = pdf_espelho_gerar.principal(
None,
imagem,
None,
mat_pdf,
cabecalho,
rodape)
response.write(pdf)
return response
def get_espelho(mats):
materias = []
for m in mats:
dic = {}
dic['titulo'] = str(m)
dic['materia'] = str(m.numero) + '/' + str(m.ano)
dic['dat_apresentacao'] = str(m.data_apresentacao)
dic['txt_ementa'] = m.ementa
dic['nom_autor'] = ' '
for autoria in Autoria.objects.filter(materia=m, primeiro_autor=True):
for autor in Autor.objects.filter(id=autoria.autor.id):
if autor.tipo == 'Parlamentar':
for parlamentar in Parlamentar.objects.filter(
id=autor.parlamentar.id):
dic['nom_autor'] = parlamentar.nome_completo
elif autor.tipo == 'Comissao':
for comissao in Comissao.objects.filter(
id=autor.comissao.id):
dic['nom_autor'] = str(comissao)
else:
dic['nom_autor'] = autor.nome
des_status = ''
txt_tramitacao = ''
data_ultima_acao = ''
dic['localizacao_atual'] = " "
for tramitacao in Tramitacao.objects.filter(materia=m):
if tramitacao.unidade_tramitacao_destino:
cod_unid_tram = tramitacao.unidade_tramitacao_destino
else:
cod_unid_tram = tramitacao.unidade_tramitacao_local
for unidade_tramitacao in UnidadeTramitacao.objects.filter(
id=cod_unid_tram.id):
if unidade_tramitacao.orgao:
dic['localizacao_atual'] = unidade_tramitacao.orgao
elif unidade_tramitacao.parlamentar:
dic['localizacao_atual'] = unidade_tramitacao.parlamentar
else:
dic['localizacao_atual'] = unidade_tramitacao.comissao
des_status = tramitacao.status
txt_tramitacao = tramitacao.texto
data_ultima_acao = tramitacao.data_tramitacao
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao
dic['data_ultima_acao'] = data_ultima_acao
dic['norma_juridica_vinculada'] = 'Não há nenhuma\
norma jurídica vinculada'
# TODO
# for norma in context.zsql.materia_buscar_norma_juridica_zsql(cod_materia=materia.cod_materia):
# dic['norma_juridica_vinculada'] = norma.des_norma + " " + \
# str(norma.num_norma) + "/" + str(norma.ano_norma)
materias.append(dic)
return materias
def get_sessao_plenaria(sessao):
pass
# if context.REQUEST['data']!='':
# dat_inicio_sessao = context.REQUEST['data']
# pauta = [] # lista contendo a pauta da ordem do dia a ser impressa
# data = context.pysc.data_converter_pysc(dat_inicio_sessao) # converte data para formato yyyy/mm/dd
# codigo = context.REQUEST['cod_sessao_plen']
# # seleciona as matérias que compõem a pauta na data escolhida
# for sessao in context.zsql.sessao_plenaria_obter_zsql(dat_inicio_sessao=data, cod_sessao_plen=codigo, ind_excluido=0):
# inf_basicas_dic = {} # dicionário que armazenará as informacoes basicas da sessao plenaria
# # seleciona o tipo da sessao plenaria
# tipo_sessao = context.zsql.tipo_sessao_plenaria_obter_zsql(tip_sessao=sessao.tip_sessao,ind_excluido=0)[0]
# inf_basicas_dic["num_sessao_plen"] = sessao.num_sessao_plen
# inf_basicas_dic["nom_sessao"] = tipo_sessao.nom_sessao
# inf_basicas_dic["num_legislatura"] = sessao.num_legislatura
# inf_basicas_dic["num_sessao_leg"] = sessao.num_sessao_leg
# inf_basicas_dic["dat_inicio_sessao"] = sessao.dat_inicio_sessao
# inf_basicas_dic["hr_inicio_sessao"] = sessao.hr_inicio_sessao
# inf_basicas_dic["dat_fim_sessao"] = sessao.dat_fim_sessao
# inf_basicas_dic["hr_fim_sessao"] = sessao.hr_fim_sessao
# # Lista da composicao da mesa diretora
# lst_mesa = []
# for composicao in context.zsql.composicao_mesa_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=composicao.cod_parlamentar,ind_excluido=0):
# for cargo in context.zsql.cargo_mesa_obter_zsql(cod_cargo=composicao.cod_cargo, ind_excluido=0):
# dic_mesa = {}
# dic_mesa['nom_parlamentar'] = parlamentar.nom_parlamentar
# dic_mesa['sgl_partido'] = parlamentar.sgl_partido
# dic_mesa['des_cargo'] = cargo.des_cargo
# lst_mesa.append(dic_mesa)
# # Lista de presença na sessão
# lst_presenca_sessao = []
# for presenca in context.zsql.presenca_sessao_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca.cod_parlamentar,ind_excluido=0):
# dic_presenca = {}
# dic_presenca["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_presenca['sgl_partido'] = parlamentar.sgl_partido
# lst_presenca_sessao.append(dic_presenca)
# # Exibe os Expedientes
# lst_expedientes = []
# dic_expedientes = None
# for tip_expediente in context.zsql.tipo_expediente_obter_zsql():
# for expediente in context.zsql.expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,cod_expediente=tip_expediente.cod_expediente, ind_excluido=0):
# dic_expedientes = {}
# dic_expedientes["nom_expediente"] = tip_expediente.nom_expediente
# dic_expedientes["txt_expediente"] = expediente.txt_expediente
# if dic_expedientes:
# lst_expedientes.append(dic_expedientes)
# # Lista das matérias do Expediente, incluindo o resultado das votacoes
# lst_expediente_materia=[]
# for expediente_materia in context.zsql.votacao_expediente_materia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# # seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=expediente_materia.cod_materia)[0]
# dic_expediente_materia = {}
# dic_expediente_materia["num_ordem"] = expediente_materia.num_ordem
# dic_expediente_materia["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
# dic_expediente_materia["des_numeracao"]=""
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=expediente_materia.cod_materia)
# if len(numeracao):
# numeracao = numeracao[0]
# dic_expediente_materia["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
# dic_expediente_materia["des_turno"]=""
# if len(tram):
# tram_turno = tram[0]
# if tram_turno.sgl_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"), ("F", "Final")]:
# if tram_turno.sgl_turno == turno[0]:
# dic_expediente_materia["des_turno"] = turno[1]
# dic_expediente_materia["txt_ementa"] = materia.txt_ementa
# dic_expediente_materia["ordem_observacao"] = expediente_materia.ordem_observacao
# dic_expediente_materia["nom_autor"] = ""
# autoria = context.zsql.autoria_obter_zsql(cod_materia=expediente_materia.cod_materia, ind_primeiro_autor=1)
# if len(autoria) > 0: # se existe autor
# autoria = autoria[0]
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
# if len(autor) > 0:
# autor = autor[0]
# try:
# if autor.des_tipo_autor == "Parlamentar":
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_expediente_materia["nom_autor"] = parlamentar.nom_parlamentar
# elif autor.des_tipo_autor == "Comissao":
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
# dic_expediente_materia["nom_autor"] = comissao.nom_comissao
# elif autor.nom_autor != "":
# dic_expediente_materia["nom_autor"] = autor.nom_autor
# else:
# dic_expediente_materia["nom_autor"] = autor.des_tipo_autor
# except:
# dic_expediente_materia["nom_autor"] = "NC-em"
# dic_expediente_materia["votacao_observacao"]=""
# if expediente_materia.tip_resultado_votacao:
# resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=expediente_materia.tip_resultado_votacao, ind_excluido=0)
# for i in resultado:
# dic_expediente_materia["nom_resultado"] = i.nom_resultado
# if expediente_materia.votacao_observacao:
# dic_expediente_materia["votacao_observacao"] = expediente_materia.votacao_observacao
# else:
# dic_expediente_materia["nom_resultado"] = "Matéria não votada"
# dic_expediente_materia["votacao_observacao"] = "Vazio"
# lst_expediente_materia.append(dic_expediente_materia)
# # Lista dos oradores do Expediente
# lst_oradores_expediente = []
# for orador_expediente in context.zsql.oradores_expediente_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador_expediente.cod_parlamentar,ind_excluido=0):
# dic_oradores_expediente = {}
# dic_oradores_expediente["num_ordem"] = orador_expediente.num_ordem
# dic_oradores_expediente["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_oradores_expediente['sgl_partido'] = parlamentar.sgl_partido
# lst_oradores_expediente.append(dic_oradores_expediente)
# # Lista presença na ordem do dia
# lst_presenca_ordem_dia = []
# for presenca_ordem_dia in context.zsql.presenca_ordem_dia_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen,ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=presenca_ordem_dia.cod_parlamentar,ind_excluido=0):
# dic_presenca_ordem_dia = {}
# dic_presenca_ordem_dia['nom_parlamentar'] = parlamentar.nom_parlamentar
# dic_presenca_ordem_dia['sgl_partido'] = parlamentar.sgl_partido
# lst_presenca_ordem_dia.append(dic_presenca_ordem_dia)
# # Lista das matérias da Ordem do Dia, incluindo o resultado das votacoes
# lst_votacao=[]
# for votacao in context.zsql.votacao_ordem_dia_obter_zsql(dat_ordem = data, cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# # seleciona os detalhes de uma matéria
# materia = context.zsql.materia_obter_zsql(cod_materia=votacao.cod_materia)[0]
# dic_votacao = {}
# dic_votacao["num_ordem"] = votacao.num_ordem
# dic_votacao["id_materia"] = materia.sgl_tipo_materia+" "+materia.des_tipo_materia+" "+str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
# dic_votacao["des_numeracao"]=""
# numeracao = context.zsql.numeracao_obter_zsql(cod_materia=votacao.cod_materia)
# if len(numeracao):
# numeracao = numeracao[0]
# dic_votacao["des_numeracao"] = str(numeracao.num_materia)+"/"+str(numeracao.ano_materia)
# dic_votacao["des_turno"]=""
# tramitacao = context.zsql.tramitacao_obter_zsql(cod_materia=materia.cod_materia, ind_ult_tramitacao=1)
# if len(tramitacao):
# tramitacao = tramitacao[0]
# tram = context.zsql.tramitacao_turno_obter_zsql(cod_materia=materia.cod_materia, dat_inicio_sessao=data)
# if len(tram):
# tram_turno = tram[0]
# if tram_turno.sgl_turno != "":
# for turno in [("P","Primeiro"), ("S","Segundo"), ("U","Único"), ("L","Suplementar"), ("F","Final"), ("A","Votação Única em Regime de Urgência"), ("B","1ª Votação"), ("C","2ª e 3ª Votações")]:
# if tram_turno.sgl_turno == turno[0]:
# dic_votacao["des_turno"] = turno[1]
# dic_votacao["txt_ementa"] = materia.txt_ementa
# dic_votacao["ordem_observacao"] = votacao.ordem_observacao
# dic_votacao["nom_autor"] = ""
# autoria = context.zsql.autoria_obter_zsql(cod_materia=votacao.cod_materia, ind_primeiro_autor=1)
# if len(autoria) > 0: # se existe autor
# autoria = autoria[0]
# autor = context.zsql.autor_obter_zsql(cod_autor=autoria.cod_autor)
# if len(autor) > 0:
# autor = autor[0]
# try:
# if autor.des_tipo_autor == "Parlamentar":
# parlamentar = context.zsql.parlamentar_obter_zsql(cod_parlamentar=autor.cod_parlamentar)[0]
# dic_votacao["nom_autor"] = parlamentar.nom_parlamentar
# elif autor.des_tipo_autor == "Comissao":
# comissao = context.zsql.comissao_obter_zsql(cod_comissao=autor.cod_comissao)[0]
# dic_votacao["nom_autor"] = comissao.nom_comissao
# elif autor.nom_autor != "":
# dic_votacao["nom_autor"] = autor.nom_autor
# else:
# dic_votacao["nom_autor"] = autor.des_tipo_autor
# except:
# dic_votacao["nom_autor"] = "NC-od"
# dic_votacao["votacao_observacao"]=""
# if votacao.tip_resultado_votacao:
# resultado = context.zsql.tipo_resultado_votacao_obter_zsql(tip_resultado_votacao=votacao.tip_resultado_votacao, ind_excluido=0)
# for i in resultado:
# dic_votacao["nom_resultado"] = i.nom_resultado
# if votacao.votacao_observacao:
# dic_votacao["votacao_observacao"] = votacao.votacao_observacao
# else:
# dic_votacao["nom_resultado"] = "Matéria não votada"
# dic_votacao["votacao_observacao"] = "Vazio"
# lst_votacao.append(dic_votacao)
# # Lista dos oradores nas Explicações Pessoais
# lst_oradores = []
# for orador in context.zsql.oradores_obter_zsql(cod_sessao_plen=sessao.cod_sessao_plen, ind_excluido=0):
# for parlamentar in context.zsql.parlamentar_obter_zsql(cod_parlamentar=orador.cod_parlamentar,ind_excluido=0):
# dic_oradores = {}
# dic_oradores["num_ordem"] = orador.num_ordem
# dic_oradores["nom_parlamentar"] = parlamentar.nom_parlamentar
# dic_oradores['sgl_partido'] = parlamentar.sgl_partido
# lst_oradores.append(dic_oradores)
def relatorio_sessao_plenaria(request):
'''
pdf_sessao_plenaria_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="relatorio_protocolo.pdf"'
casa = CasaLegislativa.objects.first()
cabecalho = get_cabecalho(casa)
rodape = get_rodape(casa)
imagem = get_imagem(casa)
# protocolos = Protocolo.objects.all()[:50]
sessao_data = get_sessao_plenaria(sessao)
pdf = pdf_sessao_plenaria_gerar.principal(None,
imagem,
None,
sessao_data,
cabecalho,
rodape)
response.write(pdf)
return response
def get_protocolos(prots):
protocolos = []
for protocolo in prots:
dic = {}
dic['titulo'] = str(protocolo.numero) + '/' + str(protocolo.ano)
dic['data'] = protocolo.data.strftime(
"%d/%m/%Y") + ' - <b>Horário:</b>' + protocolo.hora.strftime("%H:%m")
dic['txt_assunto'] = protocolo.assunto_ementa
dic['txt_interessado'] = protocolo.interessado
dic['nom_autor'] = " "
if protocolo.autor:
if protocolo.autor.parlamentar:
dic['nom_autor'] = protocolo.autor.parlamentar.nome_completo
elif protocolo.autor.comissao:
dic['nom_autor'] = protocolo.autor.comissao.nome
dic['natureza'] = ''
if protocolo.tipo_documento:
dic['natureza'] = 'Administrativo'
dic['processo'] = protocolo.tipo_documento.descricao
elif protocolo.tipo_materia:
dic['natureza'] = 'Legislativo'
dic['processo'] = protocolo.tipo_materia.descricao
else:
dic['natureza'] = 'Indefinida'
dic['processo'] = ''
dic['anulado'] = ''
if protocolo.anulado:
dic['anulado'] = 'Nulo'
protocolos.append(dic)
return protocolos
def relatorio_protocolo(request):
'''
pdf_protocolo_gerar.py
'''
response = HttpResponse(content_type='application/pdf')
response[
'Content-Disposition'] = 'attachment; filename="relatorio_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_protocolos(protocolos)
pdf = pdf_protocolo_gerar.principal(None,
imagem,
None,
protocolo_data,
cabecalho,
rodape)
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") + ' - <b>Horário:</b>' + 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
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)