fix: Update regularization time picker to use reference time and allow past times for regularization

This commit is contained in:
Vaibhav Surve 2025-11-04 15:18:42 +05:30
parent 82c2cc3c58
commit f0d42edcc1

View File

@ -41,33 +41,26 @@ class _AttendanceActionButtonState extends State<AttendanceActionButton> {
});
}
Future<DateTime?> _pickRegularizationTime(DateTime checkInTime) async {
Future<DateTime?> _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",