def handle(self, *args, **options):

        dao = DAO('mysql')

        sql = "SELECT DISTINCT TRIM(VA.alternativa) FROM vestibular.alternativas VA \
               WHERE VA.perguntas_idperguntas = 3 \
               ORDER BY TRIM(VA.alternativa);"

        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()
        print(('Número de registros encontrados: {}').format(len(dados)))

        conta_criados = 0
        conta_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                origem_escolar = d[0]

                # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE
                obj, created = OrigemEscolar.objects.update_or_create(
                    descricao=origem_escolar)

                if created:
                    conta_criados += 1
                else:
                    conta_atualizados += 1

        print(('Número de registros INSERIDOS: {}').format(conta_criados))
        print(
            ('Número de registros ATUALIZADOS: {}').format(conta_atualizados))
        bd.close()
示例#2
0
    def handle(self, *args, **options):

        dao = DAO('mysql')

        sql = "SELECT DISTINCT TRIM(VA.alternativa) FROM vestibular.alternativas VA \
               WHERE VA.perguntas_idperguntas = 31 \
               ORDER BY TRIM(VA.alternativa);"

        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()

        quantidades_criados = 0
        quantidades_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                etnia_descricao = d[0]

                # inserção dos dados na tabela dw
                obj, created = Etnia.objects.update_or_create(
                    descricao=etnia_descricao)

                if created:
                    quantidades_criados += 1
                else:
                    quantidades_atualizados += 1

        bd.close()
    def handle(self, *args, **options):

        dao = DAO('postgres')

        sql = "SELECT DISTINCT TRIM(S.nome) FROM setor S \
               INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \
               INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \
               ORDER BY TRIM(S.nome);"

        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()
        print(('Número de registros encontrados: {}').format(len(dados)))

        conta_criados = 0
        conta_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                campus_nome = d[0]  # type: string

                # TRATAMENTOS DE DADOS NECESSÁRIOS
                campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS')

                # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE
                campus_nome = campus_nome.title()

                # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE
                obj, created = Campus.objects.update_or_create(
                    nome=campus_nome)

                if created:
                    conta_criados += 1
                else:
                    conta_atualizados += 1

        print(('Número de registros INSERIDOS: {}').format(conta_criados))
        print(
            ('Número de registros ATUALIZADOS: {}').format(conta_atualizados))
        bd.close()
    def handle(self, *args, **options):

        dao = DAO('postgres')

        sql = "SELECT DISTINCT TRIM(ECC.descricao) FROM setor S \
               INNER JOIN  edu_diretoria ED ON ED.setor_id = S.id \
               INNER JOIN  edu_cursocampus ECC ON ECC.diretoria_id = ED.id \
               INNER JOIN  edu_aluno EA ON EA.curso_campus_id = ECC.id \
               INNER JOIN  pessoa_fisica PF ON PF.pessoa_ptr_id = EA.pessoa_fisica_id \
               ORDER BY TRIM(ECC.descricao);"

        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()
        print(('Número de registros encontrados: {}').format(len(dados)))

        conta_criados = 0
        conta_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                curso_nome = d[0]

                # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE
                curso_nome = curso_nome.title()

                # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE
                obj, created = Curso.objects.update_or_create(nome=curso_nome)

                if created:
                    conta_criados += 1
                else:
                    conta_atualizados += 1

        print(('Número de registros INSERIDOS: {}').format(conta_criados))
        print(
            ('Número de registros ATUALIZADOS: {}').format(conta_atualizados))
        bd.close()
示例#5
0
    def handle(self, *args, **options):

        dao = DAO('postgres')

        #usada para retornar apenas valores distintos
        sql = "SELECT DISTINCT TRIM(ECC.descricao) FROM setor S \
               INNER JOIN  edu_diretoria ED ON ED.setor_id = S.id \
               INNER JOIN  edu_cursocampus ECC ON ECC.diretoria_id = ED.id \
               INNER JOIN  edu_aluno EA ON EA.curso_campus_id = ECC.id \
               INNER JOIN  pessoa_fisica PF ON PF.pessoa_ptr_id = EA.pessoa_fisica_id \
               ORDER BY TRIM(ECC.descricao);"
        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()

        quantidades_criadas = 0
        quantidades_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                curso_nome = d[0]


                # nesta parte é realizada o tratamento dos dados
                curso_nome = curso_nome.title()

                # nesta parte é feita a inserção dos dados na tabela dw
                obj, created = Curso.objects.update_or_create(
                    nome = curso_nome
                )

                if created:
                    quantidades_criadas += 1
                else:
                    quantidades_atualizados += 1

        bd.close()
示例#6
0
    def handle(self, *args, **options):

        dao = DAO('postgres')

        #usada para retornar apenas valores distintos
        sql = "SELECT DISTINCT TRIM(S.nome) FROM setor S \
               INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \
               INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \
               ORDER BY TRIM(S.nome);"

        bd = dao.get_connection()
        c = bd.cursor()

        c.execute(sql)
        dados = c.fetchall()

        quantidades_criadas = 0
        quantidades_atualizados = 0
        if len(dados) > 0:
            for d in dados:
                campus_nome = d[0]

                # tratamento dos dados
                campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS')

                # transformacao e preparacao dos dados para colocar no dw
                campus_nome = campus_nome.title()

                # inserção dos dados na tabela dw
                obj, created = Campus.objects.update_or_create(
                    nome=campus_nome)

                if created:
                    quantidades_criadas += 1
                else:
                    quantidades_atualizados += 1

        bd.close()
示例#7
0
    def handle(self, *args, **options):

        daoPostgres = DAO('postgres')
        daoMysql = DAO('mysql')

        sql = "select distinct trim(PF.cpf), trim(PF.sexo), trim(ECC.descricao), trim(S.nome) from pessoa_fisica PF \
               inner join edu_aluno EA on EA.pessoa_fisica_id = PF.pessoa_ptr_id \
               inner join edu_cursocampus ECC on ECC.id = EA.curso_campus_id \
               inner join edu_diretoria ED on ED.id = ECC.diretoria_id \
               inner join setor S on S.id = ED.setor_id \
               where PF.cpf is not null \
               order by 1;"
        bdPostgres = daoPostgres.get_connection()
        c = bdPostgres.cursor()

        bdMysql = daoMysql.get_connection()

        c.execute(sql)
        dadosPostgres = c.fetchall()

        dadosMysql = get_list(bdMysql)

        if len(dadosPostgres) > 0:

            for d in dadosPostgres:
                cpf_aluno = d[0]
                sexo_descricao = d[1]
                curso_nome = d[2]
                campus_nome = d[3]
                origemEscolar_descricao = 'ND'
                etnia_descricao = 'Não Declarada'

                index = search(dadosMysql, cpf_aluno)
                if index:
                    origemEscolar_descricao = dadosMysql[index[0]][1]
                    etnia_descricao = dadosMysql[index[0]][2]

                # tratamento dos dados
                curso_nome = curso_nome.title()
                campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS')
                campus_nome = campus_nome.title()

                # transformacao e preparacao dos dados para colocar no dw
                sexo_obj = None
                if sexo_descricao:
                    sexo_obj = Sexo.objects.get(descricao=sexo_descricao)

                curso_obj = None
                if curso_nome:
                    curso_obj = Curso.objects.get(nome=curso_nome)

                campus_obj = None
                if campus_nome:
                    campus_obj = Campus.objects.get(nome=campus_nome)

                origemEscolar_obj = None
                if origemEscolar_descricao:
                    origemEscolar_obj = OrigemEscolar.objects.get(descricao=origemEscolar_descricao)

                etnia_obj = None
                if etnia_descricao:
                    etnia_obj = Etnia.objects.get(descricao=etnia_descricao)

                # inserção dos dados na tabela dw
                obj, created = Aluno.objects.update_or_create(
                    cpf=cpf_aluno,
                    defaults={
                        'sexo': sexo_obj,
                        'curso': curso_obj,
                        'campus': campus_obj,
                        'etnia': etnia_obj,
                        'origemEscolar': origemEscolar_obj,
                    }
                )

        bdPostgres.close()
        bdMysql.close()
    def handle(self, *args, **options):

        daoPostgres = DAO('postgres')
        daoMysql = DAO('mysql')

        sql = "select distinct trim(PF.cpf), trim(PF.sexo), trim(ECC.descricao), trim(S.nome) from pessoa_fisica PF \
               inner join edu_aluno EA on EA.pessoa_fisica_id = PF.pessoa_ptr_id \
               inner join edu_cursocampus ECC on ECC.id = EA.curso_campus_id \
               inner join edu_diretoria ED on ED.id = ECC.diretoria_id \
               inner join setor S on S.id = ED.setor_id \
               where PF.cpf is not null \
               order by 1;"

        bdPostgres = daoPostgres.get_connection()
        c = bdPostgres.cursor()

        bdMysql = daoMysql.get_connection()

        c.execute(sql)
        dadosPostgres = c.fetchall()

        dadosMysql = get_list(bdMysql)

        print(
            ('Número de registros encontrados: {}').format(len(dadosPostgres)))
        print(('Número de registros encontrados: {}').format(len(dadosMysql)))

        conta_criados = 0
        conta_atualizados = 0
        if len(dadosPostgres) > 0:

            for d in dadosPostgres:
                cpf_aluno = d[0]
                sexo_descricao = d[1]
                curso_nome = d[2]
                campus_nome = d[3]
                origemEscolar_descricao = 'Não Declarado'
                etnia_descricao = 'Não Declarada'

                index = search(dadosMysql, cpf_aluno)
                if index:
                    origemEscolar_descricao = dadosMysql[index[0]][1]
                    etnia_descricao = dadosMysql[index[0]][2]

                # TRATAMENTOS DE DADOS NECESSÁRIOS
                curso_nome = curso_nome.title()
                campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS')
                campus_nome = campus_nome.title()

                # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE
                sexo_obj = None
                if sexo_descricao:
                    sexo_obj = Sexo.objects.get(descricao=sexo_descricao)

                curso_obj = None
                if curso_nome:
                    curso_obj = Curso.objects.get(nome=curso_nome)

                campus_obj = None
                if campus_nome:
                    campus_obj = Campus.objects.get(nome=campus_nome)

                origemEscolar_obj = None
                if origemEscolar_descricao:
                    origemEscolar_obj = OrigemEscolar.objects.get(
                        descricao=origemEscolar_descricao)

                etnia_obj = None
                if etnia_descricao:
                    etnia_obj = Etnia.objects.get(descricao=etnia_descricao)

                # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE
                obj, created = Aluno.objects.update_or_create(
                    cpf=cpf_aluno,
                    defaults={
                        'sexo': sexo_obj,
                        'curso': curso_obj,
                        'campus': campus_obj,
                        'etnia': etnia_obj,
                        'origemEscolar': origemEscolar_obj,
                    })

                if created:
                    conta_criados += 1
                else:
                    conta_atualizados += 1

        print(('Número de registros INSERIDOS: {}').format(conta_criados))
        print(
            ('Número de registros ATUALIZADOS: {}').format(conta_atualizados))
        bdPostgres.close()
        bdMysql.close()