[firebase-br] OFF-Topic - Modelagem e Cálculo de Horas
Ricardo Borges Zancanaro
rbzancanaro em gmail.com
Ter Jun 30 16:27:43 -03 2015
Meu nome é Ricardo, durante a graduação acompanhava a lista diariamente,
porém tomei outros rumos e me afastei da área de TI, hoje trabalho
em uma Prefeitura no interior de Santa Catarina e durante o aniversário da
cidade me surgiu uma necessidade que acabei resolvendo com
planilhas do excel já que não tinha tempo hábil para desenvolver uma
solução, mas quero me preparar para a próxima. Como não me descadastrei
da lista resolvi pedir ajuda.
No aniversário do municipal é realizada uma Expofeira com 5 dias de
duração, começando na quarta-feira até domingo.
Desses 5 dias 3 podem ter expediente normal para os funcionários, pode
ocorrer um feriado entre quarta e sexta.
No feriado, sábado e domingo todas as horas trabalhadas são pagas.
Nos dias de expediente normal deve-se analizar o horário de cada
funcionário, se trabalhou fora do expediente pagam-se as horas.
São vários os horários de expediente, conforme exemplo:
pk | entrada | saida | entrada2 | saida2
----------------------------------------
01 | 05:00 | 11:00 | |
02 | 08:00 | 12:00 | 14:00 | 17:00
03 | 07:30 | 12:00 | 13:30 | 17:30
pk | nomefunc | fkhorario
-------------------------
11 | FuncA | 01
22 | FuncB | 02
33 | FuncC | 03
44 | FuncD | 02
Durante o evento os funcionários podem trabalhar sem pausa ou realizar mais
de uma pausa durante o período.
pk | entrada | saida | entrada2 | saida2 | entrada3 | saida3 | fkfunc
---------------------------------------------------------------------
01 | 10:00 | 14:00 | | | | | 11
02 | 07:00 | 12:30 | 13:00 | 20:00 | 20:30 | 24:00 | 22
03 | 07:00 | 23:00 | | | | | 33
04 | 08:00 | 12:00 | 14:00 | 17:00 | | | 44
Que resulta o pagamento:
pk | horaspagas | fkfunc
------------------------
01 | 3 | 11
02 | 9 | 22
03 | 7,5 | 33
04 | 0 | 44
Considerando somente os dias em que há expediente, a modelagem inicial
ficou assim:
Horarios(pk, entrada, saida, entrada2, saida2)
Pessoa(pk, nomefunc, fkhorario)
Batidas(pk, entrada, saida, totalhoraspagas, fkfunc)
Como não sabemos quantos intervalos cada um fará pensei que o melhor seria
deixar uma entrada e saida nas batidas, podendo ter mais de uma
para cada funcionário no dia, bem como no momento do registro verificar o
quanto dessas horas serão pagas.
Minhas dúvidas são:
1) A modelagem é a ideal? O que pode ser diferente?
2) Qual a melhor abordagem para o cálculo de horas? Aqui sinceramente eu
empaquei.
Agradeço desde já
Ricardo Zancanaro
Mais detalhes sobre a lista de discussão lista