Example #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.')
Example #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.')
Example #3
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 #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 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 #6
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 #7
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 #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 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 #10
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 #11
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 #12
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 #13
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.')
Example #14
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 #15
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 #16
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.')