All Employees fetching task done in advance payment screen
This commit is contained in:
parent
fc09673cd0
commit
52782098f8
@ -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) {
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user