Tengo un proyecto en el cual los trabajadores de una empresa deben ingresar la fecha en que ingresan y en la que salen.
Si entraran y salieran en un dia una vez por evento, osea una entrada en la mañana y otra en la tarde podria estructurar una tabla donde pusiera dos campos, hora_inicio y hora_fin:
Código SQL:
Ver original
+-------------+-----------+-----------+ | empleado_id | fecha_ini | fecha_fin | +-------------+-----------+-----------+
con esto cuando hiciera la consulta sacaria las horas trabajadas y listo. Pero en este caso los empleados pueden entrar y salir las veces que quieran por ejemplo:
Entran a las 7:00 AM y salen a la 1:00 PM, entran a las 2:00 PM y salen a las 5:00 PM
Ahi el sistema deberia sacar las horas entre cada rango, esto quiere decir que en este dia el empleado trabajo 6 horas en la mañana y 3 horas en la tarde para un total de 9 horas en ese dia.
Podria suceder este otro caso:
Entra a las 7:00 AM sale a las 9:00 AM entra a las 11:00 AM sale a la 1:00 PM entra a las 2:00 PM y sale a las 5:00 PM
Este es el caso tipico de una cita medica o una diligencia que mientras esta por fuera de la empresa no se debe tener en cuenta este tiempo.
Los tiempos serian 2 horas + 2 horas +3 horas para un total de 7 horas trabajadas ya que se ausento 2 horas en la mañana.
En esto es que necesito me orienten ya que no se como estructurar una tabla donde vaya toda esta lógica.
Muchas gracias.