コード例 #1
0
def get_excluido(fk):
    tabela_origem, campo, valor = [fk[k] for k in ('tabela', 'campo', 'valor')]

    if tabela_origem == 'tipo_proposicao':
        tip_proposicao = fk['pk']['tip_proposicao']
        tabela_alvo, campo = get_tabela_campo_tipo_proposicao(tip_proposicao)
    elif tabela_origem == 'proposicao' and campo == 'cod_mat_ou_doc':
        [(ind_mat_ou_doc, )] = exec_legado('''
            select ind_mat_ou_doc from
                proposicao p inner join tipo_proposicao t
                on p.tip_proposicao = t.tip_proposicao
            where cod_proposicao = {};
        '''.format(fk['pk']['cod_proposicao']))
        if ind_mat_ou_doc == 'M':
            tabela_alvo, campo = 'materia_legislativa', 'cod_materia'
        elif ind_mat_ou_doc == 'D':
            tabela_alvo, campo = 'documento_acessorio', 'cod_documento'
        else:
            raise (Exception('ind_mat_ou_doc inválido'))
    else:
        tabela_alvo = fks_legado[(tabela_origem, campo)]

    # troca nome de campo pelo correspondente na tabela alvo
    campo = CAMPOS_ORIGEM_PARA_ALVO.get(campo, campo)

    sql = 'select ind_excluido, t.* from {} t where {} = {}'.format(
        tabela_alvo, campo, valor)
    res = list(exec_legado(sql))
    return tabela_origem, campo, valor, tabela_alvo, res
コード例 #2
0
def get_excluido(fk):
    campo, valor, tabela_origem = [fk[k] for k in ('campo', 'valor', 'tabela')]
    tabela_alvo = fks_legado[(tabela_origem, campo)]
    sql = 'select ind_excluido, t.* from {} t where {} = {}'.format(
        tabela_alvo, campo, valor)
    res = list(exec_legado(sql))
    return tabela_origem, campo, valor, tabela_alvo, res
コード例 #3
0
ファイル: migracao_documentos.py プロジェクト: morale/sapl
def migrar_propriedades_da_casa(repo):
    print('#### Migrando propriedades da casa ####')
    caminho = join(repo.working_dir, 'sapl_documentos/propriedades.yaml')
    repo.git.execute('git annex get'.split() + [caminho])
    with open(caminho, 'r') as arquivo:
        propriedades = yaml.safe_load(arquivo)
    casa = CasaLegislativa.objects.first()
    if not casa:
        casa = CasaLegislativa()
    campos_para_propriedades = [('codigo', 'cod_casa'),
                                ('nome', 'nom_casa'),
                                ('sigla', 'sgl_casa'),
                                ('endereco', 'end_casa'),
                                ('cep', 'num_cep'),
                                ('telefone', 'num_tel'),
                                ('fax', 'num_fax'),
                                ('endereco_web', 'end_web_casa'),
                                ('email', 'end_email_casa'),
                                ('sigla', 'sgl_casa'),
                                ('informacao_geral', 'txt_informacao_geral')]
    for campo, prop in campos_para_propriedades:
        setattr(casa, campo, propriedades[prop])

    # localidade
    sql_localidade = '''
        select nom_localidade, sgl_uf from localidade
        where cod_localidade = {}'''.format(propriedades['cod_localidade'])
    [(casa.municipio, casa.uf)] = exec_legado(sql_localidade)

    # logotipo
    migrar_logotipo(repo, casa, propriedades)

    casa.save()
    repo.git.rm(caminho)
コード例 #4
0
def get_desc_materia(cod_materia):
    sql = '''
        select t.sgl_tipo_materia, t.des_tipo_materia,
            m.num_ident_basica, m.ano_ident_basica
        from materia_legislativa m inner join tipo_materia_legislativa t
            on m.tip_id_basica = t.tip_materia
        where cod_materia = {};
    '''.format(cod_materia)
    return list(exec_legado(sql))[0]
コード例 #5
0
def get_tabela_campo_tipo_proposicao(tip_proposicao):
    [(ind_mat_ou_doc, )] = exec_legado('''
        select ind_mat_ou_doc from tipo_proposicao where tip_proposicao = {};
        '''.format(tip_proposicao))
    if ind_mat_ou_doc == 'M':
        return 'tipo_materia_legislativa', 'tip_materia'
    elif ind_mat_ou_doc == 'D':
        return 'tipo_documento', 'tip_documento'
    else:
        raise (Exception('ind_mat_ou_doc inválido'))
コード例 #6
0
def criar_sessao_legislativa(campo, valor):
    assert campo == 'cod_sessao_leg'
    [(num_legislatura, )] = exec_legado(
        'select min(num_legislatura) from legislatura where ind_excluido <> 1')
    return '''
insert into sessao_legislativa (
    cod_sessao_leg, num_legislatura, num_sessao_leg, tip_sessao_leg,
    dat_inicio, dat_fim, dat_inicio_intervalo, dat_fim_intervalo,
ind_excluido) values ({}, {}, 0, "O",
    "1900-01-01", "1900-01-02", "1900-01-01", "1900-01-02", 0);
        '''.format(valor, num_legislatura)