Заезд / выезд в системе посещаемости с использованием 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 с сохраненный ключ, который вы установили.