From 1dc68033df54f87d5b57f97d7bcf963deff3977f Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Tue, 11 Nov 2025 12:48:57 +0530 Subject: [PATCH 1/2] fixed category issue while updating and adding expense --- lib/controller/expense/add_expense_controller.dart | 2 +- lib/helpers/services/api_service.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/controller/expense/add_expense_controller.dart b/lib/controller/expense/add_expense_controller.dart index 75e0500..1264cac 100644 --- a/lib/controller/expense/add_expense_controller.dart +++ b/lib/controller/expense/add_expense_controller.dart @@ -454,7 +454,7 @@ class AddExpenseController extends GetxController { return { if (isEditMode.value && editingExpenseId != null) "id": editingExpenseId, "projectId": projectsMap[selectedProject.value]!, - "expensesTypeId": type.id, + "expenseCategoryId": type.id, "paymentModeId": selectedPaymentMode.value!.id, "paidById": selectedPaidBy.value!.id, "transactionDate": diff --git a/lib/helpers/services/api_service.dart b/lib/helpers/services/api_service.dart index 25a46e5..88c1687 100644 --- a/lib/helpers/services/api_service.dart +++ b/lib/helpers/services/api_service.dart @@ -1921,7 +1921,7 @@ class ApiService { }) async { final payload = { "projectId": projectId, - "expensesTypeId": expensesTypeId, + "expenseCategoryId": expensesTypeId, "paymentModeId": paymentModeId, "paidById": paidById, "transactionDate": transactionDate.toIso8601String(), From 077dbf35eeec8a6d84af41eb070f7cf11dc025ca Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Tue, 11 Nov 2025 14:21:54 +0530 Subject: [PATCH 2/2] added routes --- lib/routes.dart | 14 ++++++++++++++ lib/view/dashboard/dashboard_screen.dart | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/routes.dart b/lib/routes.dart index 076d455..03e1a01 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -24,6 +24,8 @@ import 'package:marco/view/tenant/tenant_selection_screen.dart'; import 'package:marco/view/finance/finance_screen.dart'; import 'package:marco/view/finance/advance_payment_screen.dart'; import 'package:marco/view/finance/payment_request_screen.dart'; +import 'package:marco/view/service_project/service_project_details_screen.dart'; +import 'package:marco/view/service_project/service_project_screen.dart'; class AuthMiddleware extends GetMiddleware { @override RouteSettings? redirect(String? route) { @@ -132,6 +134,18 @@ getPageRoute() { page: () => AdvancePaymentScreen(), middlewares: [AuthMiddleware()], ), + + // Service Projects + GetPage( + name: '/dashboard/service-project-details', + page: () => ServiceProjectDetailsScreen(), + middlewares: [AuthMiddleware()], + ), + GetPage( + name: '/dashboard/service-projects', + page: () => ServiceProjectScreen(), + middlewares: [AuthMiddleware()], + ), ]; return routes .map((e) => GetPage( diff --git a/lib/view/dashboard/dashboard_screen.dart b/lib/view/dashboard/dashboard_screen.dart index aff2670..b8c1402 100644 --- a/lib/view/dashboard/dashboard_screen.dart +++ b/lib/view/dashboard/dashboard_screen.dart @@ -32,6 +32,7 @@ class DashboardScreen extends StatefulWidget { static const String directoryMainPageRoute = "/dashboard/directory-main-page"; static const String financeMainPageRoute = "/dashboard/finance"; static const String documentMainPageRoute = "/dashboard/document-main-page"; + static const String serviceprojectsRoute = "/dashboard/service-projects"; @override State createState() => _DashboardScreenState(); @@ -253,6 +254,8 @@ class _DashboardScreenState extends State with UIMixin { DashboardScreen.financeMainPageRoute), _StatItem(LucideIcons.file_text, "Documents", contentTheme.info, DashboardScreen.documentMainPageRoute), + _StatItem(LucideIcons.briefcase, "Service Projects", contentTheme.info, + DashboardScreen.serviceprojectsRoute), ]; // Safe menu check function to avoid exceptions @@ -282,7 +285,9 @@ class _DashboardScreenState extends State with UIMixin { runSpacing: 6, alignment: WrapAlignment.start, children: stats - .where((stat) => _isMenuAllowed(stat.title)) + .where((stat) => + stat.title == "Service Projects" || + _isMenuAllowed(stat.title)) .map((stat) => _buildStatCard(stat, isProjectSelected, cardWidth)) .toList(),