|
|
@ -19,6 +19,11 @@ fks_legado = ''' |
|
|
|
registro_votacao_parlamentar cod_votacao registro_votacao |
|
|
|
sessao_legislativa num_legislatura legislatura |
|
|
|
sessao_plenaria_presenca cod_parlamentar parlamentar |
|
|
|
composicao_comissao cod_cargo cargo_comissao |
|
|
|
sessao_plenaria cod_sessao_leg sessao_legislativa |
|
|
|
ordem_dia cod_sessao_plen sessao_plenaria |
|
|
|
proposicao cod_materia materia_legislativa |
|
|
|
proposicao cod_autor autor |
|
|
|
''' |
|
|
|
fks_legado = [l.split() for l in fks_legado.strip().splitlines()] |
|
|
|
fks_legado = {(o, c): t for (o, c, t) in fks_legado} |
|
|
@ -36,8 +41,8 @@ def get_excluido(fk): |
|
|
|
def get_dependencias_a_ressucitar(): |
|
|
|
ocorrencias = yaml.load( |
|
|
|
Path(DIR_REPO.child('ocorrencias.yaml').read_file())) |
|
|
|
fks = ocorrencias['fk'] |
|
|
|
excluidos = [get_excluido(fk) for fk in fks] |
|
|
|
fks_faltando = ocorrencias['fk'] |
|
|
|
excluidos = [get_excluido(fk) for fk in fks_faltando] |
|
|
|
desexcluir, criar = [ |
|
|
|
set([(tabela_alvo, campo, valor) |
|
|
|
for tabela_origem, campo, valor, tabela_alvo, res in excluidos |
|
|
@ -51,9 +56,65 @@ def get_dependencias_a_ressucitar(): |
|
|
|
return desexcluir, criar |
|
|
|
|
|
|
|
|
|
|
|
SQLS_CRIACAO = { |
|
|
|
'tipo_proposicao': ''' |
|
|
|
insert into tipo_materia_legislativa ( |
|
|
|
tip_materia, sgl_tipo_materia, des_tipo_materia, ind_num_automatica, |
|
|
|
quorum_minimo_votacao, ind_excluido) |
|
|
|
values (0, "DESC", "DESCONHECIDO", 0, 0, 0); |
|
|
|
|
|
|
|
insert into tipo_proposicao ( |
|
|
|
tip_proposicao, des_tipo_proposicao, ind_mat_ou_doc, tip_mat_ou_doc, |
|
|
|
nom_modelo, ind_excluido) |
|
|
|
values ({}, "DESCONHECIDO", "M", 0, "DESCONHECIDO", 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) |
|
|
|
|
|
|
|
|
|
|
|
def get_sql_desexcluir(tabela_alvo, campo, valor): |
|
|
|
return 'update {} set ind_excluido = 0 where {} = {};'.format( |
|
|
|
tabela_alvo, campo, valor) |
|
|
|
|
|
|
|
|
|
|
|
def get_sql_criar(tabela_alvo, campo, valor): |
|
|
|
if tabela_alvo == 'sessao_legislativa': |
|
|
|
return criar_sessao_legislativa(campo, valor) |
|
|
|
else: |
|
|
|
sql = SQLS_CRIACAO[tabela_alvo] |
|
|
|
return sql.format(valor) |
|
|
|
|
|
|
|
|
|
|
|
TEMPLATE_RESSUCITADOS = ''' |
|
|
|
/* RESSUCITADOS * / |
|
|
|
|
|
|
|
{} |
|
|
|
''' |
|
|
|
|
|
|
|
|
|
|
|
def get_sqls_desexcluir_criar(desexcluir, criar): |
|
|
|
sqls_desexcluir = [ |
|
|
|
'update {} set ind_excluido = 0 where {} = {};'.format( |
|
|
|
tabela_alvo, campo, valor) |
|
|
|
for tabela_alvo, campo, valor in desexcluir] |
|
|
|
return '\n'.join(sqls_desexcluir) |
|
|
|
sqls = [get_sql(tabela_alvo, campo, valor) |
|
|
|
for conjunto, get_sql in ((desexcluir, get_sql_desexcluir), |
|
|
|
(criar, get_sql_criar)) |
|
|
|
for tabela_alvo, campo, valor in conjunto] |
|
|
|
if not sqls: |
|
|
|
return '' |
|
|
|
else: |
|
|
|
return TEMPLATE_RESSUCITADOS.format('\n'.join(sorted(sqls))) |
|
|
|
|
|
|
|
|
|
|
|
def print_ressucitar(): |
|
|
|
desexcluir, criar = get_dependencias_a_ressucitar() |
|
|
|
print(get_sqls_desexcluir_criar(desexcluir, criar)) |
|
|
|