fix: Update regularization time picker to use reference time and allow past times for regularization
This commit is contained in:
parent
82c2cc3c58
commit
f0d42edcc1
@ -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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user