Как фильтровать вход и выход в дневную и ночную смену посещаемости? - PullRequest
4 голосов
/ 25 сентября 2019

Я занимаюсь разработкой системы хронометража, в которой есть расписание на дневную и ночную смены.

Вот моя таблица [tbl_datetime_records]

+---------------+---------------+--------------------+
| biometrics_id | employee_name |   date_time_logs   |
+---------------+---------------+--------------------+
| 1221          | EMPLOYEE 1    | 2014-07-11 09:00   |
| 1221          | EMPLOYEE 1    | 2014-07-11 18:00   |
| 1221          | EMPLOYEE 1    | 2014-07-12 08:54   |
| 1221          | EMPLOYEE 1    | 2014-07-12 18:01   |
| 7445          | EMPLOYEE 2    | 2014-07-11 09:00   |
| 7445          | EMPLOYEE 2    | 2014-07-11 18:00   |
| 7445          | EMPLOYEE 2    | 2014-07-12 08:54   |
| 7445          | EMPLOYEE 2    | 2014-07-12 18:01   |
| 2332          | EMPLOYEE 3    | 2014-07-11 18:00   |
| 2332          | EMPLOYEE 3    | 2014-07-12 02:00   |
| 2332          | EMPLOYEE 3    | 2014-07-12 02:01   |
| 2332          | EMPLOYEE 3    | 2014-07-12 18:00   |
| 2332          | EMPLOYEE 3    | 2014-07-13 02:03   |
| 4114          | EMPLOYEE 4    | 2014-07-11 08:43   |
| 4114          | EMPLOYEE 4    | 2014-07-11 08:44   |
| 4114          | EMPLOYEE 4    | 2014-07-11 14:02   |
| 4114          | EMPLOYEE 4    | 2014-07-12 08:56   |
| 4114          | EMPLOYEE 4    | 2014-07-12 18:04   |
| 4114          | EMPLOYEE 4    | 2014-07-13 09:00   |
+---------------+---------------+--------------------+

Я фильтрую это как ПЕРВЫЙ и ПОСЛЕДНИЙOUT

Условия:

  • Для сотрудников будет несколько входов и выходов в один и тот же день.Таким образом, правила будут первым входом и последним выходом.
  • будет производиться фильтрация в ночную смену.
  • Время входа и время ожидания могут быть равны нулю для сотрудника.
  • Их уникальной идентификацией будет поле (biomterics_id).

Вывод должен быть:

+---------------+---------------+------------------+------------------+
| biometrics_id | employee_name |  date_time_in    |  date_time_out   |
+---------------+---------------+------------------+------------------+
| 1221          | EMPLOYEE 1    | 2014-07-11 09:00 | 2014-07-11 18:00 |
| 1221          | EMPLOYEE 1    | 2014-07-12 08:54 | 2014-07-12 18:01 |
| 7445          | EMPLOYEE 2    | 2014-07-11 09:00 | 2014-07-11 18:00 |
| 7445          | EMPLOYEE 2    | 2014-07-12 08:54 | 2014-07-12 18:01 |
| 2332          | EMPLOYEE 3    | 2014-07-11 18:00 | 2014-07-12 02:01 | ---> NIGHT SHIFT
| 2332          | EMPLOYEE 3    | 2014-07-12 18:00 | 2014-07-13 02:03 | ---> NIGHT SHIFT
| 4114          | EMPLOYEE 4    | 2014-07-11 08:43 | 2014-07-11 14:02 | ---> HALF DAY
| 4114          | EMPLOYEE 4    | NULL             | 2014-07-12 18:04 | ---> NO TIME IN
| 4114          | EMPLOYEE 4    | 2014-07-1309:00  | NULL             | ---> NO TIME OUT
+---------------+---------------+------------------+------------------+

Я до сих пор не имею представления об этом сценарии.Я использую MYSQL / PHP / LARAVEL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...