diff --git a/lib/controller/finance/advance_payment_controller.dart b/lib/controller/finance/advance_payment_controller.dart index 1e159fc..84eb917 100644 --- a/lib/controller/finance/advance_payment_controller.dart +++ b/lib/controller/finance/advance_payment_controller.dart @@ -65,12 +65,17 @@ class AdvancePaymentController extends GetxController { try { employeesLoading.value = true; - final list = await ApiService.getEmployees(query: q); + // Build query params + final queryParams = { + 'allEmployee': 'true', + if (q.isNotEmpty) 'q': q, // only include search query if not empty + }; + + final list = await ApiService.getEmployees(queryParams: queryParams); final parsed = Employee.listFromJson(list); - logSafe("✅ Employees fetched from API: ${parsed.map((e) => e.name).toList()}"); + logSafe( + "✅ Employees fetched from API: ${parsed.map((e) => e.name).toList()}"); - - // Save full result and filter locally allEmployees = parsed; _filterEmployees(q); } catch (e, s) { diff --git a/lib/helpers/services/api_service.dart b/lib/helpers/services/api_service.dart index f2e8fbc..6061bcc 100644 --- a/lib/helpers/services/api_service.dart +++ b/lib/helpers/services/api_service.dart @@ -427,20 +427,35 @@ class ApiService { } /// Get details of a single service project + static Future getServiceProjectDetailApi( + String projectId) async { + final endpoint = "${ApiEndpoints.getServiceProjectDetail}/$projectId"; + logSafe("Fetching details for Service Project ID: $projectId"); static Future getServiceProjectDetailApi( String projectId) async { final endpoint = "${ApiEndpoints.getServiceProjectDetail}/$projectId"; logSafe("Fetching details for Service Project ID: $projectId"); + try { + final response = await _getRequest(endpoint); try { final response = await _getRequest(endpoint); + if (response == null) { + logSafe("Service Project Detail request failed: null response", + level: LogLevel.error); + return null; + } if (response == null) { logSafe("Service Project Detail request failed: null response", level: LogLevel.error); return null; } + final jsonResponse = _parseResponseForAllData( + response, + label: "Service Project Detail", + ); final jsonResponse = _parseResponseForAllData( response, label: "Service Project Detail", @@ -454,9 +469,19 @@ class ApiService { level: LogLevel.error); logSafe("StackTrace: $stack", level: LogLevel.debug); } + if (jsonResponse != null) { + return ServiceProjectDetailModel.fromJson(jsonResponse); + } + } catch (e, stack) { + logSafe("Exception during getServiceProjectDetailApi: $e", + level: LogLevel.error); + logSafe("StackTrace: $stack", level: LogLevel.debug); + } return null; } + return null; + } /// Get Service Project List static Future getServiceProjectsListApi({ @@ -2091,34 +2116,22 @@ class ApiService { } /// Fetch employees with optional query. Returns raw list (List) - static Future> getEmployees({String query = ''}) async { + static Future> getEmployees( + {Map? queryParams}) async { try { - // endpoint relative to ApiEndpoints.baseUrl; _getRequest builds full url - var endpoint = ApiEndpoints.getEmployeesWithoutPermission; - Map? queryParams; - if (query.isNotEmpty) { - // server may expect a query param name other than 'q'. Adjust if needed. - queryParams = {'q': query}; - } + final endpoint = ApiEndpoints.getEmployeesWithoutPermission; final resp = await _getRequest(endpoint, queryParams: queryParams); if (resp == null) return []; - // parse response - try { - final body = jsonDecode(resp.body); - if (body is Map && body.containsKey('data')) { - final data = body['data']; - if (data is List) return data; - return []; - } else if (body is List) { - return body; - } else { - return []; - } - } catch (e, s) { - logSafe("❌ ApiService.getEmployees: parse error $e\n$s", - level: LogLevel.error); + final body = jsonDecode(resp.body); + if (body is Map && body.containsKey('data')) { + final data = body['data']; + if (data is List) return data; + return []; + } else if (body is List) { + return body; + } else { return []; } } catch (e, s) {