import os

request=context.REQUEST
response=request.RESPONSE
session= request.SESSION

data=DateTime().strftime('%d/%m/%Y')

#Abaixo é gerada a string para o rodapé da página
casa={}
aux=context.sapl_documentos.props_sapl.propertyItems()
for item in aux:
 casa[item[0]]=item[1]
localidade=context.zsql.localidade_obter_zsql(cod_localidade=casa["cod_localidade"])
if len(casa["num_cep"])==8:
 cep=casa["num_cep"][:4]+"-"+casa["num_cep"][5:]
else:
 cep=""

linha1=casa["end_casa"]
if cep!="":
  if casa["end_casa"]!="" and casa["end_casa"]!=None:
     linha1 = linha1 + " - "
  linha1 = linha1 + "CEP "+cep
if localidade[0].nom_localidade!="" and localidade[0].nom_localidade!=None:
  linha1 = linha1 + " - "+localidade[0].nom_localidade+" "+localidade[0].sgl_uf
if casa["num_tel"]!="" and casa["num_tel"]!=None:
  linha1 = linha1 + " Tel.: "+ casa["num_tel"]

linha2=casa["end_web_casa"]
if casa["end_email_casa"]!="" and casa["end_email_casa"]!=None:
  if casa["end_web_casa"]!="" and casa["end_web_casa"]!=None:
    linha2 = linha2 + " - "
  linha2 =  linha2 + "E-mail: "+casa["end_email_casa"]

data_emissao=DateTime().strftime("%d/%m/%Y")
rodape=[linha1,linha2,data_emissao]

#Por fim, gera-se as entradas para o cabeçalho
estados=context.zsql.localidade_obter_zsql(tip_localidade="u")
for uf in estados:
 if localidade[0].sgl_uf==uf.sgl_uf:
  nom_estado=uf.nom_localidade
  break
cabecalho={}
cabecalho["nom_casa"]=casa["nom_casa"]
cabecalho["nom_estado"]="Estado de "+nom_estado

# tenta buscar o logotipo da casa LOGO_CASA
if hasattr(context.sapl_documentos.props_sapl,'logo_casa.gif'):
  imagem = context.sapl_documentos.props_sapl['logo_casa.gif'].absolute_url()
else:
  imagem = context.sapl_site.sapl_skin.imagens.absolute_url() + "/brasao_transp.gif"

#Verifica o tamanho da lista das materias selecionadas vindas do form
REQUEST=context.REQUEST
if REQUEST.txt_check=='1':
  cod_mat = REQUEST['check_ind']
  materias=[]
  REQUEST=context.REQUEST
  for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat):
        dic={}
	dic['titulo']="INDICAÇÃO: "+str(materia.num_ident_basica)+" "+str(materia.ano_ident_basica)
	dic['materia']=str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
	dic['dat_apresentacao']=materia.dat_apresentacao
	dic['txt_ementa']=materia.txt_ementa

        dic['nom_autor'] = " "
        for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia, ind_primeiro_autor=1):
            for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.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

        des_status = ''
        txt_tramitacao=''
        data_ultima_acao = ''

	dic['localizacao_atual']=" "
        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
                elif unidade_tramitacao.cod_parlamentar:
                    dic['localizacao_atual']=unidade_tramitacao.nom_parlamentar
                else:
                    dic['localizacao_atual']=unidade_tramitacao.nom_comissao

            des_status=tramitacao.des_status
            txt_tramitacao=tramitacao.txt_tramitacao
            data_ultima_acao = tramitacao.dat_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"
        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)

else:
  codigo = REQUEST.check_ind
  materias=[]
  REQUEST=context.REQUEST
  for cod_mat in codigo:
   for materia in context.zsql.materia_obter_zsql(cod_materia=cod_mat):
        dic={}
	dic['titulo']="INDICAÇÃO: "+str(materia.num_ident_basica)+" "+str(materia.ano_ident_basica)
        dic['materia']=str(materia.num_ident_basica)+"/"+str(materia.ano_ident_basica)
        dic['dat_apresentacao']=materia.dat_apresentacao
        dic['txt_ementa']=materia.txt_ementa

        dic['nom_autor'] = " " 
        for autoria in context.zsql.autoria_obter_zsql(cod_materia=materia.cod_materia, ind_primeiro_autor=1):
            for autor in context.zsql.autor_obter_zsql(cod_autor=autoria.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
            
        des_status = ''
        txt_tramitacao=''
	data_ultima_acao = ''

        dic['localizacao_atual']=" "
        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
		elif unidade_tramitacao.cod_parlamentar:
		    dic['localizacao_atual']=unidade_tramitacao.nom_parlamentar
                else:
                    dic['localizacao_atual']=unidade_tramitacao.nom_comissao
        
            des_status=tramitacao.des_status
            txt_tramitacao=tramitacao.txt_tramitacao
	    data_ultima_acao = tramitacao.dat_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"
	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)

filtro={} # Dicionário que conterá os dados do filtro

# Atribuições diretas do REQUEST
#filtro['data_apres']=REQUEST.data

#filtro['tipo_materia']=''
#for tipo_materia in context.zsql.tipo_materia_legislativa_obter_zsql(ind_excluido=0, tip_materia=9):
#    filtro['tipo_materia']= tipo_materia.sgl_tipo_materia + ' - ' + tipo_materia.des_tipo_materia

#filtro['partido']=''
#if REQUEST.lst_cod_partido!='':
#    for partido in context.zsql.partido_obter_zsql(ind_excluido=0,cod_partido=REQUEST.lst_cod_partido):
#        filtro['partido']=partido.sgl_partido + ' - ' + partido.nom_partido

#filtro['tramitando']=''
#if REQUEST.rad_tramitando=='1':
#    filtro['tramitacao']='Sim'
#elif REQUEST['rad_tramitando']=='0':
#    filtro['tramitacao']='Não'

#filtro['situacao_atual']=''
#if REQUEST.lst_status!='':
#    for status in context.zsql.status_tramitacao_obter_zsql(ind_exluido=0,cod_status=REQUEST.lst_status):
#        filtro['situacao_atual']=status.sgl_status + ' - ' + status.des_status

sessao=session.id
caminho = context.pdf_espelho_gerar(sessao,imagem,data,materias,cabecalho,rodape,filtro)
if caminho=='aviso':
 return response.redirect('mensagem_emitir_proc')
else:
 response.redirect(caminho)