All Employees fetching task done in advance payment screen

This commit is contained in:
Manish 2025-11-13 15:27:13 +05:30
parent 831aacc202
commit 70c8160dce
2 changed files with 45 additions and 27 deletions

View File

@ -65,12 +65,17 @@ class AdvancePaymentController extends GetxController {
try { try {
employeesLoading.value = true; 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); 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; allEmployees = parsed;
_filterEmployees(q); _filterEmployees(q);
} catch (e, s) { } catch (e, s) {

View File

@ -427,20 +427,35 @@ class ApiService {
} }
/// Get details of a single service project /// Get details of a single service project
static Future<ServiceProjectDetailModel?> getServiceProjectDetailApi(
String projectId) async {
final endpoint = "${ApiEndpoints.getServiceProjectDetail}/$projectId";
logSafe("Fetching details for Service Project ID: $projectId");
static Future<ServiceProjectDetailModel?> getServiceProjectDetailApi( static Future<ServiceProjectDetailModel?> getServiceProjectDetailApi(
String projectId) async { String projectId) async {
final endpoint = "${ApiEndpoints.getServiceProjectDetail}/$projectId"; final endpoint = "${ApiEndpoints.getServiceProjectDetail}/$projectId";
logSafe("Fetching details for Service Project ID: $projectId"); logSafe("Fetching details for Service Project ID: $projectId");
try {
final response = await _getRequest(endpoint);
try { try {
final response = await _getRequest(endpoint); final response = await _getRequest(endpoint);
if (response == null) {
logSafe("Service Project Detail request failed: null response",
level: LogLevel.error);
return null;
}
if (response == null) { if (response == null) {
logSafe("Service Project Detail request failed: null response", logSafe("Service Project Detail request failed: null response",
level: LogLevel.error); level: LogLevel.error);
return null; return null;
} }
final jsonResponse = _parseResponseForAllData(
response,
label: "Service Project Detail",
);
final jsonResponse = _parseResponseForAllData( final jsonResponse = _parseResponseForAllData(
response, response,
label: "Service Project Detail", label: "Service Project Detail",
@ -454,9 +469,19 @@ class ApiService {
level: LogLevel.error); level: LogLevel.error);
logSafe("StackTrace: $stack", level: LogLevel.debug); 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;
} }
return null;
}
/// Get Service Project List /// Get Service Project List
static Future<ServiceProjectListModel?> getServiceProjectsListApi({ static Future<ServiceProjectListModel?> getServiceProjectsListApi({
@ -2091,34 +2116,22 @@ class ApiService {
} }
/// Fetch employees with optional query. Returns raw list (List<dynamic>) /// Fetch employees with optional query. Returns raw list (List<dynamic>)
static Future<List<dynamic>> getEmployees({String query = ''}) async { static Future<List<dynamic>> getEmployees(
{Map<String, String>? queryParams}) async {
try { try {
// endpoint relative to ApiEndpoints.baseUrl; _getRequest builds full url final endpoint = ApiEndpoints.getEmployeesWithoutPermission;
var endpoint = ApiEndpoints.getEmployeesWithoutPermission;
Map<String, String>? queryParams;
if (query.isNotEmpty) {
// server may expect a query param name other than 'q'. Adjust if needed.
queryParams = {'q': query};
}
final resp = await _getRequest(endpoint, queryParams: queryParams); final resp = await _getRequest(endpoint, queryParams: queryParams);
if (resp == null) return []; if (resp == null) return [];
// parse response final body = jsonDecode(resp.body);
try { if (body is Map && body.containsKey('data')) {
final body = jsonDecode(resp.body); final data = body['data'];
if (body is Map && body.containsKey('data')) { if (data is List) return data;
final data = body['data']; return [];
if (data is List) return data; } else if (body is List) {
return []; return body;
} else if (body is List) { } else {
return body;
} else {
return [];
}
} catch (e, s) {
logSafe("❌ ApiService.getEmployees: parse error $e\n$s",
level: LogLevel.error);
return []; return [];
} }
} catch (e, s) { } catch (e, s) {