top of page

Gatilho Controle Bco. de Hora

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 7 de jul. de 2023
  • 2 min de leitura

Resultado:

ree

No meu caso, utilizei o SQL SERVER e o Power BI


1º Passo contruir a consulta relacionando as tabelas que precisa. Fiz a identificação das tabelas que iria utilizar para consstruir minha consulta. Se voccê não tiver acesso ao banco de dados, poderá construir utilizando o Excel mesmo, porem precisa ter as informações cruciais de saldo de horas do funcionário dentro de um determinado período.



Para quem usa o Totvs, acho que é padrão a nomeclatura das tabelas.

Tabelas utilizadas:


ASALDOBANCOHOR (matrícula do funcionário com datas iniciais e finais do período analisado)


ree

APARFUN (registros de abonos, compensações)

PFUNC (registros gerais dos funcionários)

PSECAO (registro de lotação)

PFUNCAO (registro de cargos)

PFCOMPL (complemento de informações da PFUNC)

TABAGP (tabela que criei para caracterizar algumas coisas de acordo com a regra de negócio)


***FROM


ree

***SELECT


Minha data de referência e minhas cases: (será necessário fazer no Excel caso você não esteja utilizando/tratando as informações via SQL).


FORMAT(ASALDOBANCOHOR.FIMPER, 'dd/MM/yyyy') AS DT_PERIODO,


CASE

WHEN ((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT)) < 0 THEN DBO.FN_CONVMIN(ABS(((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT))))

ELSE '00:00'

END BANCO_NEGATIVO,



CASE

WHEN ((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT)) > 0 THEN DBO.FN_CONVMIN(ABS(((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT))))

ELSE '00:00'

END BANCO_POSITIVO,



CASE

WHEN ((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT)) > 0 OR

((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT)) < 0 THEN DBO.FN_CONVMIN(ABS(((ASALDOBANCOHOR.EXTRAATU - ASALDOBANCOHOR.ATRASOATU - ASALDOBANCOHOR.FALTAATU) + (ASALDOBANCOHOR.EXTRAANT - ASALDOBANCOHOR.ATRASOANT - ASALDOBANCOHOR.FALTAANT))))

ELSE '00:00'

END AS BCO_GERAL,




Ainda dentro do SELECT, fiz a tratativa para os casos. Por exemplo...

Se o banco de horas do funcionário for acima de 16:00 a saída será alerta vermelho, se for entre 12:00 a 15:59 a saída será alerta amarelo, e abaixo disso, VERDE.

Mais abaixo, compartilho a consulta completa.




***WHERE


No WHERE inseri minhas restrições (filtros) e fiz uma sub query dentro do WHERE para buscar pelo critério de fechamento do período vigente.



ree


Terminando o tratamento da consulta, faça a conexão do Power BI:


ree

Ao carregar a consulta dentro do Power Query, monte o layout do jeito que preferir (minha sugestão esta na 1ª imagem)


Como fiz as classificações dentro do SQL, na minha tabela ficou assim:


ree

Ao selecionar a tabela, em visualizções faça a formatação condicional da coluna que construímos com as analises considerando número 3, 2, 1, 0


ree


Para criar os alertas ao lado:


ree



BCO HORAS VERMELHO = var _bcoTotalVermelho = CALCULATE(COUNTROWS('SALDO_HORA'),'SALDO_HORA'[GATILHO_NRO]="3",'SALDO_HORA'[GATILHO_NRO]="3") return IF(ISBLANK(_bcoTotalVermelho),0,_bcoTotalVermelho)



% GATILHO VERMELHO = var _qntvermelho = [BCO HORAS VERMELHO] / [QP_ATUAL M.QNT NOME] return IF(ISBLANK(_qntvermelho),0,_qntvermelho)



Entre os dias 16 a 22 é o período de manutenção, nestes dias, a bolinha em verde ficará vermelha pois é um período crítico sem assertividade devido a manutenção de períodos, inviabilizando a consulta.


ree



Clique aqui para acessar a consulta completa


https://github.com/amandarnascimento/sqlserver/commit/a0863e0ab4c27738484e6e7260d5004675df5cff

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page