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") + ' - Horário:' + 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") + ' - 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 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)