Beispiel #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.')
Beispiel #2
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.')
Beispiel #3
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.')
Beispiel #4
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.')
Beispiel #5
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.')
Beispiel #6
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.')
Beispiel #7
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.')
Beispiel #8
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)
Beispiel #9
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.')
Beispiel #10
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.')
Beispiel #11
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.')