From f0d42edcc13e84a654302ec70d29a5528129a659 Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Tue, 4 Nov 2025 15:18:42 +0530 Subject: [PATCH] fix: Update regularization time picker to use reference time and allow past times for regularization --- .../attendance/attendence_action_button.dart | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/model/attendance/attendence_action_button.dart b/lib/model/attendance/attendence_action_button.dart index f292ea5..9b1d35c 100644 --- a/lib/model/attendance/attendence_action_button.dart +++ b/lib/model/attendance/attendence_action_button.dart @@ -41,33 +41,26 @@ class _AttendanceActionButtonState extends State { }); } - Future _pickRegularizationTime(DateTime checkInTime) async { + Future _pickRegularizationTime(DateTime referenceTime) async { final pickedTime = await showTimePicker( context: context, - initialTime: TimeOfDay.fromDateTime(DateTime.now()), + initialTime: + TimeOfDay.fromDateTime(referenceTime), // start from actual log time ); if (pickedTime == null) return null; final selected = DateTime( - checkInTime.year, - checkInTime.month, - checkInTime.day, + referenceTime.year, + referenceTime.month, + referenceTime.day, pickedTime.hour, pickedTime.minute, ); final now = DateTime.now(); - if (selected.isBefore(checkInTime)) { - showAppSnackbar( - title: "Invalid Time", - message: "Time must be after check-in.", - type: SnackbarType.warning, - ); - return null; - } - + // Allow times before check-in for regularization, but never future if (selected.isAfter(now)) { showAppSnackbar( title: "Invalid Time",