Заезд / выезд в системе посещаемости с использованием codeigniter

Я пытаюсь создать систему посещаемости в Интернете, где сотрудники регистрируются и регистрируются ежедневно, за исключением выходных и отпусков.

Итак, моя идея состояла в том, чтобы создать ежедневную запись о посещаемости в виде таблицы в базе данных.

Attendance_date_daily         date
Employee_ID                   number(auto generated)
Check_in_time                 time
Check_out_time                time
Attendence_status             varchar

Я использую codeigniter v 3.0.0

Легко создать модель, чтобы получить текущее время и сохранить его в базе данных при входе / выходе пользователя. но проблема в том, что если пользователь отсутствовал в течение дня или более, то система не будет создавать запись для этих дней.

Более того, я не могу создавать записи заранее. так как я не знаю, когда у пользователя будет отпуск, рабочие дни могут отличаться.

Каков наилучший способ для создания и управления этими ежедневными записями?

1 ответ

Решение

Одно из возможных решений может состоять в том, чтобы позволить сотрудникам проходить регистрацию каждый день в обычном режиме, что приведет к заполнению базы данных в эти дни.

Чтобы добавить записи об отсутствии для тех, кто еще не зарегистрировался, вы можете использовать CRON или что-то подобное, чтобы планировать задачу, возможно, в полночь каждый день. Используйте это задание для указания URL-адреса, который будет запускать метод в контроллере, который будет проверять сотрудников на ежедневные записи. Очевидно, что для тех, кто зарегистрировался, никакие действия не будут выполнены, хотя для тех, кто не отмечен и не помечен как находящийся в отпуске или не работает, вы обновляете базу данных, чтобы добавить записи об отсутствии.

В такой системе вы обычно вызываете URL для обновления, используя любую систему, которую используете wget или что-то похожее на "загрузить" URL-адрес и заставить его работать. Из соображений безопасности также следует добавить, что вы захотите добавить секретный ключ в качестве параметра GET или чего-то подобного, чтобы метод мог проверить, что он вызывается через задачу, а не, например, кто-то, посещающий URL-адрес, сравнивая параметр GET с сохраненный ключ, который вы установили.

Другие вопросы по тегам