예제 #1
0
def servidoresNaData():
    '''
    FUNÇÃO PARA VOLTAR EM UMA DETERMINADA DATA
    ENTRA
        DATA
    SAI
        PLANILHA (CSV) DOS SERVIDORES ATIVOS NA DATA
    '''

    data = input('Qual é a data')

    sql = '''select GR_MATRICULA, IT_NO_SERVIDOR, DES_CARREIRA, DES_CARGO, INSTITUTO, DES_GRUPO, IT_DA_OCOR_INGR_ORGAO_SERV, IT_DA_OCOR_INATIVIDADE_SERV, IT_DA_OCOR_EXCLUSAO_SERV
        from tb_ser_rel
        where DES_CARREIRA in ('PROF 3º', 'PROF 2º', 'TÉCN', 'TÉCN-ESP')
        AND GR_MATRICULA IN
        ( -- ATIVOS
        SELECT GR_MATRICULA
        FROM talentoshumanos.tb_ser_rel
        where IT_DA_OCOR_INGR_ORGAO_SERV <= '{0}'
        and IT_DA_OCOR_INATIVIDADE_SERV IS NULL
        and IT_DA_OCOR_EXCLUSAO_SERV IS NULL
        union
        
        -- APOSENTADO
        SELECT GR_MATRICULA
        FROM talentoshumanos.tb_ser_rel
        where IT_DA_OCOR_INGR_ORGAO_SERV <= '{0}'
        and IT_DA_OCOR_INATIVIDADE_SERV > '{0}'
        and IT_DA_OCOR_EXCLUSAO_SERV IS NULL
        UNION
        
        -- APOSENTADO - FALECIDO
        SELECT GR_MATRICULA
        FROM talentoshumanos.tb_ser_rel
        where IT_DA_OCOR_INGR_ORGAO_SERV <= '{0}'
        and IT_DA_OCOR_INATIVIDADE_SERV > '{0}'
        and IT_DA_OCOR_EXCLUSAO_SERV > '{0}'
        UNION
        
        -- DESLIGADOS
        SELECT GR_MATRICULA
        FROM talentoshumanos.tb_ser_rel
        where IT_DA_OCOR_INGR_ORGAO_SERV <= '{0}'
        and IT_DA_OCOR_INATIVIDADE_SERV IS NULL
        and IT_DA_OCOR_EXCLUSAO_SERV > '{0}' );'''.replace('{0}', data)


    dados = sqlpandas(sql)

    if len(dados) > 0:
        salvarPandas(dados, 'SERVIDORES NA DATA - {0}'.format(data))
        mensagemInformacao('Relatório dos Servidores na DAta criado com sucesso.')
    else:
        mensagemErro('Relatório dos Gestores não foi criado.')
예제 #2
0
def enderecos():
    '''
    FUNÇÃO PARA PEGAR O ARQUIVO DO EXTRATOR DE DADOS (ENDEREÇOS) E TRANSFORMAR PARA IMPORTAÇÃO NO BANCO MYSQL
    ENTRA
        NULL (OBS: OS ARQUIVOS DO EXTRATOR (TXT) E (REF) DEVERÃO ESTAR NA PASTA ENDERECOS)
    SAI
        ARQUIVO (TXT) E (CSV) PARA IMPORTAÇÃO NO BANCO DE DADOS
    '''

    dados = sqlpandas(
        '''SELECT campo FROM talentoshumanos.ts_sis__config_tabelas
        where tabela = 'ENDERECOS';''')
    campos = list(dados['campo'])

    # PEGAR OS ARQUIVOS ENDEREÇO (TXT) E (REF)
    layoutEND = pegarLayout(caminhoEND)
    valoresEND = pegarValores(caminhoEND)

    if len(layoutEND) > 0:
        # LOOP NOS ARQUIVOS
        for numero in range(0, len(layoutEND)):
            # TRANSFORMA ARQUIVOS (TXT) EM TABELA (LIST)
            tb = layoutValorTabela(layoutEND[numero], valoresEND[numero])
            # PEGAR O NOME DOS CAMPOS
            titulo = list(layoutEND[numero].keys())
            # TRANSFORMAR TABELA (LIST) EM DADOS (DATAFRAME)
            dados = tabelaToPandas(tb, titulo)

        # FILTRA O DATAFRAME (DATAFRAME)
        dados = dados[campos]

        # CORRIGE A MATRÍCULA RETIRANDO O NÚMERO DO ÓRGÃO
        correcao = dados['GR_MATRICULA_SERV_DISPONIVEL'].apply(lambda x: x[5:])
        dados['GR_MATRICULA_SERV_DISPONIVEL'] = correcao

        # SALVA O SQL DOS DADOS
        sqltxt = pandasInsert('tb_ser_end', dados)

        # SALVA O CSV DOS DADOS
        pandasExport('Enderecos', dados)
        mensagemInformacao('Arquivo ENDEREÇO gerado.')

        return sqltxt
    else:
        mensagemErro('Arquivo ENDEREÇO não encontrado.')
예제 #3
0
def agentespublicos():
    '''
    FUNÇÃO PARA CRIAR OS AGENTES PÚBLICOS
    ENTRA
        NULL
    SAI
        PLANILHA DOS AGENTES PÚBLICOS DO MÊS
    '''

    sql = '''SELECT 
            a.IT_NO_SERVIDOR AS 'SERVIDOR',
            a.GR_MATRICULA AS 'SIAPE',
            a.DES_CARGO AS 'CARGO',
            b.CARGO AS 'FUNÇÃO',
            a.DES_LOTACAO AS 'LOTAÇÃO',
            A.IT_DA_OCOR_INGR_ORGAO_SERV AS 'DT EXERCÍCIO',
            a.IT_DA_PUBL_DIPL_INGR_ORGAO AS 'DT PUBLICAÇÃO',
            a.IT_CO_VAGA AS 'ATO NOMEAÇÃO',
            case
            when c.ORGAO <> '' then  c.orgao 
            ELSE 'UFTM'
            end  AS 'ÓRGÃO',
            a.DES_UPAG AS 'UPAG',
            a.DES_grupo AS 'GRUPO'
        FROM
            tb_ser_rel AS a 
            LEFT JOIN  ts_sis_chefias AS b ON a.GR_MATRICULA = b.GR_MATRICULA 
            LEFT JOIN  ts_sis_cedidos AS c ON a.gr_matricula = c.gr_matricula
        WHERE
            IT_DA_OCOR_EXCLUSAO_SERV IS NULL
            AND IT_DA_OCOR_INATIVIDADE_SERV IS NULL
            AND DES_CARREIRA IN ('TÉCN' , 'TÉCN-ESP', 'PROF 2º', 'PROF 3º')
        ORDER BY 1;'''

    dados = sqlpandas(sql)

    if len(dados) > 0:
        salvarPandas(dados, 'PUBLICAÇÕES - AGENTES PÚBLICOS')
        mensagemInformacao(
            'Relatório dos AGENTES PÚBLICOS criado com sucesso.')
    else:
        mensagemErro('Relatório dos AGENTES PÚBLICOS não foi criado.')
예제 #4
0
def arquivoservidoresdeficientes():
    '''
    FUNÇÃO PARA GERAR A LSITA DE SERVIDORES DEFICIENTES DA UFTM
    ENTRA
        NULL
    SAI
        LISTA DE SERVIDORES DEFICIENTES DA UFTM
    '''

    sql = '''SELECT 
            b.IT_DA_OCOR_EXCLUSAO_SERV as 'DT DELIGADO',
            b.IT_DA_OCOR_INATIVIDADE_SERV AS 'DT APOSENTADO',
            b.GR_MATRICULA as 'SIAPE',
            b.IT_NO_SERVIDOR AS 'SERVIDOR',
            b.IT_DA_NASCIMENTO AS 'DT NASCIMENTO',
            b.IT_CO_SEXO AS 'SEXO',
            b.DES_ESCOLARIDADE AS 'ESCOLARIDADE',
            b.DES_TITULACAO AS 'TITULAÇÃO',
            b.DES_CARREIRA AS 'CARREIRA',
            b.DES_CARGO AS 'CARGO',
            b.DES_LOTACAO AS 'LOTAÇÃO',
            b.AMBIENTE AS 'AMBIENTE',
            b.EXERCICIO AS 'EXERCÍCIO',
            b.INSTITUTO AS 'INSTITUTO',
            b.DEPARTAMENTO AS 'DEPARTAMENTOS',
            b.DES_GRUPO AS 'GRUPO',
            b.DES_UPAG AS 'UPAG',
            b.IT_CO_JORNADA_TRABALHO AS 'CH',
            a.tipo_deficiencia AS 'TIPO-COD', 
            a.COD_SIAPECAD
            FROM ts_sis_deficientes AS A
            JOIN tb_ser_rel AS B ON A.GR_MATRICULA = B.GR_MATRICULA
            ORDER BY 4;'''

    dados = sqlpandas(sql)
    if len(dados) > 0:
        salvarPandas(dados, 'SERVIDORES DEFICIENTES')
        mensagemInformacao(
            'Relatório dos servidores deficientes criado com sucesso.')
    else:
        mensagemErro('Relatório dos servidores deficientes não foi criado.')
예제 #5
0
def servidoresanoano():
    '''
    FUNÇÃO PARA CRIAR A TABELA ANO A ANO, COM ENTRADA E SAÍDA DOS SERVIDORES
    ENTRA
        NULL
    SAI
        RELATÓRIO ANO A ANO EM CSV (CSV)
    '''

    sql = '''
    SELECT A.*,
    IT_NO_SERVIDOR AS 'SERVIDOR',
    B.DES_ETNIA AS 'ETNIA',
    B.DES_NACIONALIDADE AS 'NACIONALIDADE',
    b.DES_REGIME_JURIDICO AS 'REG-JUR',
    B.DES_CARREIRA AS 'CARREIRA',
    B.DES_CARGO AS 'CARGO',
    B.DES_GRUPO AS 'GRUPO',
    B.DES_UPAG AS 'UPAG',
    B.IT_CO_JORNADA_TRABALHO AS 'CH',
    B.IT_DA_OCOR_INGR_SPUB_SERV AS 'DT I SP',
    B.IT_DA_OCOR_INGR_ORGAO_SERV AS 'DT I O',
    B.IT_DA_OCOR_INATIVIDADE_SERV AS 'DT APO',
    B.IT_DA_OCOR_EXCLUSAO_SERV AS 'DT DES',
    b.email
    FROM
    anoano AS A
    join tb_ser_rel AS B ON A.SIAPE=B.GR_MATRICULA;
    '''
    dados = sqlpandas(sql)

    if len(dados) > 0:
        dados.sort_values(['SERVIDOR', 'SIAPE'], inplace=True)

        salvarPandas(dados, 'SERVIDORES ANO-ANO')
        mensagemInformacao(
            'Relatório dos servidores - ANO-ANO - criados com sucesso.')
    else:
        mensagemErro(
            'Relatório dos servidores - ANO-ANO - criados com sucesso.')
예제 #6
0
def docentespordepartamentos():
    '''
    FUNÇÃO PARA CRIAR OS DOCENTES POR DEPARTAMENTO
    ENTRA
        NULL
    SAI
        PLANLHA DOS DOCENTES POR DEPARTAMENTO DO MÊS
    '''

    sql = '''SELECT
    A.GR_MATRICULA AS 'SIAPE',
    A.IT_NO_SERVIDOR AS 'SERVIDOR',
    A.IT_CO_JORNADA_TRABALHO AS 'CH',
    A.DES_TITULACAO AS 'TITULAÇÃO',
    A.DES_LOTACAO AS 'LOTAÇÃO',
    A.INSTITUTO AS 'INSTITUTO',
    A.DEPARTAMENTO AS 'DEPARTAMENTO',
    A.DES_CARREIRA AS 'CARREIRA',
    A.DES_CARGO AS 'CARGO',
    A.DES_CLASSE AS 'CLASSE',
    A.DES_REGIME_JURIDICO AS 'REGIME JURÍDICO',
    b.CARGO AS 'FUNÇÃO'
    FROM
    tb_ser_rel AS A
    left join ts_sis_chefias as b on a.GR_MATRICULA = b.GR_MATRICULA
    WHERE IT_DA_OCOR_EXCLUSAO_SERV is null
    and IT_DA_OCOR_INATIVIDADE_SERV is null
    AND DES_CARREIRA = 'PROF 3º'
    order by SERVIDOR;
    '''

    dados = sqlpandas(sql)

    if len(dados) > 0:
        dados['TITULAÇÃO'] = dados['TITULAÇÃO'].apply(lambda x: x[3:])
        salvarPandas(dados, 'PUBLICAÇÕES - DOCENTES POR DEPARTAMENTO')
        mensagemInformacao(
            'Relatório dos DOCENTES POR DEPARTAMENTO criado com sucesso.')
    else:
        mensagemErro('Relatório dos DOCENTES POR DEPARTAMENTO não foi criado.')
예제 #7
0
def ServidoresGestores():
    '''
    FUNÇÃO PARA CRIAR A LISTA DE SERVIDORES GESTORES
    ENTRA
        NULL
    SAI
        LISTA DE SERVIDORES GESTORES
    '''

    sql = """SELECT 
            A.CD_FUNCAO AS 'CD FUNÇÃO',
            a.cargo AS 'FUNÇÃO',
            a.DOC_LEGAL AS 'DOC LEGAL',
            B.GR_MATRICULA AS SIAPE,
            B.IT_NO_SERVIDOR AS SERVIDOR,
            B.IDADE,
            B.IT_CO_SEXO AS SEXO,
            B.DES_TITULACAO AS TITULAÇÃO,
            B.DES_ETNIA AS ETNIA,
            b.EMAIL,
            B.DES_REGIME_JURIDICO AS 'REG JUR',
            B.IT_CO_JORNADA_TRABALHO AS 'CARGA HORÁRIA',
            B.DES_CARREIRA AS CARREIRA,
            B.DES_CARGO AS CARGO,
            B.DES_GRUPO AS GRUPO,
            B.DES_LOTACAO AS 'LOTAÇÃO',
            B.DES_UPAG AS UPAG
        FROM
            ts_sis_chefias AS A
                JOIN
            tb_ser_rel AS B ON A.GR_MATRICULA = B.GR_MATRICULA;"""

    dados = sqlpandas(sql)
    if len(dados) > 0:
        salvarPandas(dados, 'SERVIDORES GESTORES')
        mensagemInformacao('Relatório dos Gestores criados com sucesso.')

    else:
        mensagemErro('Relatório dos Gestores não foi criados.')
예제 #8
0
def relatorioerrosistema():
    '''
    FUNÇÃO PARA VERIFICAR DADOS FALTANTES NO BANCO DE DADOS
    ENTRA
        SQL CONCULTA DOS SERVIDORES ATIVOS
    SAI
        PLANILHA DAS INFORMAÇÕES FALTANTE
    '''

    sql = '''select
            GR_MATRICULA	AS	'SIAPE',
            IT_NU_IDEN_SERV_ORIGEM	AS	'ID SERVIDOR',
            IT_NO_SERVIDOR	AS	'SERVIDOR',
            IT_NO_MAE	AS	'MÃE',
            IT_DA_NASCIMENTO	AS	'DT NASCIMENTO',
            IDADE	AS	'IDADE',
            IT_NU_CPF	AS	'CPF',
            IT_NU_PIS_PASEP	AS	'PIS',
            IT_SG_UF_UORG_EMISSAO	AS	'PIS UF',
            IT_CO_REGISTRO_GERAL	AS	'RG UF',
            IT_SG_ORGAO_EXPEDIDOR_IDEN	AS	'RG ÓRGÃO',
            IT_DA_EXPEDICAO_IDEN	AS	'RG DT',
            IT_SG_UF_IDEN	AS	'RG UF',
            EMAIL	AS	'E-MAIL',
            IT_CO_SEXO	AS	'SEXO',
            DES_ESTADO_CIVIL	AS	'ESTADO CIVIL',
            DES_ESCOLARIDADE	AS	'ESCOLARIDADE',
            DES_TITULACAO	AS	'TITULAÇÃO',
            DES_ETNIA	AS	'ETNIA',
            IT_SG_GRUPO_SANGUINEO	AS	'TIPO SANGUE',
            IT_SG_FATOR_RH	AS	'FATOR RH',
            IT_CO_BANCO_PGTO_SERVIDOR	AS	'BANCO',
            IT_CO_AGENCIA_BANCARIA_PGTO_SERV	AS	'AGÊNCIA',
            IT_NU_CCOR_PGTO_SERVIDOR	AS	'CONTA',
            IT_CO_TIPO_CONTA	AS	'TIPO CONTA',
            IT_NO_LOGRADOURO	AS	'ENDEREÇO',
            IT_NO_BAIRRO	AS	'BAIRRO',
            IT_NO_MUNICIPIO	AS	'CIDADE',
            IT_CO_CEP	AS	'CEP',
            IT_NU_ENDERECO	AS	'NÚMERO',
            IT_NU_COMPLEMENTO_ENDERECO	AS	'COMPLEMENTO',
            DES_NACIONALIDADE	AS	'NACIONALIDADE',
            DES_PAIS	AS	'PAÍS',
            DES_REGIME_JURIDICO	AS	'REG JUR',
            TEMPO_SERVICO	AS	'TEMPO SERVIÇO',
            DES_CARREIRA	AS	'CARREIRA',
            DES_CARGO	AS	'CARGO',
            DES_CLASSE	AS	'CLASSE',
            DES_LOTACAO	AS	'LOTAÇÃO',
            AMBIENTE	AS	'AMBIENTE',
            EXERCICIO	AS	'EXERCÍCIO',
            INSTITUTO	AS	'INSTITUTO',
            DEPARTAMENTO	AS	'DEPARTAMENTO',
            DES_GRUPO	AS	'GRUPO',
            DES_UPAG	AS	'UPAG',
            IT_DA_PUBL_DIPL_INGR_SPUB	AS	'DT PORTARIA NOMEAÇÃO',
			IT_DA_PUBL_DIPL_INGR_ORGAO	AS	'DT PORTARIA',
            IT_DA_OCOR_INGR_ORGAO_SERV	AS	'DT INGRESSO ÓRGÃO',
            DES_INGRESSO_SPUB	AS	'DESCRIÇÃO INGRESSO SP',
            IT_DA_OCOR_INGR_SPUB_SERV	AS	'DT INGRESSO SP',
            DES_INGRESSO_ORGAO	AS	'DESCRIÇÃO INGRESSO ÓRGÃO',
            IT_DA_OCOR_INATIVIDADE_SERV	AS	'DT INATIVIDADE',            
            DES_INATIVIDADE	AS	'DESCRIÇÃO INATIVIDADE',
            IT_DA_OCOR_EXCLUSAO_SERV	AS	'DESCRIÇÃO EXCLUSÃO',
            DES_EXCLUSAO	AS	'DT EXCLUSÃO',
        
            FLEXIBILIZADO	AS	'FLEXIBILIDADO'
            from
            tb_ser_rel
            where IT_DA_OCOR_EXCLUSAO_SERV is null
            and IT_DA_OCOR_INATIVIDADE_SERV is null
            and des_carreira in ('TÉCN', 'TÉCN-ESP', 'PROF 2º', 'PROF 3º');'''

    dados = sqlpandas(sql)
    if len(dados):
        lista = dados.isna().sum()
        for i in lista.items():
            if i[1] > 0 and i[0] not in [
                    'DT EXCLUSÃO', 'DT INATIVIDADE', 'DT INGRESSO SP',
                    'DT PORTARIA', 'COMPLEMENTO', 'BAIRRO'
            ]:
                filtro = dados[dados[i[0]].isna()]
                salvarPandas(filtro, 'ERRO-DADOS FALTANDO - ' + str(i[0]),
                             'RELATORIOS DE ERRO\\')

        mensagemInformacao(
            'Relatório de erro (DADOS FALTANDO) criado com sucesso.')
예제 #9
0
def documentos():
    '''
    FUNÇÃO PARA PEGAR O ARQUIVO DO EXTRATOR DE DADOS (DOCUMENTOS) E TRANSFORMAR PARA IMPORTAÇÃO NO BANCO MYSQL
    ENTRA
        NULL (OBS: OS ARQUIVOS DO EXTRATOR (TXT) E (REF) DEVERÃO ESTAR NA PASTA DOCUMENTOS)
    SAI
        ARQUIVO (TXT) E (CSV) PARA IMPORTAÇÃO NO BANCO DE DADOS
    '''
    # CAMPOS QUE DEVERÃO TER NA TABELA

    dados = sqlpandas(
        '''SELECT campo FROM talentoshumanos.ts_sis__config_tabelas
         where tabela = 'DOCUMENTOS';''')
    campos = list(dados['campo'])

    # PEGAR OS ARQUIVOS DOCUMENTOS (TXT) E (REF)
    layoutDOC = pegarLayout(caminhoDOC)
    valoresDOC = pegarValores(caminhoDOC)

    if len(layoutDOC) > 0:
        # LOOP NOS ARQUIVOS
        dadostodos = pd.DataFrame()
        for numero in range(0, len(layoutDOC)):
            # TRANSFORMA ARQUIVOS (TXT) EM TABELA (LIST)
            tb = layoutValorTabela(layoutDOC[numero], valoresDOC[numero])
            # PEGAR O NOME DOS CAMPOS
            titulo = list(layoutDOC[numero].keys())
            # TRANSFORMAR TABELA (LIST) EM DADOS (DATAFRAME)
            dados = tabelaToPandas(tb, titulo)
            # EXCLUIR O 'GR_MATRICULA' DAS TABELAS - POIS A PRIMEIRA TABELA JÁ TEM
            if numero > 0:
                dados = dados.drop(columns=['GR_MATRICULA'])
            # JUNTAR AS TABELAS (DATAFRAME) EM UM SÓ ARQUIVO
            dadostodos = pd.concat([dados, dadostodos], axis=1)

        # FILTRA O DATAFRAME (DATAFRAME)
        dadostodos = dadostodos[campos]

        # CORRIGE A MATRÍCULA RETIRANDO O NÚMERO DO ÓRGÃO
        correcao = dadostodos['GR_MATRICULA'].apply(lambda x: x[5:])
        dadostodos['GR_MATRICULA'] = correcao

        # CORRECAO CPF
        correcao = dadostodos['IT_NU_CPF'].apply(lambda x: x)
        dadostodos['IT_NU_CPF'] = correcao

        def validardata(data):
            if len(data) == 8 and data != '00000000':
                return data
            else:
                return 'NULL'

        # PROCURA E CORRIGE AS DATAS DO DATAFRAME(DATAFRAME) {'00000000' == ''}
        for coluna in dadostodos.columns:
            if coluna.count('_DA_') > 0:
                values = dadostodos[coluna].apply(lambda x: validardata(x))
                dadostodos[coluna] = values

        # SALVA O SQL DOS DADOS
        sqltxt = pandasInsert('tb_ser_doc', dadostodos)
        # SALVA O CSV DOS DADOS
        pandasExport('Documentos', dadostodos)
        mensagemInformacao('Arquivo DOCUMENTO gerado.')

        return sqltxt
    else:
        mensagemErro('Arquivo DOCUMENTO não encontrado.')
예제 #10
0
def sqlConsultaNova(narquivo, colunas, tipo, carreira, grupo, renomear=True):
    '''
    FUNÇÃO MODELO PARA CONSULTAR A TABELA TB_SER_REL
           CRIAR CONSULTA SQL E SALVAR ARQUIVO NA PASTA DE RELATÓRIOS - PADRÃO PARA GERAR SQL DE CONSULTA DO SISTEMA DE RELATÓRIO
    ENTRA
        NOME DA CONSULTA  PARA SALVAR O ARQUIVO GERADO
        CAMPOS, PARAMETROS ([ATIVOS, APOSENTADOS, DESLIGADOS, TODOS],
        [TÉCN, TÉCN-ESP, PROF 3º, PROF 2º, OUTROS])PARA CONSULTA SQL
    SAI
        TABELA EM CSV DA CONSULTA REALIZADA
    '''

    # PEGAR OS NOMES DOS CAMPOS NA TABELA TS_SIS__CONFIG_TABELAS
    sql = '''SELECT CAMPO, AS_NOME FROM talentoshumanos.ts_sis__config_tabelas;'''
    dados = sqlpandas(sql)
    oldcampo = list(dados['CAMPO'])
    newcampo = list(dados['AS_NOME'])

    #MONTAR DICIONÁRIO COM OS CAMPOS DA TABELA (MAIS OS NOMES PARA EXIBIÇÃO)
    diccampos = {}

    for n, v in enumerate(newcampo):
        if str(v).strip() != '-':
            diccampos[str(v).strip()] = str(oldcampo[n]).strip()
    titulo = colunas
    #MONTAR SQL PARA CONSULTA
    sql = '''select {0} from tb_ser_rel'''
    if renomear == False:  #SQL SEM RENOMEAR OS CAMPOS
        ax = []
        for coluna in colunas:
            ax.append(diccampos[coluna])
        titulo = ax
    else:  #SQL RENOMEANDO OS CAMPOS
        ax = []
        for coluna in colunas:
            ax.append(diccampos[coluna] + ' AS \'' + coluna + '\'')
    axtx = ', '.join(ax)
    sql = sql.format(axtx)

    #FILTRO NA ATIVIDADE
    where = ''''''
    if tipo == 'ATI':
        where = '''\nwhere IT_DA_OCOR_INGR_ORGAO_SERV is not null
        and IT_DA_OCOR_INATIVIDADE_SERV is null
        and IT_DA_OCOR_EXCLUSAO_SERV is null'''
    elif tipo == 'APO':
        where = '''\nwhere IT_DA_OCOR_INGR_ORGAO_SERV is not null
        and IT_DA_OCOR_INATIVIDADE_SERV is not null
        and IT_DA_OCOR_EXCLUSAO_SERV is null'''
    elif tipo == 'DES':
        where = '''\nwhere IT_DA_OCOR_INGR_ORGAO_SERV is not null
        and IT_DA_OCOR_EXCLUSAO_SERV is not null'''
    elif tipo == 'TODOS':
        where = '''\nwhere IT_DA_OCOR_INGR_ORGAO_SERV is not null'''
    sql = sql + where

    #FILTRO NA CARREIRA
    if len(carreira) != 0:
        wherecarreira = ''
        axcarreira = ''
        if len(carreira) > 1:
            axcarreira = '\', \''.join(carreira)
            axcarreira = '\'' + axcarreira + '\''
        else:
            axcarreira = '\'' + carreira[0] + '\''
        wherecarreira = '''\nand DES_CARREIRA in ({0})'''.format(axcarreira)
        sql = sql + wherecarreira

    #FILTRO NO GRUPO
    if len(grupo) > 0:
        axgrupo = '\', \''.join(grupo)
        axgrupo = '\'' + axgrupo + '\''
        sqlgrupo = '''\nand DES_GRUPO in ({0})'''.format(axgrupo)
        sql = sql + sqlgrupo

    #SALVAR TABELA GERADA

    dados = sqlpandas(sql)

    if len(dados) > 0:
        salvarPandas(dados, narquivo)
예제 #11
0
def correcaodobanco():
    '''
    FUNÇÃO PARA CORRIGIR INFORMAÇÕES NO BANDO DE DADOS
    ENTRA
        ENTRA UM SQL COM A INSTRUÇÃO
    SAI
        BANCO DE DADOS ATUALIZADO
    '''
    sql = []

    # 001 DATA DA EXTRAÇÃO
    sql.append('''
                INSERT INTO  tb_dt_extracao (MATRICULA, DTEXTRACAO)
                select b.GR_MATRICULA, CURDATE() from tb_ser_doc as b
                where b.gr_matricula not in(
                SELECT a.MATRICULA from tb_dt_extracao as a);
                ''')

    # 002 CORRIGIR LOTAÇÃO DE STRING PARA NÚMERO
    sql.append(
        '''update tb_ser_doc set IT_CO_UORG_LOTACAO_SERVIDOR = IT_CO_UORG_LOTACAO_SERVIDOR * 1;'''
    )

    # 003 ADD LOCAÇÃO DOS SERVIDORES ATIVO NA TABELA HISTORICO DE LOCAÇÃO DOS APOSENTADOS
    sql.append('''insert into ts_sis__correcao_lot_aposentado
                (select a.GR_MATRICULA, a.IT_CO_UORG_LOTACAO_SERVIDOR  from tb_ser_rel as a
                where IT_DA_OCOR_INATIVIDADE_SERV is null
                and IT_DA_OCOR_EXCLUSAO_SERV is null
                and DES_CARREIRA in ('TÉCN', 'PROF 3º', 'PROF 2º'));''')

    # HISTORICO DO APOSENTADOS
    # 004 SERVIDOR APOSENTADO FICA LOTADO NO PRORH - GUARDAR A ÚLTIMA LOTAÇÃO E SALVAR EM UMA TABELA PARA FAZER ATUALIZAÇÃO
    sql.append('''
                DELETE FROM ts_sis__correcao_lot_aposentado AS A
                where A.GR_MATRICULA not in( SELECT b.GR_MATRICULA FROM tb_ser_doc as b
                WHERE concat(b.IT_SG_REGIME_JURIDICO, b.IT_CO_SITUACAO_SERVIDOR) in ('EST02', 'EST15')
                AND B.IT_DA_OCOR_INATIVIDADE_SERV IS NOT NULL);
                ''')

    ### CORREÇÕES EM DOCUMENTOS - INICIO
    # 005 CORREÇÕES NOS CARGOS - SERVIDORES SEM CARGO - ESTAGIÁRIOS - RESIDENTES
    sql.append('''
                update tb_ser_doc as a, ts_sis__correcao_cargo as b
                set
                a.IT_CO_GRUPO_CARGO_EMPREGO = b.IT_CO_GRUPO_CARGO_EMPREGO, 
                a.IT_CO_CARGO_EMPREGO = b.IT_CO_CARGO_EMPREGO
                where 
                a.GR_MATRICULA = b.GR_MATRICULA;
                ''')

    # 006 CORREÇÃO NA LOTAÇÃO DOS SERVIDORES APOSENTADOS
    sql.append('''
                UPDATE 
                tb_ser_doc AS A 
                INNER JOIN
                ts_sis__correcao_lot_aposentado AS B ON 
                A.GR_MATRICULA = B.GR_MATRICULA 
                SET A.IT_CO_UORG_LOTACAO_SERVIDOR = B.CD_LOTACAO;
                ''')

    # 007 CORREÇÃO NA LOTAÇÃO DOS RESITENDES DO HC
    sql.append('''
                UPDATE 
                tb_ser_doc as a
                SET 
                a.IT_CO_UORG_LOTACAO_SERVIDOR = '12'
                WHERE 
                a.IT_SG_REGIME_JURIDICO='MRD' 
                or a.IT_SG_REGIME_JURIDICO='RMP';
                ''')

    # 008 CORREÇÃO NO CARGO DO ESTAGIÁRIOS
    sql.append('''
                UPDATE 
                tb_ser_doc as a 
                SET 
                a.IT_CO_GRUPO_CARGO_EMPREGO = "999",
                a.IT_CO_CARGO_EMPREGO = "997"
                WHERE a.IT_SG_REGIME_JURIDICO="ETG";
                ''')

    # 009 CORREÇÃO NO CARGO DOS RESIDENTES
    sql.append('''
                UPDATE 
                tb_ser_doc as a
                SET 
                a.IT_CO_GRUPO_CARGO_EMPREGO = "999",
                a.IT_CO_CARGO_EMPREGO = "999"
                WHERE 
                a.IT_SG_REGIME_JURIDICO="MRD";
                ''')

    # 010 CORREÇÃO NO CARGO DOS RESIDENTES
    sql.append('''
                UPDATE 
                tb_ser_doc as a 
                SET 
                a.IT_CO_GRUPO_CARGO_EMPREGO = "999", 
                a.IT_CO_CARGO_EMPREGO = "998"
                WHERE a.IT_SG_REGIME_JURIDICO="RMP";
                ''')

    # 011 CORREÇÃO NA LOTAÇÃO DOS SERVIDORES - COLABORAÇÃO TÉCNICA - CARGO EM COMISSÃO
    sql.append('''
                UPDATE 
                tb_ser_doc AS A 
                INNER JOIN
                ts_sis__correcao_lot_outros AS B ON 
                A.GR_MATRICULA = B.GR_MATRICULA 
                SET 
                A.IT_CO_UORG_LOTACAO_SERVIDOR = B.CD_LOTACAO;
                ''')

    # 012 CORREÇÃO NA JORNADA DE TRABALHO DO PROFESSOR DE 40
    sql.append('''
                UPDATE 
                tb_ser_doc as a 
                SET
                a.IT_CO_JORNADA_TRABALHO = '40 DE'
                WHERE a.IT_CO_JORNADA_TRABALHO='99';
                ''')

    ### CORREÇÕES EM DOCUMENTOS - FIM

    ### CORRECOES RELACIONAMENTO - INÍCIO

    # 013 DELETAR TABELA RELACIONAMENTO
    sql.append('''delete from tb_ser_rel;''')

    ## 014 INCLUIR DADOS NA TABELA RELACIONAMENTO
    # CRIAR SQL INSERT TABELA TB_SER_END
    axsql = '''SELECT  tabela, campo FROM talentoshumanos.ts_sis__config_tabelas
        where tb_relaciona = 'SIM'
        AND TABELA != 'RELACIONA';'''

    dados = sqlpandas(axsql)
    axsql = 'INSERT INTO tb_ser_rel\n'
    campos = '(' + str(list(dados['campo']))[1:-1] + ')\n'
    campos = campos.replace('\'', '`')
    axsql += campos

    ax = 'select '
    dic = {'DOCUMENTOS': 'A.', 'ENDERECOS': 'B.'}
    for vl in dados.values:
        ax += '{0}{1}, '.format(dic[vl[0]], vl[1])
    ax = ax[0:-2]
    ax += ''' from tb_ser_doc as a, tb_ser_end as b
        where a.gr_matricula = b.GR_MATRICULA_SERV_DISPONIVEL'''
    ax = '( ' + ax + ' )'
    axsql += ax + ';'

    sql.append(axsql)

    # 015 ATUALIZAÇÃO DA CARREIRA DO PENSIONISTA
    sql.append('''
               UPDATE 
               tb_ser_rel AS A 
               SET 
               A.DES_CARREIRA = 'PEN'
               WHERE 
               concat(A.IT_SG_REGIME_JURIDICO, IT_CO_SITUACAO_SERVIDOR) = 'NES84';
               ''')

    # 016 ATUALIZAR A CARREIRA DOS SERVIDORES
    sql.append('''UPDATE TB_SER_REL AS A
            LEFT JOIN tp_cargos AS B ON concat(A.IT_CO_GRUPO_CARGO_EMPREGO, A.IT_CO_CARGO_EMPREGO) = B.cd_cargo_emprego
            SET A.DES_CARREIRA = B.DESC_CARREIRA;''')

    # 017 ATUALIZAÇÃO DA CARREIRA DO DOCENTE - ALUIZIO ROSA PRATA - PROFESSOR QUE NÃO TEM CARGO
    sql.append('''
               UPDATE 
               tb_ser_rel AS A 
               SET 
               A.DES_CARREIRA = 'PROF 3º'
               WHERE 
               concat(A.IT_SG_REGIME_JURIDICO,
               IT_CO_SITUACAO_SERVIDOR) = 'NES05' 
               AND A.GR_MATRICULA = '0389972';
               ''')

    # 018 ATUALIZAÇÃO DA CARREIRA DO SERVIDOR - IZILDINHA MARIA SILVA MUNHOZ - SAIU ANTES DE 94
    sql.append('''
               UPDATE 
               tb_ser_rel AS A SET 
               A.DES_CARREIRA = 'TÉCN'
               WHERE 
               concat(A.IT_SG_REGIME_JURIDICO,
               IT_CO_SITUACAO_SERVIDOR)='NES05'
               AND A.GR_MATRICULA = '2085597';
               ''')

    # 019 ATUALIZAÇÃO DA CARREIRA DO SERVIDOR - ANTONIO LUIZ VENEU JORDÃO - CARGO EM COMISSÃO - ESPIÃO DO BOZO
    sql.append('''
                UPDATE tb_ser_rel AS A 
                SET 
                    A.DES_CARREIRA = 'TÉCN-ESP'
                WHERE A.GR_MATRICULA = '3140616';
               ''')

    # 020 ATUALIZAR - RESIDENTE NÃO TEM OS DADOS
    sql.append('''
                update
                tb_ser_rel
                set
                DES_CLASSE = 'V.N.O. (RES)',
                EMAIL = 'V.N.O. (RES)',
                AMBIENTE = 'V.N.O. (RES)',
                EXERCICIO = 'V.N.O. (RES)'
                where
                DES_CARREIRA = 'RES';
                ''')

    # 021 ATUALIZAR - ESTAGIÁRIO NÃO TEM OS DADOS
    sql.append('''
                update
                tb_ser_rel
                set
                DES_CLASSE = 'V.N.O. (ETG)',
                EMAIL = 'V.N.O. (ETG)',
                AMBIENTE = 'V.N.O. (ETG)',
                EXERCICIO = 'V.N.O. (ETG)'
                where
                DES_CARREIRA = 'ETG';
                ''')

    # 022 ATUALIZAR - PENSIONISTA NÃO TEM OS DADOS
    sql.append('''
                update
                tb_ser_rel
                set
                DES_CLASSE = 'V.N.O. (PEN)',
                EMAIL = 'V.N.O. (PEN)',
                AMBIENTE = 'V.N.O. (PEN)',
                EXERCICIO = 'V.N.O. (PEN)'
                where
                DES_CARREIRA = 'PEN';
                ''')

    # 023 ATUALIZAÇÃO DA CARREIRA DO DOCENTE - HELENICE GOBBI - CARREIRA DE PROFESSOR
    sql.append('''
               UPDATE 
               tb_ser_rel AS A 
               SET 
               A.IT_CO_GRUPO_CARGO_EMPREGO = '705'
               WHERE A.GR_MATRICULA = '0315630';
               ''')

    # 024 ATUALIZAR E-MAIL INSTITUCIONAL DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel as a
                join ts_sis_email as b on a.IT_NU_CPF = B.CPF
                SET 
                a.EMAIL = b.EMAIL_INST;
                ''')

    # 025 ATUALIZAR AMBIENTE E EXERCÍCIOS DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel as a
                join ts_sis_ambientes as b on b.GR_MATRICULA = a.GR_MATRICULA
                SET
                a.AMBIENTE = b.AMBIENTE, 
                a.EXERCICIO = b.EXERCICIO;
                ''')

    # 026 ATUALIZAR ESTADO CIVIL DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel as a
                join tp_estado_civil as b on a.IT_CO_ESTADO_CIVIL = B.CD_ESTADO_CIVIL
                SET
                A.DES_ESTADO_CIVIL = DESC_ESTADO_CIVIL;
                ''')

    # 027 ATUALIZAR ESCOLARIDADE DOS SERVIDORES
    sql.append('''
                update 
                tb_ser_rel as a
                join tp_escolaridade as b on a.IT_CO_NIVEL_ESCOLARIDADE = b.CD_ESCOLARIDADE
                set
                a.DES_ESCOLARIDADE = b.DESC_ESCOLARIDADE;
                ''')

    # 028 ATUALIZAR TITULAÇÃO DOS SERVIDORES
    sql.append('''
                update 
                tb_ser_rel as a
                join tp_titulacao as b on a.IT_CO_TITULACAO_FORMACAO_RH = b.CD_TITULACAO
                set
                a.DES_TITULACAO = b.DESC_TITULACAO;
                ''')

    # 029 ATUALIZAR ETNIA DOS SERVIDORES
    sql.append('''
                update 
                tb_ser_rel as a
                join tp_cores as b on a.IT_CO_COR_ORIGEM_ETNICA = b.CD_COR
                set
                a.DES_ETNIA  = b.DESC_COR;
                ''')

    # 030 ATUALIZAR NACIONALIDADE DOS SERVIDORES
    sql.append('''
                update 
                tb_ser_rel as a
                join tp_nacionalidade as b on a.IT_CO_NACIONALIDADE  = b.IT_CO_NACIONALIDADE
                set
                a.DES_NACIONALIDADE  = b.NACIONALIDADE;
                ''')

    # 031 ATUALIZAR PAIS DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_nacionalidade b on a.IT_CO_PAIS = b.IT_CO_NACIONALIDADE
                set
                a.DES_PAIS = b.NACIONALIDADE;
                ''')

    # 032 ATUALIZAR REGIME JURÍDICO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_reg_jur b on 
                concat(a.IT_SG_REGIME_JURIDICO, a.IT_CO_SITUACAO_SERVIDOR)= b.CD_JURIDICO_SITUACAO
                set
                a.DES_REGIME_JURIDICO = b.DESC_JURIDICO_SITUACAO;
                ''')

    # 033 ATUALIZAR CARGO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_cargos b on 
                concat(a.IT_CO_GRUPO_CARGO_EMPREGO
                , a.IT_CO_CARGO_EMPREGO
                )= b.CD_CARGO_EMPREGO
                set
                a.DES_CARGO = b.DESC_CARGO_EMPREGO;
                ''')

    # 034 ATUALIZAR LOTAÇÃO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_organograma b on 
                a.IT_CO_UORG_LOTACAO_SERVIDOR = b.CD_LOTACAO
                set
                a.DES_LOTACAO = b.DESC_LOTACAO;
                ''')

    # 035 ATUALIZAR DESCRIÇÃO DA INGRESSO NO ÓRGÃO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_ocorrencias b on 
                concat(a.IT_CO_GRUPO_OCOR_INGR_ORGAO, a.IT_CO_OCOR_INGR_ORGAO)= b.CD_GRUPO_EXCLUSAO
                set
                a.DES_INGRESSO_ORGAO = b.DESC_EXCLUSAO;
                ''')

    # 036 ATUALIZAR REGIME JURÍDICO DOS SERVIDORES CONCATENANDO DOIS CAMPOS
    sql.append('''update tb_ser_rel
                SET COD_REG_JUR = concat( IT_SG_REGIME_JURIDICO, IT_CO_SITUACAO_SERVIDOR);'''
               )

    # 037 ATUALIZAR DESCRIÇÃO DA INCLUSÃO NO SERVIÇO PÚBLICO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_ocorrencias b on 
                concat(a.IT_CO_GRUPO_OCOR_INGR_SPUB, 
                a.IT_CO_OCOR_INGR_SPUB)= b.CD_GRUPO_EXCLUSAO
                set
                a.DES_INGRESSO_SPUB = b.DESC_EXCLUSAO;
                ''')

    # 038 ATUALIZAR DESCRIÇÃO DA INATIVIDADE DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_ocorrencias b on 
                concat(a.IT_CO_GRUPO_OCOR_INATIVIDADE, 
                a.IT_CO_OCOR_INATIVIDADE)= b.CD_GRUPO_EXCLUSAO
                set
                a.DES_INATIVIDADE = b.DESC_EXCLUSAO;
                ''')

    # 039 ATUALIZAR DESCRIÇÃO DA EXCLUSÃO DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_ocorrencias b on 
                concat(a.IT_CO_GRUPO_OCOR_EXCLUSAO, 
                a.IT_CO_OCOR_EXCLUSAO)= b.CD_GRUPO_EXCLUSAO
                set
                a.DES_EXCLUSAO = b.DESC_EXCLUSAO;
                ''')

    # 040 ATUALIZAR IDADE DOS SERVIDORES
    sql.append('''
                UPDATE tb_ser_rel 
                SET 
                IDADE =  ((YEAR(NOW()) * 12 + MONTH(NOW())) - (YEAR(IT_DA_NASCIMENTO) * 12 + MONTH(IT_DA_NASCIMENTO))) / 12;
                ''')

    # 041 ATUALIZAR TEMPO DE SERVIÇO DOS SERVIDORES
    sql.append('''
                UPDATE tb_ser_rel 
                SET 
                    TEMPO_SERVICO =  ((YEAR(NOW()) * 12 + MONTH(NOW())) - (YEAR(IT_DA_OCOR_INGR_ORGAO_SERV) * 12 + MONTH(IT_DA_OCOR_INGR_ORGAO_SERV)))/12
                where IT_DA_OCOR_INGR_ORGAO_SERV is not null;
                ''')

    # 042 ATUALIAR GRUPO E UPAG DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel a
                join tp_organograma AS b on a.IT_CO_UORG_LOTACAO_SERVIDOR = b.CD_LOTACAO
                SET
                a.DES_GRUPO = b.GRUPO,
                a.DES_UPAG = b.DESC_UPG;
                ''')

    # 043 ATUALIZAR AMBIENTE E EXERCÍCIO DOS DOCENTES 3º
    sql.append('''
                update
                tb_ser_rel
                set
                AMBIENTE = 'V.N.O. (PROF 3º)',
                EXERCICIO = 'V.N.O. (PROF 3º)'
                where
                DES_CARREIRA = 'PROF 3º';
                ''')

    # 044 ATUALIZAR AMBIENTE E EXERCÍCIO DOS DOCENTES 2º
    sql.append('''
                update
                tb_ser_rel
                set
                AMBIENTE = 'V.N.O. (PROF 2º)',
                EXERCICIO = 'V.N.O. (PROF 2º)'
                where
                DES_CARREIRA = 'PROF 2º';
                ''')

    # 045 ATUALIAR AMBIENTE E EXERCÍCIOS DOS SERVIDORES DO HC
    sql.append('''
                update
                tb_ser_rel
                set
                AMBIENTE = 'V.N.O. (HC)',
                EXERCICIO = 'V.N.O. (HC)'
                where
                DES_UPAG = 'HC';
                ''')

    # 046 ATUALIAR TITUÇÃO DOS SERVIDORES - NÃO TEM TITULAÇÃO, REPETE ESCOLARIDADE
    sql.append('''
                update
                tb_ser_rel
                set
                DES_TITULACAO = DES_ESCOLARIDADE
                where
                DES_TITULACAO is null;
                ''')

    # 047 ATUALIZAR CARREIRA DOS SERVIDORES EM SITUAÇÃO ESPECIAL - PROCURADOR E COLABORAÇÃO TÉCNICA
    sql.append('''
                UPDATE 
                tb_ser_rel AS A SET 
                A.DES_CARREIRA = 'TÉCN-ESP'
                WHERE 
                concat(A.IT_SG_REGIME_JURIDICO,
                IT_CO_SITUACAO_SERVIDOR) IN ('EST18', 'EST19', 'EST41');
                ''')

    # 048 ATUALIAR CLASSE DOS SERVIDORES
    sql.append('''
                update
                tb_ser_rel as a
                join tp_classes as b on 
                b.CD_CLASSE = a.IT_CO_CLASSE
                set
                a.DES_CLASSE = b.DESC_CLASSE;
                ''')

    # 049 EXCLUIR DA TABELA - CÓDIGO 02027 - ERRO DE CADASTRAMENTO OU DUPLICIDADE
    sql.append('''
                delete
                from tb_ser_rel
                where
                concat(IT_CO_GRUPO_OCOR_EXCLUSAO,IT_CO_OCOR_EXCLUSAO) = '02027';
                ''')

    # 050 ATUALIZAR DEPARTAMENTO/INSTITUTO DOS SERVIDORES TÉCNICOS
    sql.append('''
                update
                tb_ser_rel
                SET
                DEPARTAMENTO = concat('V.N.O. (', DES_CARREIRA , ')'),
                INSTITUTO = concat('V.N.O. (', DES_CARREIRA , ')')
                WHERE DES_CARREIRA <> 'PROF 3º'
                ''')

    # 051 ATUALIAR DEPARTAMENTOS DOS DOCENTES 3º
    sql.append('''
				update
                tb_ser_rel as a
                join ts_sis_departamentos_docentes as b on a.GR_MATRICULA=b.GR_MATRICULA
                SET
                a.DEPARTAMENTO = b.DEPARTAMENTO,
                a.INSTITUTO = B.INSTITUTO;
                ''')

    # 052 ATUALIAR CIDADE, ESTADO, NATURALIDADE DOS SERVIDORES
    sql.append('''
                #update tb_ser_rel as a
                #join ts_sis_naturalidade as b on a.it_nu_cpf = b.it_nu_cpf
                #set
                #a.DES_PAIS = b.PAIS,
                #a.ESTADO = b.ESTADO,
                #a.CIDADE = b.CIDADE;                ''')

    # 053 CORRIGIR NO BANCO DATA DE ANIVERSÁRIO DE QUEM NASCEU EM ANO BISSEXTO - ERRO NA MENSAGEM DE ANIVERSÁRIO
    sql.append('''
                update
                tb_ser_rel
                set
                IT_DA_NASCIMENTO = concat(year(IT_DA_NASCIMENTO), '-03-01')
                where
                concat( month(IT_DA_NASCIMENTO), '-', day(IT_DA_NASCIMENTO)) = '2-29';
                ''')

    # 054 INCLUIR SIAPE NA TABELA DE SERVIDORES CEDIDOS DO MES

    sql.append('''update
                tb_ser_rel as a
                set 
                a.IT_NU_IDEN_SERV_ORIGEM = lpad(a.IT_NU_IDEN_SERV_ORIGEM, 10, '0');
                ''')

    # 055 TB IMPORTADA DO SIAPE
    sql.append('''UPDATE 
                ts_sis_cedidos as a 
                join tb_ser_rel as b on a.siapecad = b.IT_NU_IDEN_SERV_ORIGEM 
                SET
                a.GR_MATRICULA = b.gr_matricula;''')

    # 056 INCLUIR CEDIDO NA TB REL
    sql.append('''UPDATE tb_ser_rel AS A
                    JOIN
                ts_sis_cedidos AS B ON B.GR_MATRICULA = A.GR_MATRICULA 
            SET 
                A.CEDIDO_ORGAO = B.ORGAO,
                A.CEDIDO_DT = B.DT_I;''')

    # 057 COLOCAR OBSERVAÇÃO NOS PENSIONISTAS CADASTRADOS NO SIAPE
    sql.append('''UPDATE TB_SER_REL AS A
            SET A.OBS = 'PENSIONISTAS CASDASTRADOS NO SIAPE - PENSÃO JUDICIAL'
            WHERE A.IT_SG_REGIME_JURIDICO = 'NES' 
            AND A.IT_CO_SITUACAO_SERVIDOR = '84';''')

    # 058 COLOCAR PAIS DOS SERVIDORES BRASILEIROS
    sql.append('''update tb_ser_rel
                set des_pais = 'BRASIL'
                where des_nacionalidade = 'BRASILEIRO';''')

    ### CORRECOES RELACIONAMENTO - FIM

    contador = 1
    total = len(sql)
    for comando in sql:
        valor = round(contador * 100 / total)
        print(contador, valor, '%', '#' * valor)
        sqlexecute(comando)
        contador += 1

    mensagemInformacao('Correção no banco concluída.')
예제 #12
0
def dashboardGestores():
    '''
    FUNÇÃO PARA CRIAR OS DASHDOARD
    ENTRA
        ENTRA NULL
    SAI
        PLANILHA COM OS DADOS PARA DASHBOARD
    '''
    def faixa(idade):
        if idade > 67:
            fx = '68-77'
        elif idade > 57:
            fx = '58-67'
        elif idade > 47:
            fx = '48-57'
        elif idade > 37:
            fx = '38-47'
        elif idade > 27:
            fx = '28-37'
        else:
            fx = '18-27'
        return fx

    sql = '''SELECT 
        A.CD_FUNCAO AS 'FUNÇÃO',
        B.GR_MATRICULA	AS	SIAPE,
        B.IT_NO_SERVIDOR	AS	SERVIDOR,
        B.IDADE, 
        B.IT_CO_SEXO	AS	SEXO,
        B.DES_TITULACAO	AS	TITULAÇÃO,
        B.DES_ETNIA	AS	ETNIA,
        B.DES_REGIME_JURIDICO	AS	'REG JUR',
        B.IT_CO_JORNADA_TRABALHO as 'CARGA HORÁRIA',
        B.DES_CARREIRA	AS	CARREIRA,
        B.DES_CARGO	AS	CARGO,
        B.DES_GRUPO	AS	GRUPO,
        B.DES_UPAG	AS	UPAG
        FROM 
        ts_sis_chefias AS A
        JOIN tb_ser_rel AS B ON A.GR_MATRICULA = B.GR_MATRICULA'''

    dados = sqlpandas(sql)

    if len(dados) > 0:

        dados['IDADE'] = dados['IDADE'].apply(faixa)

        dados['TITULAÇÃO'] = dados['TITULAÇÃO'].replace([
            '10 DOUTORADO', '08 ESPECIALIZAÇÃO', '09 MESTRADO', '06 MEDIO',
            '04 FUNDAMENTAL I', '05 FUNDAMENTAL', '07 SUPERIOR',
            '07 ENSINO SUPERIOR', '10 PHD', '07 SUPERIOR-INCOMPLETO'
        ], [
            'DOUTORADO', 'ESPECIALIZAÇÃO', 'MESTRADO', 'ENSINO MÉDIO',
            'ENSINO FUNDAMENTAL', 'ENSINO FUNDAMENTAL', 'ENSINO SUPERIOR',
            'ENSINO SUPERIOR', 'DOUTORADO', 'ENSINO MÉDIO'
        ])

        dados['GRUPO FUNÇÃO'] = dados['FUNÇÃO'].replace([
            'FG-2', 'CD-2', 'FG-1', 'FG-3', 'FG-5', 'CD-3', 'SEM ÔNUS', 'FCC',
            'FG-4', 'CD-4', 'CD-1'
        ], [
            'FG', 'CD', 'FG', 'FG', 'FG', 'CD', 'SEM ÔNUS', 'FCC', 'FG', 'CD',
            'CD'
        ])

        dados['TOTAL'] = 1

        salvarPandas(dados, 'DAHSBOARD - GESTORES')
        mensagemInformacao(
            'Relatório DAHSBOARD - GESTORES criado com sucesso.')
    else:
        mensagemErro('Relatório DAHSBOARD - GESTORES não foi criado.')
예제 #13
0
def addTabelaBanco():
    '''
    FUNÇÃO PARA CRIAR AS TABELAS DOC END REL NO BANCO DE DADOS CONFORME A TABELA E OS CAMPOS DEFINIDOS
    ENTRA
        PLANILHA _MYSQLBANCO _BANCO_DOC_END_REL.xlsx
    SAI
        TABELAS CRIADA NO BANCO
    '''

    # LÊ A PLANILHA COM OS DADOS
    #dados = pd.read_excel('_MYSQLBANCO\_BANCO_DOC_END_REL.xlsx')
    dados = sqlpandas('SELECT * FROM ts_sis__config_tabelas;')

    # CRIA A TABELA PARA QUARDAR OS SQL
    tbsql = []
    # ADD O SQL DA WIEW
    tbsql.append('drop view anoano;')
    tbsql.append('drop view anoanoc;')
    # ADD O SQL DA TABELA DOCUMENTOS
    tbsql.append('drop table tb_ser_doc;')
    sqltxt = ''
    # FILTRA A TABELA DOCUMENTOS E LOOP
    for vl in dados[dados['tabela'] == 'DOCUMENTOS'][['campo',
                                                      'tamanho']].values:
        sqltxt += ' {0} {1},\n'.format(vl[0], vl[1])
    sqltxt = sqltxt[1:-2]
    sqltxt = '''CREATE TABLE tb_ser_doc (\n''' + sqltxt + ');'
    tbsql.append(sqltxt)

    # ADD O SQL DA TABELA ENDEREÇO
    tbsql.append('drop table tb_ser_end;')
    sqltxt = ''
    # FILTRA A TABELA DOCUMENTOS E LOOP
    for vl in dados[dados['tabela'] == 'ENDERECOS'][['campo',
                                                     'tamanho']].values:
        sqltxt += ' {0} {1},\n'.format(vl[0], vl[1])
    sqltxt = sqltxt[1:-2]
    sqltxt = '''CREATE TABLE tb_ser_end (\n''' + sqltxt + ');'
    tbsql.append(sqltxt)

    # ADD O SQL DA TABELA RELACIONAMENTO
    tbsql.append('drop table tb_ser_rel;')
    sqltxt = ''
    # FILTRA A TABELA RELACIONAMENTO
    for vl in dados[dados['tb_relaciona'] == 'SIM'][['campo',
                                                     'tamanho']].values:
        sqltxt += ' {0} {1},\n'.format(vl[0], vl[1])
    sqltxt = sqltxt[1:-2]
    sqltxt = 'CREATE TABLE tb_ser_rel (\n' '' + sqltxt + ');'
    tbsql.append(sqltxt)

    tbsql.append('''ALTER TABLE `talentoshumanos`.`tb_ser_doc` 
    CHANGE COLUMN `GR_MATRICULA` `GR_MATRICULA` CHAR(7) NOT NULL ,
    ADD PRIMARY KEY (`GR_MATRICULA`);''')

    tbsql.append('''ALTER TABLE `talentoshumanos`.`tb_ser_end` 
    CHANGE COLUMN `GR_MATRICULA_SERV_DISPONIVEL` `GR_MATRICULA_SERV_DISPONIVEL` CHAR(7) NOT NULL ,
    ADD PRIMARY KEY (`GR_MATRICULA_SERV_DISPONIVEL`);''')

    tbsql.append('''ALTER TABLE `talentoshumanos`.`tb_ser_rel` 
    CHANGE COLUMN `GR_MATRICULA` `GR_MATRICULA` CHAR(7) NOT NULL ,
    ADD PRIMARY KEY (`GR_MATRICULA`);''')

    for vl in tbsql:
        sqlexecute(vl)

    mensagemInformacao(
        'Tabelas (tb_ser_doc, tb_ser_end, tb_ser_end) criado com sucesso.')
예제 #14
0
def ServidoresComDoisCargos():
    '''
    FUNÇAO PARA GERAR A LISTA DE SERVIDORES COM DOIS CARGOS
    ENTRA
        NULL
    SAI
        LISTA DE SERVIDORES COM DOIS CARGOS ATIVOS
    '''

    sql = '''SELECT 
            GR_MATRICULA as SIAPE,
            IT_NO_SERVIDOR AS SERVIDOR,
            DES_CARREIRA AS CARREIRA,
            DES_CARGO AS CARGO, 
            DES_LOTACAO AS LOTAÇÃO,
            DES_GRUPo AS GRUPO
        FROM
            tb_ser_rel
        WHERE
            IT_NU_CPF IN (SELECT 
                    IT_NU_CPF
                FROM
                    tb_ser_rel
                WHERE
                    IT_DA_OCOR_EXCLUSAO_SERV IS NULL
                        AND IT_DA_OCOR_INATIVIDADE_SERV IS NULL
                        AND IT_NU_CPF IN (SELECT 
                            IT_NU_CPF
                        FROM
                            tb_ser_rel
                        WHERE
                            IT_DA_OCOR_EXCLUSAO_SERV IS NULL
                                AND IT_DA_OCOR_INATIVIDADE_SERV IS NULL
                                AND DES_CARREIRA in ('{0}')
                        GROUP BY 1)
                GROUP BY IT_NU_CPF
                HAVING COUNT(IT_NU_CPF) >= 2)
                AND IT_DA_OCOR_EXCLUSAO_SERV IS NULL
                AND IT_DA_OCOR_INATIVIDADE_SERV IS NULL
        ORDER BY 2'''

    cargos = ['TÉCN', 'PROF 2º', 'PROF 3º']

    for cargo in cargos:
        sqlii = sql
        sqlii = sqlii.format(str(cargo))

        dados = sqlpandas(sqlii)

        if len(dados) > 0:
            narquivo = ' SERVIDORES - ATIVOS - (COM 2 VÍNCULOS) - ' + cargo
            salvarPandas(dados, narquivo)

    sql = sql.format("""TÉCN', 'PROF 2º', 'PROF 3º""")

    dados = sqlpandas(sql)

    if len(dados) > 0:
        narquivo = ' SERVIDORES - ATIVOS - (COM 2 VÍNCULOS) - (TODOS)'
        salvarPandas(dados, narquivo)
        mensagemInformacao(
            'Relatório dos Servidores com 2 vínculos criados com sucesso.')
    else:
        mensagemErro(
            'Relatório dos Servidores com 2 vínculos não foi criados.')
예제 #15
0
def dashboardServidores():
    '''
    FUNÇÃO PARA CRIAR OS DASHDOARD
    ENTRA
        ENTRA NULL
    SAI
        PLANILHA COM OS DADOS PARA DASHBOARD
    '''
    def faixa(idade):
        if idade > 67:
            fx = '68-77'
        elif idade > 57:
            fx = '58-67'
        elif idade > 47:
            fx = '48-57'
        elif idade > 37:
            fx = '38-47'
        elif idade > 27:
            fx = '28-37'
        else:
            fx = '18-27'
        return fx

    sql = '''SELECT 
        GR_MATRICULA	AS	SIAPE,
        IT_NO_SERVIDOR	AS	SERVIDOR,
        IDADE, 
        IT_CO_SEXO	AS	SEXO,
        DES_TITULACAO	AS	TITULAÇÃO,
        DES_ETNIA	AS	ETNIA,
        DES_REGIME_JURIDICO	AS	'REG JUR',
        IT_CO_JORNADA_TRABALHO as 'CARGA HORÁRIA',
        DES_CARREIRA	AS	CARREIRA,
        DES_CARGO	AS	CARGO,
        DES_GRUPO	AS	GRUPO,
        DES_UPAG	AS	UPAG
        FROM tb_ser_rel
        where
        IT_DA_OCOR_EXCLUSAO_SERV is null
        and IT_DA_OCOR_INATIVIDADE_SERV is null
        and DES_CARREIRA in ('TÉCN', 'PROF 2º', 'PROF 3º');'''

    dados = sqlpandas(sql)

    if len(dados) > 0:
        dados['IDADE'] = dados['IDADE'].apply(faixa)

        dados['TITULAÇÃO'] = dados['TITULAÇÃO'].replace([
            '10 DOUTORADO', '08 ESPECIALIZAÇÃO', '09 MESTRADO', '06 MEDIO',
            '04 FUNDAMENTAL I', '05 FUNDAMENTAL', '07 SUPERIOR',
            '07 ENSINO SUPERIOR', '10 PHD', '07 SUPERIOR-INCOMPLETO'
        ], [
            'DOUTORADO', 'ESPECIALIZAÇÃO', 'MESTRADO', 'ENSINO MÉDIO',
            'ENSINO FUNDAMENTAL', 'ENSINO FUNDAMENTAL', 'ENSINO SUPERIOR',
            'ENSINO SUPERIOR', 'DOUTORADO', 'ENSINO MÉDIO'
        ])
        dados['TOTAL'] = 1

        if len(dados) > 0:
            salvarPandas(dados, 'DAHSBOARD - SERVIDORES')
            mensagemInformacao(
                'Relatório DAHSBOARD - SERVIDORES criado com sucesso.')
        else:
            mensagemErro('Relatório DAHSBOARD - SERVIDORES não foi criado.')