Время и посещаемость

1

В рамках программы, над которой я работаю, мне нужно немного советов.

Проблема: я получаю отчет, содержащий записи часов сотрудников. Мне нужно определить первые часы IN в течение дня на основе настройки смены. Например, Shift A начинается в 8:00 и заканчивается в 17:00. Это движение вперед, но что происходит, если человек работал сверхурочно до 1:00 утра на следующее утро, а затем снова включил IN в 7:30, OUT в 7:45, в 7:48. Как определить первые часы в течение дня?

Я могу рассчитать штраф, если человек работает нормально, но что происходит в случае сверхурочной работы, которая распространяется на следующий день?

  • 2
    Исправьте свой заголовок, чтобы описать реальную проблему, с которой вы столкнулись, и укажите пример кода, который указывает на вашу проблему.
  • 0
    часы не должны выглядеть иначе, чем часы? если сейчас нет способа узнать что есть что
Показать ещё 1 комментарий
Теги:
sorting
time-and-attendance

1 ответ

0

Обычно посещаемость времени должна быть измерена к моменту IN конкретного сотрудника плюс время, которое он проводит на работе, а затем время OUT. Что-то вроде этого (просто псевдокод)

employee_checks_in_event = in_time (a timer is started at this point)
fixed_out_time = expected_out_time (this is the normal out time of employee)
if employee_checks_in_again:
    in_time = new_in_time # here the employee may have overlapped next shift IN time due to overtime
employee_checks_out_event = out_time - in_time (lets call it time_spent)
if time_spent < fixed_out_time:
    employee_left_early
else:
    we know employee completed his time and maybe he over-timed as well.
    time_spent = over_time

Теперь, когда у вас есть time_spent сотрудника, вы можете отслеживать время регистрации на следующий день и следить за тем, чтобы они не перекрывались. Имейте в виду, что вам придется каким-то образом различать IN и OUT раз.

Другой способ состоял бы в том, чтобы держать check-IN и check-OUT в совершенно отдельных часах, таким образом, будет очень легко определить время IN и OUT, а поддержание продолжительности работы будет намного проще.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню