leave add leavetpe_name
This commit is contained in:
@@ -7,15 +7,30 @@ class LeaveApiService {
|
||||
final GenericApiService _apiService = GenericApiService();
|
||||
|
||||
// 新增:獲取所有啟用的假別清單
|
||||
// 實作快取:Key 為 leavetype_id, Value 為 leavetype_name
|
||||
static final Map<String, String> _leaveTypeCache = {};
|
||||
|
||||
// *** 關聯取得假別名稱 define
|
||||
// 新增:提供外部存取快取的介面
|
||||
static String getTypeName(String id) => _leaveTypeCache[id] ?? id;
|
||||
|
||||
Future<List<LeaveType>> fetchLeaveTypes() async {
|
||||
// 這裡通常不需要特別的 filter,或可根據公司邏輯過濾性別等
|
||||
return await _apiService.fetchList<LeaveType>(
|
||||
// 1. 從 API 取得原始資料
|
||||
final List<LeaveType> types = await _apiService.fetchList<LeaveType>(
|
||||
tableName: "hrs_leavetype",
|
||||
pk: "leavetype_id",
|
||||
queryFilter: "1^100^leavetype_id^*^^^", // 取得前100筆
|
||||
queryFilter: "1^100^leavetype_id^*^^^",
|
||||
fromJson: (json) => LeaveType.fromJson(json),
|
||||
);
|
||||
|
||||
// 2. 更新快取池
|
||||
for (var type in types) {
|
||||
_leaveTypeCache[type.id] = type.name;
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
// *** 關聯取得假別名稱 define
|
||||
|
||||
// 查詢員工清單 (代理人)
|
||||
Future<List<Map<String, dynamic>>> fetchEmployees(String keyword) async {
|
||||
@@ -41,6 +56,13 @@ class LeaveApiService {
|
||||
|
||||
// 獲取個人請假紀錄
|
||||
Future<List<Leave>> fetchLeaves(String personId) async {
|
||||
// *** 關聯取得假別名稱,存到 Cache
|
||||
// 若快取為空,先執行一次同步
|
||||
if (_leaveTypeCache.isEmpty) {
|
||||
await fetchLeaveTypes();
|
||||
}
|
||||
// *** 關聯取得假別名稱,存到 Cache
|
||||
|
||||
// 排序:按單據日期降冪
|
||||
String queryFilter = "1^100^billdate^*^start_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)^^personid^$personId";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user