Browse Source

Corrigindo script de migração

0.3
Camilo Carlos (Estagiario) 15 years ago
parent
commit
10a179f7e1
  1. 129
      etc/migracao/migra.py

129
etc/migracao/migra.py

@ -1,6 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# coding: utf-8 # -*- coding: utf-8 -*-
""" """
Script para fazer a migração dos dados do SIGI antigo (Access), exportados para Script para fazer a migração dos dados do SIGI antigo (Access), exportados para
@ -43,24 +42,25 @@ def migra_assembleias(filename):
# identificação das colunas nos arquivo CSV # identificação das colunas nos arquivo CSV
UF_COL = 5 UF_COL = 5
NOME_COL = 8 NOME_COL = 8
ENDERECO_COL = 39
CEP_COL = 40
EMAIL_COL = 41
PAGINA_COL = 43
OBS_COL = 37
FONE_1_COL = 32 FONE_1_COL = 32
FONE_2_COL = 33 FONE_2_COL = 33
FAX_COL = 34 FAX_COL = 34
FONE_PREFEITURA = 35 FONE_PREFEITURA = 35
OBS_COL = 37
PRESIDENTE_COL = 38 PRESIDENTE_COL = 38
ENDERECO_COL = 39
CEP_COL = 40
EMAIL_COL = 41
EMAIL_PRESIDENTE_COL = 42 EMAIL_PRESIDENTE_COL = 42
REPRESENTANTE_COL = 86 PAGINA_COL = 43
#REPRESENTANTE_COL = 86
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True) reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next() header = reader.next()
for line in reader: for line in reader:
municipio = Municipio.objects.get(uf__sigla=line[UF_COL], is_capital=True) UF = UnidadeFederativa.objects.get(sigla=line[UF_COL])
municipio = Municipio.objects.get(municipio__codigo_ibge=line[UF_COL], is_capital=True)
casa = CasaLegislativa( casa = CasaLegislativa(
municipio=municipio, municipio=municipio,
nome=line[NOME_COL], nome=line[NOME_COL],
@ -93,9 +93,9 @@ def migra_assembleias(filename):
) )
fone_prefeitura.save() fone_prefeitura.save()
if line[REPRESENTANTE_COL]: # if line[REPRESENTANTE_COL]:
representante = Contato(nome=line[REPRESENTANTE_COL], content_object=casa) # representante = Contato(nome=line[REPRESENTANTE_COL], content_object=casa)
representante.save() # representante.save()
if line[PRESIDENTE_COL]: if line[PRESIDENTE_COL]:
mesa = MesaDiretora(casa_legislativa=casa) mesa = MesaDiretora(casa_legislativa=casa)
@ -134,13 +134,19 @@ def migra_casas(filename):
linenum = 1 linenum = 1
for line in reader: for line in reader:
linenum += 1 linenum += 1
try: try:
municipio = Municipio.objects.get(codigo_ibge=line[COD_IBGE_COL]) municipio = Municipio.objects.get(codigo_ibge=line[COD_IBGE_COL])
#print line[COD_IBGE_COL]
#var = raw_input()
print municipio.codigo_ibge
except Municipio.DoesNotExist: except Municipio.DoesNotExist:
print "Municipio não existe"
#var = raw_input()
#print line[COD_IBDE_COL]
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
except ValueError: except ValueError:
var = raw_input()
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
casa = CasaLegislativa( casa = CasaLegislativa(
@ -153,9 +159,12 @@ def migra_casas(filename):
pagina_web=line[PAGINA_COL], pagina_web=line[PAGINA_COL],
observacoes=line[OBS_COL], observacoes=line[OBS_COL],
) )
#print casa.nome
try: try:
casa.save() casa.save()
except: except:
print "Erro ao inserir casa"
#var = raw_input("teste")
print ERROR_MSG_0 % (filename, linenum) print ERROR_MSG_0 % (filename, linenum)
continue continue
@ -217,10 +226,16 @@ def migra_cnpj(filename):
except ValueError: except ValueError:
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
casa.cnpj = line[COD_CNPJ1_COL] if not 'BRANCO' in line[COD_CNPJ1_COL] else line[COD_CNPJ2_COL] casa.cnpj = line[COD_CNPJ1_COL] if not 'EM BRANCO' in line[COD_CNPJ1_COL] else line[COD_CNPJ2_COL]
casa.save() casa.save()
def migra_convenios_casas(filename): def migra_convenios_casas(filename):
"""
Será preciso cadastrar no banco os seguintes Projeto:
1 - Sem Projeto
2 - Projeto Interlegis
3 - Programa Piloto de Modernização
"""
def get_datetime_obj(data): def get_datetime_obj(data):
ldata = data.split('-') ldata = data.split('-')
if len(ldata) != 3: if len(ldata) != 3:
@ -228,14 +243,26 @@ def migra_convenios_casas(filename):
return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2])) return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2]))
# identificação das colunas no arquivo CSV # identificação das colunas no arquivo CSV
# No arquivo CSV colunas que contém _100 são do Programa Interlegis
COD_IBGE_COL = 1 COD_IBGE_COL = 1
NUM_PROCESSO_SF_COL = 25
DATA_ADESAO_COL = 10 DATA_ADESAO_COL = 10
DATA_TERMO_ACEITE_COL = 21 DATA_TERMO_ACEITE_COL = 21
NUM_CONVENIO_COL = 23
DATA_POSTAGEM_CORREIO = 26
NUM_PROCESSO_SF_COL = 27
DATA_RETORNO_ASSINATURA = 28 DATA_RETORNO_ASSINATURA = 28
DATA_PUB_DIARIO = 30 DATA_PUB_DIARIO = 30
DATA_DEV_VIA_CONV_CM = 32 DATA_DEV_VIA_CONV_CM = 32
DATA_POSTAGEM_CORREIO = 26
DATA_ADESAO_100_COL = 11
DATA_TERMO_ACEITE_100_COL = 22
NUM_CONVENIO_100_COL = 24
NUM_PROCESSO_SF_100_COL = 25
DATA_RETORNO_ASSINATURA_100_COL = 29
DATA_PUB_DIARIO_100_COL = 31
#DATA_DEV_VIA_CONV_CM_100 = 32 Não foi registrado para as 100
#DATA_POSTAGEM_CORREIO_100 = 26
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True) reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next() header = reader.next()
@ -254,10 +281,19 @@ def migra_convenios_casas(filename):
except ValueError: except ValueError:
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
if line[DATA_ADESAO_COL]=='1001-01-01':#Sem Projeto
convenio = Convenio( line[DATA_ADESAO_COL]=''
projeto = Projeto.objects.get(id=1)
else:
projeto = Projeto.objects.get(id=2)
if(projeto.id!=1 or line[NUM_PROCESSO_SF_COL].__len__()!=0 or
line[NUM_CONVENIO_COL].__len__()!=0):
convenio1 = Convenio(
casa_legislativa=casa, casa_legislativa=casa,
projeto=projeto,
num_processo_sf=line[NUM_PROCESSO_SF_COL], num_processo_sf=line[NUM_PROCESSO_SF_COL],
num_convenio=line[NUM_CONVENIO_COL],
data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]), data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]),
data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]), data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]),
data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]), data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]),
@ -265,8 +301,29 @@ def migra_convenios_casas(filename):
data_devolucao_via=get_datetime_obj(line[DATA_DEV_VIA_CONV_CM]), data_devolucao_via=get_datetime_obj(line[DATA_DEV_VIA_CONV_CM]),
data_postagem_correio=get_datetime_obj(line[DATA_POSTAGEM_CORREIO]), data_postagem_correio=get_datetime_obj(line[DATA_POSTAGEM_CORREIO]),
) )
if line[DATA_ADESAO_100_COL]=='1001-01-01':#Sem Projeto
line[DATA_ADESAO_100_COL]=''
projeto = Projeto.objects.get(id=1)
else:
projeto = Projeto.objects.get(id=3)
if(projeto.id!=1 or line[NUM_PROCESSO_SF_100_COL].__len__()!=0 or
line[NUM_CONVENIO_100_COL].__len__()!=0):
convenio2 = Convenio(
casa_legislativa=casa,
projeto=projeto,
num_processo_sf=line[NUM_PROCESSO_SF_100_COL],
num_convenio=line[NUM_CONVENIO_100_COL],
data_adesao=get_datetime_obj(line[DATA_ADESAO_100_COL]),
data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_100_COL]),
data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA_100_COL]),
data_termo_aceite=get_datetime_obj(line[DATA_PUB_DIARIO_100_COL]),
# data_devolucao_via=get_datetime_obj(line[DATA_DEV_VIA_CONV_CM]),
# data_postagem_correio=get_datetime_obj(line[DATA_POSTAGEM_CORREIO]),
)
try: try:
convenio.save() if convenio1: convenio1.save()
if convenio2: convenio2.save()
except: except:
print ERROR_MSG_0 % (filename, linenum) print ERROR_MSG_0 % (filename, linenum)
continue continue
@ -279,14 +336,14 @@ def migra_convenios_assembleias(filename):
return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2])) return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2]))
# identificação das colunas no arquivo CSV # identificação das colunas no arquivo CSV
COD_IBGE_COL = 1 SIGLA_COL = 5
NUM_PROCESSO_SF_COL = 25
DATA_ADESAO_COL = 10 DATA_ADESAO_COL = 10
DATA_TERMO_ACEITE_COL = 21 DATA_TERMO_ACEITE_COL = 21
DATA_RETORNO_ASSINATURA = 28 NUM_CONVENIO_COL = 23
DATA_PUB_DIARIO = 30 NUM_PROCESSO_SF_COL = 26
DATA_DEV_VIA_CONV_CM = 32 DATA_RETORNO_ASSINATURA = 27
DATA_POSTAGEM_CORREIO = 26 DATA_PUB_DIARIO = 39
DATA_DEV_VIA_CONV_CM = 31
reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True) reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True)
header = reader.next() header = reader.next()
@ -295,7 +352,7 @@ def migra_convenios_assembleias(filename):
linenum += 1 linenum += 1
try: try:
assembleia = CasaLegislativa.objects.get(municipio__codigo_ibge=line[COD_IBGE_COL]) assembleia = CasaLegislativa.objects.get(municipio__uf__sigla=line[COD_IBGE_COL])
except CasaLegislativa.DoesNotExist: except CasaLegislativa.DoesNotExist:
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
@ -304,10 +361,12 @@ def migra_convenios_assembleias(filename):
except ValueError: except ValueError:
print ERROR_MSG_1 % (filename, linenum) print ERROR_MSG_1 % (filename, linenum)
continue continue
projeto = Projeto.object.get(id=2)
convenio = Convenio( convenio = Convenio(
casa_legislativa=assembleia, casa_legislativa=assembleia,
num_processo_sf=line[NUM_PROCESSO_SF_COL], num_processo_sf=line[NUM_PROCESSO_SF_COL],
num_convenio=line[NUM_CONVENIO_COL],
projeto=projeto,
data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]), data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]),
data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]), data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]),
data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]), data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]),
@ -323,13 +382,13 @@ def migra_convenios_assembleias(filename):
if __name__ == '__main__': if __name__ == '__main__':
print "<iniciando migração das assembléias legislativas>" # print "<iniciando migração das assembléias legislativas>"
migra_assembleias('assembleias.csv') # migra_assembleias('assembleias.csv')
print "<iniciando migração das demais casas legislativas>" # print "<iniciando migração das demais casas legislativas>"
migra_casas('casas.csv') # migra_casas('casas.csv')
print "<iniciando migração dos CNPJ das casas>" # print "<iniciando migração dos CNPJ das casas>"
migra_cnpj('cnpj.csv') # migra_cnpj('cnpj.csv')
print "<iniciando migração dos convênios das casas municipais>" print "<iniciando migração dos convênios das casas municipais>"
migra_convenios_casas('casas.csv') migra_convenios_casas('casas.csv')
print "<iniciando migração dos convênios das assembléias>" # print "<iniciando migração dos convênios das assembléias>"
migra_convenios_casas('assembleias.csv') # migra_convenios_assembleias('assembleias.csv')

Loading…
Cancel
Save