Intervalo de Horas

Olá gente,

Preciso de uma ajuda, estou tentando fazer um ponto eletrônico para colocar em meu sistema. Criei um Banco de Dados definido com PONTO, e algumas variáveis, como tipo de ponto (entrada/saída) , geolocalização, etc.

Na tela inicial criei um campo para a pessoa bater o ponto e visualizar os últimos registros de ponto daquele dia, até aí tudo bem consegui fazer tudo…

Porém gostaria de calcular quanto tempo ele trabalhou no dia, ou seja, preicso saber a duração em horas e minutos (hh:mm) quanto ele trabalhou entre cada ENTRADA e cada SAÍDA. Lembrando que ele pode entrar e sair várias vezes ao dia…

Criei um grupo repetidor, e estou tentando retirar a quantidade de horas trabalhadas desse grupo repetidor. Consegui extrair os minutos da primeira entrada, mas não consigo fazer de todas as entradas e saidas do grupo repetidor.

Alguém pode me ajudar como posso fazer isso.

Você poderia colocar no workflow quando vai fazer o Ponto de saída, para calcular quantos segundos a pessoa trabalho e registrar, depois você consegue somar todos os tempos

Boa tarde @anthony3814, tudo bem?

Problema legal esse! Tentaria o seguinte:

Na DB PONTO teria os campos: USUARIO | ENTRADA | SAIDA | TEMPO TOTAL

Na entrada do usuario criaria um novo registro povoando a hora de entrada e ao sair fecharia esse registro povoando tempo de saída e o tempo total.

Você pode criar campos no usuário par identifica o status dele (trabalhando / não trabalhando) e também o ID do registro (PONTO) aberto para facilitar a idenficação desse PONTO.

Para visualizar o resultado, você pode trazer o tempo total via Group By. Assim terá o tempo total pro dia, mês, trimestre, ano. Como quiser.

Forma como faria pensando rapidamente aqui…

Abraço! :rocket:

Boa noite,

Muito obrigado pela ajuda, achei uma solução com base no que me falaram…
Refiz o Banco de Dados, incluindo o campo horas trabalhadas.
Assim quando eu faço um registro de ENTRADA, ele cria uma data/hora no banco dados no campo Entrada(tipo data), E quando faço um registro de saída ela busca o último registro de ENTRADA do usuário e insere a data/hora no campo Saída (tipo/data), e tambem calcula a diferença entre esses dois valores, incluindo os segundos no campo Horas Trabalhadas(numérico), depois usei um plugin Sec2time para apresentar o campo segundos em formato de hora.

Um pouco de gambiarra kkk, mas atendeu para o que precisava.
Segue alguns prints, para ajudar alguém se precisar.





image

1 Like

Boa @anthony3814 !

Marca ali como a solução da resposta pra fechar a thread certinho depois! :wink:

estou criando um sistema parececido como faço para identificar qual funcionario bateu o ponto sem ele precisar fazer o login?
eu coloque um input mas não sei como puxar por id assim que ele colcar o id registra no nome daquele funcionario. vc pode me ajudar?

Simples, crie um campo de ID como por exemplo login e quando o usuário realizar a ação de marcação de ponto você busca qual o usuário pelo ID informado ali no campo disposto. Se tiver dúvidas ou complicações entre em contato comigo por e-mail: contato@joaoanzolim.com