Merge pull request 'fix: Improve validation for completed work and display pending work in report task bottom sheet' (#37) from Vaibhav_Bug-#435 into main

Reviewed-on: #37
This commit is contained in:
vaibhav.surve 2025-06-03 06:13:49 +00:00
commit a7f8ea16b0
2 changed files with 25 additions and 6 deletions

View File

@ -124,10 +124,8 @@ class _ReportTaskBottomSheetState extends State<ReportTaskBottomSheet>
.trim()), .trim()),
buildRow( buildRow(
"Assigned", "Assigned",
controller.basicValidator "${controller.basicValidator.getController('assigned')?.text.trim()} "
.getController('assigned') "of ${widget.taskData['pendingWork'] ?? '-'} Pending"),
?.text
.trim()),
Row( Row(
children: [ children: [
Icon(Icons.work_outline, Icon(Icons.work_outline,
@ -141,8 +139,23 @@ class _ReportTaskBottomSheetState extends State<ReportTaskBottomSheet>
), ),
MySpacing.height(8), MySpacing.height(8),
TextFormField( TextFormField(
validator: controller.basicValidator validator: (value) {
.getValidation('completed_work'), if (value == null || value.trim().isEmpty) {
return 'Please enter completed work';
}
final completed = int.tryParse(value.trim());
final pending = widget.taskData['pendingWork'] ?? 0;
if (completed == null) {
return 'Enter a valid number';
}
if (completed > pending) {
return 'Completed work cannot exceed pending work $pending';
}
return null;
},
controller: controller.basicValidator controller: controller.basicValidator
.getController('completed_work'), .getController('completed_work'),
keyboardType: TextInputType.number, keyboardType: TextInputType.number,

View File

@ -440,6 +440,11 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
final teamMembers = task.teamMembers final teamMembers = task.teamMembers
.map((e) => e.firstName) .map((e) => e.firstName)
.toList(); .toList();
final pendingWork = (task.workItem
?.plannedWork ??
0) -
(task.workItem?.completedWork ??
0);
final taskData = { final taskData = {
'activity': activityName, 'activity': activityName,
@ -452,6 +457,7 @@ class _DailyProgressReportScreenState extends State<DailyProgressReportScreen>
'teamSize': 'teamSize':
task.teamMembers.length, task.teamMembers.length,
'teamMembers': teamMembers, 'teamMembers': teamMembers,
'pendingWork': pendingWork,
}; };
showModalBottomSheet( showModalBottomSheet(