Example #1
0
def cadastraConfigTabela():
    '''
    FUNÇÃO PARA CRIAR NO BANCO A TABELA DE CONFIGURAÇÃPO DO BANCO DE DADO
    ENTRA
        TABELA DE CONFIGURAÇÃO DO BANCO "_BANCO_DOC_END_REL.xlsx
    SAI
        TABELA CADASTRADA NO BANCO MYSQL "ts_sis__config_tabelas"
    '''

    # LÊ A PLANILHA COM OS DADOS
    dados = pd.read_excel('_MYSQLBANCO\_BANCO_DOC_END_REL.xlsx')

    dados.fillna('', inplace=True)

    # DELETA OS DADOS DA TABELA NO BANCO
    sql = 'delete from ts_sis__config_tabelas;'
    sqlexecute(sql)

    sql = ''
    for vl in dados.values:
        sql += "( {0}, '{1}', '{2}', '{3}', '{4}', '{5}', '{6}'),\n".format(
            vl[0], vl[1], vl[2], vl[3], vl[4], vl[5], vl[6])
    sql = 'Insert into ts_sis__config_tabelas \nvalues\n' + sql[0:-2] + ';'
    sqlexecute(sql)

    mensagemInformacao('Tabela de configuração importada com sucesso.')
Example #2
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.')
Example #3
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.')
Example #4
0
def arquivosExtrator():
    '''
    FUNÇÃO PARA PEGAR O ARQUIVO DO EXTRATOR DE DADOS E TRANSFORMAR PARA IMPORTAÇÃO NO BANCO MYSQL
    ENTRA
        NULL (OBS: OS ARQUIVOS DO EXTRATOR (TXT) E (REF) DEVERÃO ESTAR NA PASTA OUTROS)
    SAI
        ARQUIVO (TXT) E (CSV) PARA IMPORTAÇÃO NO BANCO DE DADOS
    '''

    # PEGAR OS ARQUIVOS DOCUMENTOS (TXT) E (REF)
    layoutOUTROS = pegarLayout(caminhoOUTROS)
    valoresOUTROS = pegarValores(caminhoOUTROS)

    if len(layoutOUTROS) > 0:
        # LOOP NOS ARQUIVOS
        dadostodos = pd.DataFrame()
        for numero in range(0, len(layoutOUTROS)):
            # TRANSFORMA ARQUIVOS (TXT) EM TABELA (LIST)
            tb = layoutValorTabela(layoutOUTROS[numero], valoresOUTROS[numero])
            # PEGAR O NOME DOS CAMPOS
            titulo = list(layoutOUTROS[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)

        # 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: '' if str(x) == '00000000' else x)
                dadostodos[coluna] = values

        # SALVA O SQL DOS DADOS
        pandasInsert('TB_OUTROS', dadostodos)
        # SALVA O CSV DOS DADOS
        pandasExport('OUTROS', dadostodos)
        mensagemInformacao('Arquivo OUTROS gerado.')
    else:
        mensagemErro('Arquivo OUTROS não encontrado.')
Example #5
0
def importarChefias():
    '''
    FUNÇÃO PARA IMPORTAR AS CHEFIAS PARA O BANCO DE DADOS
    ENTRA
        PLANILHA DE CHEFIAS DA DIVISÃO DE CADASTRO
    SAI
        BANCO DE DADOS ATUALIZADOS COM AS CHEFIAS
    '''

    listdir = os.listdir('DADOS_EXTRATOR\\')
    if 'Relação de Chefias.xlsx' in listdir:

        xls = 'DADOS_EXTRATOR\\Relação de Chefias.xlsx'
        folha = 'FG E CD - ATIVOS'

        arq = pd.read_excel(xls, folha)
        dados = arq[['SIAPE', 'FUNÇÃO', 'CARGO', 'DOC. LEGAL']].copy()
        dados.dropna(inplace=True, axis=0)
        planilha = [['GR_MATRICULA', 'CD_FUNCAO', 'CARGO', 'DOC_LEGAL']]
        for i in dados.values:
            aux = []
            aux.append(str(int(i[0])).rjust(7, '0')[0:7])
            aux.append(i[1])
            aux.append(i[2])
            aux.append(i[3])
            planilha.append(aux)

        sql = '''delete from ts_sis_chefias;'''
        sqlexecute(sql)

        sql = '''INSERT INTO ts_sis_chefias\n(GR_MATRICULA, CD_FUNCAO, CARGO, DOC_LEGAL)\nvalues\n'''
        contador = len(planilha[1:])
        for i in planilha[1:]:
            contador -= 1
            if contador != 0:
                sql += '(' + str(i)[1:-1] + '),\n'
            else:
                sql += '(' + str(i)[1:-1] + ');'
        sqlexecute(sql)

        mensagemInformacao('Importação da LISTA DE CHEFIAS concluída.')
    else:
        mensagemErro('Arquivo Relação de Chefias.xlsx não encontrado.')
Example #6
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.')
Example #7
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.')
Example #8
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.')
Example #9
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.')
Example #10
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.')
Example #11
0
def importarEmailServidor():
    '''
    FUNÇÃO PARA ATULALIZAR OS EMAIL DOS SEVIDORES QUE INGRESSARAM NA UFTM
    ENTRA
        PLANILHA COM OS DADOS DOS SERVIDORES
    SAI
        SAIR O BANCO DE DADO ATUALIZADO
    '''

    listdir = os.listdir('DADOS_EXTRATOR\\')
    if 'servidores.xlsx' in listdir:

        sql = '''select 
                  GR_MATRICULA, IT_NO_SERVIDOR, IT_NU_CPF, DES_CARREIRA, DES_CARGO, EMAIL
                  from tb_ser_rel 
                  WHERE EMAIL IS NULL
                  AND IT_DA_OCOR_INATIVIDADE_SERV IS NULL
                  AND IT_DA_OCOR_EXCLUSAO_SERV IS NULL
                  order by it_no_servidor;'''

        vl, tb = sqlpesquisar(sql)
        if vl == 1:
            xls = 'DADOS_EXTRATOR\\servidores.xlsx'
            folha = 'Servidores'
            arq = pd.read_excel(xls, folha)
            dados = arq
            dc = {}
            for i in tb:
                email = dados[dados['Siape'] == int(i[0])]['Email']
                if email.count() >= 1:
                    dc[i[2]] = email.values[0]

            for i in dc:
                sql = '''INSERT INTO ts_sis_email VALUES ('{0}', '{1}');'''.format(i, dc[i])
                sqlexecute(sql)

        mensagemInformacao('Importação do E-MAIL concluída.')
    else:
        mensagemErro('Arquivo "servidores.xlsx" não encontrado. (E-MAIL)')
Example #12
0
def importarAmbienteServidores():
    '''
    FUNÇÃO IMPORTAR AMBIENTE E EXERCÍCIO DOS SERVIDORES PARA O BANCO DE DADOS
    ENTRA
        PLANILHA DOS SERVIDORES DO SISTEMA INTEGRADO (RELATÓRIO)
    SAI
        BANCO DE DADOS ATUALIZADO COM AMBIENTE E EXERCÍCIO DOS SERVIDORES
    '''

    listdir = os.listdir('DADOS_EXTRATOR\\')
    if 'servidores.xlsx' in listdir:

        xls = 'DADOS_EXTRATOR\\servidores.xlsx'
        folha = 'Servidores'

        arq = pd.read_excel(xls, folha)
        dados = arq[['Siape', 'Ambiente', 'Exercício']]
        dados = dados[dados['Siape'].notnull()]
        dados['Siape'] = dados['Siape'].apply(lambda x: str(x).rjust(7, '0'))
        dados = dados.dropna(thresh=2)
        dados = dados.fillna('null')
        dados = dados[dados['Siape'].duplicated() == False]

        sql = '''delete from ts_sis_ambientes;'''
        sqlexecute(sql)

        sql = '''INSERT INTO ts_sis_ambientes\n(GR_MATRICULA, AMBIENTE, EXERCICIO)\nvalues\n'''
        lx = ''
        for i in dados.values:
            if len(i[0]) == 7:
                lx = '''( '{0}', '{1}', '{2}' ),\n'''.format(i[0], i[1], i[2])
                sql += lx
        sql = sql[:-2] + ';'
        sql = sql.replace('\'null\'', 'null')
        sqlexecute(sql)

        mensagemInformacao('Importação do AMBIENTE concluída.')
    else:
        mensagemErro('Arquivo "servidores.xlsx" não encontrado. (AMBIENTE)')
Example #13
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.')
Example #14
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.')
Example #15
0
def addWiew():
    '''
    FUNÇÃO PARA CRIAR A WIEW ANO-ANO E ANO-ANO C
    ENTRA
        SQL COM A WIEW
    SAI
        WIEW CRIADA NO BANCO
    '''

    tbsql = []

    sql = '''CREATE 
        VIEW `anoano` AS
            SELECT 
                "T" AS `TRABALHANDO`,
                "ADM" AS `SITUACAO`,
                1 AS `VALOR`,
                YEAR(`tb_ser_rel`.`IT_DA_OCOR_INGR_ORGAO_SERV`) AS `ANO`,
                MONTH(`tb_ser_rel`.`IT_DA_OCOR_INGR_ORGAO_SERV`) AS `MES`,
                `tb_ser_rel`.`GR_MATRICULA` AS `SIAPE`
            FROM
                `tb_ser_rel`
            WHERE
                (ISNULL(`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV`)
                    AND ISNULL(`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV`)) 
            UNION SELECT 
                "NT" AS `NT`,
                "ADM" AS `ADM`,
                1 AS `1`,
                YEAR(`tb_ser_rel`.`IT_DA_OCOR_INGR_ORGAO_SERV`) AS `year(IT_DA_OCOR_INGR_ORGAO_SERV)`,
                MONTH(`tb_ser_rel`.`IT_DA_OCOR_INGR_ORGAO_SERV`) AS `month(IT_DA_OCOR_INGR_ORGAO_SERV)`,
                `tb_ser_rel`.`GR_MATRICULA` AS `GR_MATRICULA`
            FROM
                `tb_ser_rel`
            WHERE
                ((`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV` IS NOT NULL)
                    OR (`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV` IS NOT NULL)) 
            UNION SELECT 
                "NT" AS `NT`,
                "APO" AS `APO`,
                -(1) AS `-1`,
                YEAR(`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV`) AS `year(IT_DA_OCOR_INATIVIDADE_SERV)`,
                MONTH(`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV`) AS `month(IT_DA_OCOR_INATIVIDADE_SERV)`,
                `tb_ser_rel`.`GR_MATRICULA` AS `GR_MATRICULA`
            FROM
                `tb_ser_rel`
            WHERE
                (`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV` IS NOT NULL) 
            UNION SELECT 
                "NT" AS `NT`,
                "FAL" AS `FAL`,
                -(1) AS `-1`,
                YEAR(`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV`) AS `year(IT_DA_OCOR_EXCLUSAO_SERV)`,
                MONTH(`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV`) AS `month(IT_DA_OCOR_EXCLUSAO_SERV)`,
                `tb_ser_rel`.`GR_MATRICULA` AS `GR_MATRICULA`
            FROM
                `tb_ser_rel`
            WHERE
                ((`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV` IS NOT NULL)
                    AND (`tb_ser_rel`.`DES_EXCLUSAO` LIKE 'FALECI%')
                    AND ISNULL(`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV`)) 
            UNION SELECT 
                "NT" AS `NT`,
                "DES" AS `DES`,
                -(1) AS `-1`,
                YEAR(`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV`) AS `year(IT_DA_OCOR_EXCLUSAO_SERV)`,
                MONTH(`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV`) AS `month(IT_DA_OCOR_EXCLUSAO_SERV)`,
                `tb_ser_rel`.`GR_MATRICULA` AS `GR_MATRICULA`
            FROM
                `tb_ser_rel`
            WHERE
                ((`tb_ser_rel`.`IT_DA_OCOR_EXCLUSAO_SERV` IS NOT NULL)
                    AND ISNULL(`tb_ser_rel`.`IT_DA_OCOR_INATIVIDADE_SERV`)
                    AND (NOT ((`tb_ser_rel`.`DES_EXCLUSAO` LIKE 'FALECI%'))))'''

    tbsql.append(sql)

    sql = '''CREATE 

    VIEW `anoanoc` AS
        SELECT 
            `a`.`TRABALHANDO` AS `TRABALHANDO`,
            `a`.`SITUACAO` AS `SITUACAO`,
            `a`.`VALOR` AS `VALOR`,
            `a`.`ANO` AS `ANO`,
            `a`.`MES` AS `MES`,
            `a`.`SIAPE` AS `SIAPE`,
            `b`.`IT_NO_SERVIDOR` AS `SERVIDOR`,
            `b`.`IT_NU_CPF` AS `CPF`,
            `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_LOTACAO` AS `LOTACAO`,
            `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`
        FROM
            (`anoano` `a`
            JOIN `tb_ser_rel` `b` ON ((`a`.`SIAPE` = `b`.`GR_MATRICULA`)))'''

    tbsql.append(sql)
    tbsql.append('commit;')

    for sql in tbsql:
        sqlexecute(sql)

    mensagemInformacao('Tabelas Wiew ANO-ANO - ANO-ANO-C criado com sucesso.')
Example #16
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.')
Example #17
0
def ImportarServidoresCedidos():
    '''
    FUNÇÃO PARA IMPORTAR O SERVIDORES CEDIDOS PARA O SISTEMA (IMFORMAÇÃO PARA AGENTES PÚBLICOS)
    ENTRA
        RELATÓRIO DO SIAPE COM O SERVIDORES CEDIDOS
    SAI
        BANCO DE DADOS ATUALIZADO COM SERVIDORES CEDIDOS
    '''

    listdir = []
    for vl in os.listdir('DADOS_EXTRATOR\\'):
        listdir.append(str(vl).upper())

    if 'CEDIDOS.TXT' in listdir:

        sql = 'delete  from ts_sis_cedidos;'
        sqlexecute(sql)

        arq = open('DADOS_EXTRATOR\\CEDIDOS.txt', 'r')
        texto = arq.read()
        arq.close()

        texto = texto.split('\n')
        newtb = []
        siapecadunico = set()
        for vl in range(0, len(texto)):
            if texto[vl].count('INICIO:') > 0:
                l2 = texto[vl].split()
                l1 = texto[vl - 1].split()

                siapecad = str(l1[0]).rjust(10, '0')
                orgao = l1[-1]
                data = l2[1]

                ano = data[5:]
                mes = data[2:5]
                dia = data[0:2]

                txmes = 'JAN FEV MAR ABR MAI JUN JUL AGO SET OUT NOV DEZ'.split(
                )

                dicmes = {}
                contador = 1
                for vl in txmes:
                    dicmes[vl] = contador
                    contador += 1

                mes = dicmes[mes]

                data = '{0}-{1}-{2}'.format(ano, mes, dia)

                lotacao = l2[-1]

                if not siapecad in siapecadunico:
                    siapecadunico.add(siapecad)
                    newtb.append((siapecad, data, lotacao, orgao))

        sql = ''
        for i in newtb:
            sql += str(i) + ',\n'
        sql = sql.replace('[', '(')
        sql = sql.replace(']', ')')
        sql = sql[:-1] + ';'
        sql = sql.replace(',;', ';')

        sql = '''INSERT INTO ts_sis_cedidos
        (SIAPECAD, DT_I, LOTACAO, ORGAO)
        VALUES\n''' + sql

        sqlexecute(sql)

        mensagemInformacao('Importaçaõ dos CEDIDOS-SIAPE concluída.')
    else:
        mensagemErro('Arquivo CEDIDOS.XTX não encontrado.')
Example #18
0
def quandroServidores():
    '''
    FUNÇÃO PARA CRIAR O QUADRO DE SERVIDORES CSV (CSV)
    ENTRA
        NULL
    SAI
        PLANILHA QUADRO DE SERVIDORES CSV (CSV)
    '''

    ### GERAR NOVO QS
    colunas = '''SIAPE
    ID SERVIDOR
    SERVIDOR
    MÃE
    DT NASCIMENTO
    IDADE
    CPF
    PIS
    PIS UF
    RG
    RG ÓRGÃO
    RG DT
    RG UF
    E-MAIL
    SEXO
    ESTADO CIVIL
    ESCOLARIDADE
    TITULAÇÃO
    ETNIA
    CD-BANCO
    CD-AGÊNCIA
    CD-CONTA
    CD-TIPO CONTA
    ENDEREÇO
    END. BAIRRO
    END. CIDADE
    END. CEP
    END. NÚMERO
    END. COMPLEMENTO
    CD-PAÍS ENDEREÇO
    CD-NACIONALIDADE
    CD-REGIME JURÍDICO
    CD-REG JUR SIT
    REG JUR
    CD-CARREIRA
    CD-CARGO
    CARREIRA
    CARGO
    CD-CLASSE
    CD-CLASSE REFERÊNCIA
    CD-CLASSE PADRÃO
    CLASSE
    CD-CLASSE NÍVEL
    CÓDIGO VAGA
    CD-LOTAÇÃO
    LOTAÇÃO
    AMBIENTE
    EXERCÍCIO
    INSTITUTO
    DEPARTAMENTO
    GRUPO
    UPAG
    CH
    CD-UPAG
    DT PORTARIA NOMEAÇÃO
    DT INGRESSO ÓRGÃO SP
    CD-INGRESSO GRUPO SP
    CD-INGRESSO OCORRÊNCIA SP
    DESC INGRESSO SP
    DT INGRESSO SP
    DT PORTARIA NOMEAÇÃO ÓRGÃO
    CD-INGRESSO GRUPO ÓRGÃO
    CD-INGRESSO OCORRÊNCIA ÓRGÃO
    DESC INGRESSO ÓRGÃO
    PORTARIA NOMEAÇÃO NÚMERO
    CD-INATIVIDADE GRUPO
    CD-INATIVIDADE OCORRÊNCIA
    DESC INATIVIDADE
    DT INATIVIDADE
    CD-EXCLUSÃO GRUPO
    CD-EXCLUSÃO OCORRÊNCIA
    DESC EXCLUSAO
    DT EXCLUSÃO
    CD-GRUPO DEFICIÊNCIA FÍSICA
    CD-DEFICIÊNCIA FÍSICA'''
    colunas = colunas.replace('    ', '')
    colunas = colunas.split('\n')

    sqlConsultaNova('NOVO QS 2019', colunas, 'TODOS', [], [], False)

    mensagemInformacao('Relatório QS - SERVIDORES criado com sucesso.')
Example #19
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.')
Example #20
0
def arquivostodosnovos():
    '''
    FUNÇÃO PARA AGRUPAR OS RELATÓRIOS GERADOS
    ENTRA
        NULL
    SAI
        ARQUIVOS GERADOS
    '''

    colunas = ['SIAPE',
               'SERVIDOR',
               'DT NASCIMENTO',
               'IDADE',
               'E-MAIL',
               'SEXO',
               'ESTADO CIVIL',
               'ESCOLARIDADE',
               'TITULAÇÃO',
               'ETNIA',
               'NACIONALIDADE',
               'NASC PAÍS',
               'REG JUR',
               'TEMPO SERVIÇO',
               'CARREIRA',
               'CARGO',
               'CLASSE',
               'LOTAÇÃO',
               'AMBIENTE',
               'EXERCÍCIO',
               'GRUPO',
               'UPAG',
               'CH',
               'DT INGRESSO ÓRGÃO SP',
               'DT INATIVIDADE',
               'DT EXCLUSÃO']

    sqlConsultaNova('SERVIDORES - ATIVOS - (TODOS)',
                    colunas,
                    'ATI', ['TÉCN', 'TÉCN-ESP', 'PROF 3º', 'PROF 2º'], [])

    sqlConsultaNova('SERVIDORES - ATIVOS - HC',
                    colunas,
                    'ATI', ['TÉCN', 'TÉCN-ESP', 'PROF 3º', 'PROF 2º'], ['HC'])

    sqlConsultaNova('SERVIDORES - ATIVOS - TÉCNICOS',
                    colunas,
                    'ATI', ['TÉCN', 'TÉCN-ESP'], [])

    sqlConsultaNova('SERVIDORES - ATIVOS - DOCENTES 2º',
                    colunas,
                    'ATI', ['PROF 2º'], [])

    sqlConsultaNova('SERVIDORES - ATIVOS - DOCENTES 3º',
                    colunas,
                    'ATI', ['PROF 3º'], [])

    sqlConsultaNova('SERVIDORES - (APOSENTADOS)',
                    colunas,
                    'APO', ['TÉCN', 'TÉCN-ESP', 'PROF 3º', 'PROF 2º'], [])

    sqlConsultaNova('SERVIDORES - (DESLIGADOS)',
                    colunas,
                    'DES', ['TÉCN', 'TÉCN-ESP', 'PROF 3º', 'PROF 2º'], [])

    ### CEFORES
    sqlConsultaNova('SERVIDORES - ATIVOS - (LOTAÇÃO {0}) - PROF 2º'.format('CEFORES'),
                    colunas,
                    'ATI', ['PROF 2º'], ['CEFORES'])

    sqlConsultaNova('SERVIDORES - ATIVOS - (LOTAÇÃO {0}) - TÉCNICOS'.format('CEFORES'),
                    colunas,
                    'ATI', ['TÉCN', 'TÉCN-ESP'], ['CEFORES'])

    ### INSTITUTOS E ITURAMA
    institutos = ['ICBN', 'ICENE', 'ICS', 'ICTE', 'IELAHS', 'ITURAMA']
    for it in institutos:
        sqlConsultaNova('SERVIDORES - ATIVOS - (LOTAÇÃO {0}) - PROF 3º'.format(str(it)),
                        colunas,
                        'ATI', ['PROF 3º'], [it])

    for it in institutos:
        sqlConsultaNova('SERVIDORES - ATIVOS - (LOTAÇÃO {0}) - TÉCNICOS'.format(str(it)),
                        colunas,
                        'ATI', ['TÉCN', 'TÉCN-ESP'], [it])

    mensagemInformacao('Relatório dos servidores - ATIVOS E INATIVOS - criados com sucesso.')
Example #21
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.')
Example #22
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.')
Example #23
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.')