fix: allow bulk sync overwrite to process already-synced biometric records and respect active filters

This commit is contained in:
2026-05-28 12:12:23 +08:00
parent e65cefb933
commit a1695010f1
2 changed files with 20 additions and 3 deletions

View File

@@ -163,8 +163,20 @@ class BiometricAttendanceController extends Controller
$overwrite = $request->boolean('overwrite', false);
// Fetch all pending records
$pendingRecords = \App\Models\BiometricAttendance::where('sync_status', 'pending')->get();
$query = \App\Models\BiometricAttendance::query();
if (!$overwrite) {
$query->where('sync_status', 'pending');
}
if ($request->has('start_date') && !empty($request->start_date)) {
$query->whereDate('punch_time', '>=', $request->start_date);
}
if ($request->has('end_date') && !empty($request->end_date)) {
$query->whereDate('punch_time', '<=', $request->end_date);
}
$pendingRecords = $query->get();
$groupedAttendances = $pendingRecords->groupBy(function ($item) {
return $item->biometric_emp_id . '_' . $item->punch_time->format('Y-m-d');