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!
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.
1 Like
Boa @anthony3814 !
Marca ali como a solução da resposta pra fechar a thread certinho depois!
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