diff --git a/lib/controller/task_planning/daily_task_planning_controller.dart b/lib/controller/task_planning/daily_task_planning_controller.dart index 33cc9b2..ea43d3c 100644 --- a/lib/controller/task_planning/daily_task_planning_controller.dart +++ b/lib/controller/task_planning/daily_task_planning_controller.dart @@ -12,7 +12,8 @@ class DailyTaskPlanningController extends GetxController { RxList employees = [].obs; RxList selectedEmployees = [].obs; List allEmployeesCache = []; - List dailyTasks = []; + RxList dailyTasks = + [].obs; RxMap uploadingStates = {}.obs; MyFormValidator basicValidator = MyFormValidator(); @@ -97,7 +98,6 @@ class DailyTaskPlanningController extends GetxController { if (response == true) { logSafe("Task assigned successfully", level: LogLevel.info); await fetchBuildingInfra(buildingId, projectId, serviceId); - Get.back(); showAppSnackbar( title: "Success", @@ -129,18 +129,17 @@ class DailyTaskPlanningController extends GetxController { final infraData = infraResponse?['data'] as List?; if (infraData == null || infraData.isEmpty) { - dailyTasks = []; + dailyTasks.clear(); //reactive clear return; } - // Filter buildings with 0 planned & completed work final filteredBuildings = infraData.where((b) { final planned = (b['plannedWork'] as num?)?.toDouble() ?? 0; final completed = (b['completedWork'] as num?)?.toDouble() ?? 0; return planned > 0 || completed > 0; }).toList(); - dailyTasks = filteredBuildings.map((buildingJson) { + final mapped = filteredBuildings.map((buildingJson) { final building = Building( id: buildingJson['id'], name: buildingJson['buildingName'], @@ -163,14 +162,19 @@ class DailyTaskPlanningController extends GetxController { ); }).toList(); + dailyTasks.assignAll(mapped); + buildingLoadingStates.clear(); buildingsWithDetails.clear(); } catch (e, stack) { - logSafe("Error fetching daily task data", - level: LogLevel.error, error: e, stackTrace: stack); + logSafe( + "Error fetching daily task data", + level: LogLevel.error, + error: e, + stackTrace: stack, + ); } finally { isFetchingTasks.value = false; - update(); // dailyTasks is non-reactive } } diff --git a/lib/helpers/services/api_endpoints.dart b/lib/helpers/services/api_endpoints.dart index b39cb40..7d94d8b 100644 --- a/lib/helpers/services/api_endpoints.dart +++ b/lib/helpers/services/api_endpoints.dart @@ -1,9 +1,9 @@ class ApiEndpoints { - // static const String baseUrl = "https://stageapi.marcoaiot.com/api"; + static const String baseUrl = "https://stageapi.marcoaiot.com/api"; // static const String baseUrl = "https://api.marcoaiot.com/api"; // static const String baseUrl = "https://devapi.marcoaiot.com/api"; // static const String baseUrl = "https://mapi.marcoaiot.com/api"; - static const String baseUrl = "https://api.onfieldwork.com/api"; + // static const String baseUrl = "https://api.onfieldwork.com/api"; static const String getMasterCurrencies = "/Master/currencies/list"; diff --git a/lib/model/dailyTaskPlanning/assign_task_bottom_sheet .dart b/lib/model/dailyTaskPlanning/assign_task_bottom_sheet .dart index cd16993..5a6c73b 100644 --- a/lib/model/dailyTaskPlanning/assign_task_bottom_sheet .dart +++ b/lib/model/dailyTaskPlanning/assign_task_bottom_sheet .dart @@ -24,9 +24,11 @@ class AssignTaskBottomSheet extends StatefulWidget { final String buildingName; final String floorName; final String workAreaName; + final String buildingId; const AssignTaskBottomSheet({ super.key, + required this.buildingId, required this.buildingName, required this.workLocation, required this.floorName, @@ -372,7 +374,7 @@ class _AssignTaskBottomSheetState extends State { } } - void _onAssignTaskPressed() { + Future _onAssignTaskPressed() async { final selectedTeam = controller.selectedEmployees; if (selectedTeam.isEmpty) { @@ -413,16 +415,20 @@ class _AssignTaskBottomSheetState extends State { return; } - controller.assignDailyTask( + final success = await controller.assignDailyTask( workItemId: widget.workItemId, plannedTask: target.toInt(), description: description, taskTeam: selectedTeam.map((e) => e.id).toList(), assignmentDate: widget.assignmentDate, - buildingId: widget.buildingName, + buildingId: widget.buildingId, projectId: selectedProjectId!, organizationId: selectedOrganization?.id, serviceId: selectedService?.id, ); + + if (success) { + Navigator.pop(context); + } } } diff --git a/lib/view/taskPlanning/daily_task_planning.dart b/lib/view/taskPlanning/daily_task_planning.dart index a184b6e..5b3eb19 100644 --- a/lib/view/taskPlanning/daily_task_planning.dart +++ b/lib/view/taskPlanning/daily_task_planning.dart @@ -472,6 +472,7 @@ class _DailyTaskPlanningScreenState extends State ), builder: (context) => AssignTaskBottomSheet( + buildingId: building.id, buildingName: building.name, floorName: