From 10a179f7e17a614f145afb579b6268057040fc51 Mon Sep 17 00:00:00 2001 From: "Camilo Carlos (Estagiario)" Date: Fri, 14 May 2010 17:20:12 +0000 Subject: [PATCH] =?UTF-8?q?Corrigindo=20script=20de=20migra=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etc/migracao/migra.py | 145 +++++++++++++++++++++++++++++------------- 1 file changed, 102 insertions(+), 43 deletions(-) diff --git a/etc/migracao/migra.py b/etc/migracao/migra.py index 6e4fed3..b0284fc 100755 --- a/etc/migracao/migra.py +++ b/etc/migracao/migra.py @@ -1,6 +1,5 @@ - #!/usr/bin/env python -# coding: utf-8 +# -*- coding: utf-8 -*- """ 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 UF_COL = 5 NOME_COL = 8 - ENDERECO_COL = 39 - CEP_COL = 40 - EMAIL_COL = 41 - PAGINA_COL = 43 - OBS_COL = 37 FONE_1_COL = 32 FONE_2_COL = 33 FAX_COL = 34 FONE_PREFEITURA = 35 + OBS_COL = 37 PRESIDENTE_COL = 38 + ENDERECO_COL = 39 + CEP_COL = 40 + EMAIL_COL = 41 EMAIL_PRESIDENTE_COL = 42 - REPRESENTANTE_COL = 86 + PAGINA_COL = 43 + #REPRESENTANTE_COL = 86 reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True) header = reader.next() 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( municipio=municipio, nome=line[NOME_COL], @@ -93,9 +93,9 @@ def migra_assembleias(filename): ) fone_prefeitura.save() - if line[REPRESENTANTE_COL]: - representante = Contato(nome=line[REPRESENTANTE_COL], content_object=casa) - representante.save() +# if line[REPRESENTANTE_COL]: +# representante = Contato(nome=line[REPRESENTANTE_COL], content_object=casa) +# representante.save() if line[PRESIDENTE_COL]: mesa = MesaDiretora(casa_legislativa=casa) @@ -134,13 +134,19 @@ def migra_casas(filename): linenum = 1 for line in reader: linenum += 1 - try: 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: + print "Municipio não existe" + #var = raw_input() + #print line[COD_IBDE_COL] print ERROR_MSG_1 % (filename, linenum) continue except ValueError: + var = raw_input() print ERROR_MSG_1 % (filename, linenum) continue casa = CasaLegislativa( @@ -153,9 +159,12 @@ def migra_casas(filename): pagina_web=line[PAGINA_COL], observacoes=line[OBS_COL], ) + #print casa.nome try: casa.save() except: + print "Erro ao inserir casa" + #var = raw_input("teste") print ERROR_MSG_0 % (filename, linenum) continue @@ -217,10 +226,16 @@ def migra_cnpj(filename): except ValueError: print ERROR_MSG_1 % (filename, linenum) 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() 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): ldata = data.split('-') if len(ldata) != 3: @@ -228,14 +243,26 @@ def migra_convenios_casas(filename): return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2])) # identificação das colunas no arquivo CSV + # No arquivo CSV colunas que contém _100 são do Programa Interlegis COD_IBGE_COL = 1 - NUM_PROCESSO_SF_COL = 25 + DATA_ADESAO_COL = 10 DATA_TERMO_ACEITE_COL = 21 + NUM_CONVENIO_COL = 23 + DATA_POSTAGEM_CORREIO = 26 + NUM_PROCESSO_SF_COL = 27 DATA_RETORNO_ASSINATURA = 28 DATA_PUB_DIARIO = 30 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) header = reader.next() @@ -254,19 +281,49 @@ def migra_convenios_casas(filename): except ValueError: print ERROR_MSG_1 % (filename, linenum) continue - - convenio = Convenio( + if line[DATA_ADESAO_COL]=='1001-01-01':#Sem Projeto + 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, + projeto=projeto, + num_processo_sf=line[NUM_PROCESSO_SF_COL], + num_convenio=line[NUM_CONVENIO_COL], + data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]), + data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]), + data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]), + data_termo_aceite=get_datetime_obj(line[DATA_PUB_DIARIO]), + data_devolucao_via=get_datetime_obj(line[DATA_DEV_VIA_CONV_CM]), + 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, - num_processo_sf=line[NUM_PROCESSO_SF_COL], - data_adesao=get_datetime_obj(line[DATA_ADESAO_COL]), - data_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]), - data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]), - data_termo_aceite=get_datetime_obj(line[DATA_PUB_DIARIO]), - data_devolucao_via=get_datetime_obj(line[DATA_DEV_VIA_CONV_CM]), - data_postagem_correio=get_datetime_obj(line[DATA_POSTAGEM_CORREIO]), - ) + 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: - convenio.save() + if convenio1: convenio1.save() + if convenio2: convenio2.save() except: print ERROR_MSG_0 % (filename, linenum) continue @@ -279,14 +336,14 @@ def migra_convenios_assembleias(filename): return datetime(int(ldata[0]), int(ldata[1]), int(ldata[2])) # identificação das colunas no arquivo CSV - COD_IBGE_COL = 1 - NUM_PROCESSO_SF_COL = 25 + SIGLA_COL = 5 DATA_ADESAO_COL = 10 DATA_TERMO_ACEITE_COL = 21 - DATA_RETORNO_ASSINATURA = 28 - DATA_PUB_DIARIO = 30 - DATA_DEV_VIA_CONV_CM = 32 - DATA_POSTAGEM_CORREIO = 26 + NUM_CONVENIO_COL = 23 + NUM_PROCESSO_SF_COL = 26 + DATA_RETORNO_ASSINATURA = 27 + DATA_PUB_DIARIO = 39 + DATA_DEV_VIA_CONV_CM = 31 reader = csv.reader(open(filename, 'r'), delimiter='|', skipinitialspace=True) header = reader.next() @@ -295,7 +352,7 @@ def migra_convenios_assembleias(filename): linenum += 1 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: print ERROR_MSG_1 % (filename, linenum) continue @@ -304,10 +361,12 @@ def migra_convenios_assembleias(filename): except ValueError: print ERROR_MSG_1 % (filename, linenum) continue - + projeto = Projeto.object.get(id=2) convenio = Convenio( casa_legislativa=assembleia, 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_retorno_assinatura=get_datetime_obj(line[DATA_TERMO_ACEITE_COL]), data_pub_diario=get_datetime_obj(line[DATA_RETORNO_ASSINATURA]), @@ -323,13 +382,13 @@ def migra_convenios_assembleias(filename): if __name__ == '__main__': - print "" - migra_assembleias('assembleias.csv') - print "" - migra_casas('casas.csv') - print "" - migra_cnpj('cnpj.csv') +# print "" +# migra_assembleias('assembleias.csv') +# print "" +# migra_casas('casas.csv') +# print "" +# migra_cnpj('cnpj.csv') print "" migra_convenios_casas('casas.csv') - print "" - migra_convenios_casas('assembleias.csv') +# print "" +# migra_convenios_assembleias('assembleias.csv')