Olá, pessoal.
Estou desenvolvendo uma calculadora de horas trabalhadas no Bubble e fiquei com uma dúvida sobre a melhor forma de fazer o cálculo.
Cada registro possui um horário de entrada e um horário de saída. Um mesmo usuário pode ter vários registros no mesmo dia, e preciso obter o total de horas trabalhadas nesse dia.
Qual seria a forma mais indicada de fazer isso no Bubble? Vocês calculam a duração de cada registro e depois fazem o agrupamento por usuário e data, ou existe uma abordagem melhor?
Obrigado!
Olá matrix.info. Seja bem-vindo à comunidade.
O mais comum é calcular a duração de cada período trabalhado individualmente e depois somar todos os períodos do mesmo usuário no mesmo dia.
A lógica fica mais ou menos assim:
- Cada registro possui Data/Hora de Entrada e Data/Hora de Saída.
- A duração do registro é simplesmente Saída - Entrada.
- Depois você faz uma busca filtrando pelo usuário e pela data e soma todas as durações encontradas.
- Por fim, converte o total de segundos para horas e minutos apenas na exibição.
Essa abordagem é simples, fácil de manter e funciona muito bem quando o usuário possui vários períodos de trabalho no mesmo dia (por exemplo, saída para almoço, intervalos, etc.).
Além disso, se no futuro você precisar calcular horas extras, adicional noturno ou qualquer outra regra de negócio, ter cada período armazenado separadamente torna tudo muito mais fácil.
Fala @matrix.info, tudo bem?
Com toda certeza, a melhor maneira de você fazer isso é salvar em minutos, a diferença entre “Horário Final” e “Horário Inicial”. Dessa forma você tem um valor numérico, de fácil acesso, que pode ser usado para realizar operações matemáticas e gerar os relatórios no futuro.
De forma prática, toda vez que o usuário clicar informando que terminou determinada tarefa, você salva não só o horário final, mas também a diferença entre eles, em minutos.
Uma abordagem comum é calcular a duração de cada registro primeiro e, depois, somar os registros agrupando por usuário e data. Isso facilita a validação dos resultados e o tratamento de casos específicos. Para conferir se a lógica está correta, uma calculadora horas trabalhadas pode ajudar durante os testes.