Я считаю количество раз, когда сотрудники опаздывали.Если они регистрируют / ударяют свою карту после определенного времени, тогда «позднее» автоматически сохраняется как истинное через логическое значение.
Однако, если сильно ударить по карте несколько раз в день, «поздняя» сумма продолжает увеличиваться.Есть ли способ заявить, что если запись опоздания для определенного оператора уже существует на сегодня, не сохраняйте новые до следующего дня?
Если что-то вроде -> startOfNExtDay for Carbon существует,это, возможно, подойдет хорошо.
Вот изображение и код, где я сохраняю поздние записи:
https://imgur.com/yx8ya29
if($attendance) {
$attendance->checked_out_at = $current;
$attendance->time_spent_working = $attendance->checked_out_at->diffInSeconds($attendance->checked_in_at);
} else {
$attendance = new Attendance();
$attendance->name = $employee->name;
$attendance->employee_id = $employee->id;
$attendance->checked_in_at = $current;
if (($attendance->checked_in_at->startOfDay()->addHours(10)) < $attendance->checked_in_at) {
$attendance->late = true;
} else {
$attendance->late = false;
}
Отображение в виде:
<table class="table attendances_table">
<tr class="thead-bordered">
<th>Employee</th>
<th class="centered-text">Total time Worked</th>
<th class="centered-text">Times Being Late</th>
</tr>
@foreach($employees as $employee)
<tr>
<td>{{ $employee->name }}</td>
<td class="centered-text">{{ gmdate("H:i:s", $total_time[$employee->id]) }}</td>
<td class="centered-text">{{ $total_late[$employee->id] }}</td>
@endforeach
</tr>
</table>
Заранее спасибо!