Refactor stok bantuan model dan kontroller untuk mendukung kategori bantuan
- Ubah model StokBantuanModel dari 'jenis bantuan' menjadi 'kategori bantuan' - Perbarui metode loadJenisBantuanData() menjadi loadKategoriBantuanData() - Tambahkan metode baru untuk menghitung stok hampir habis dan segera kadaluarsa - Update tampilan dan form untuk menggunakan kategori bantuan - Perbaiki logika navigasi dan binding pada berbagai modul terkait
This commit is contained in:
@ -17,8 +17,8 @@ class StokBantuanController extends GetxController {
|
||||
final RxDouble stokMasuk = 0.0.obs;
|
||||
final RxDouble stokKeluar = 0.0.obs;
|
||||
|
||||
// Data untuk jenis bantuan
|
||||
final RxList<Map<String, dynamic>> daftarJenisBantuan =
|
||||
// Data untuk kategori bantuan
|
||||
final RxList<Map<String, dynamic>> daftarKategoriBantuan =
|
||||
<Map<String, dynamic>>[].obs;
|
||||
|
||||
// Controller untuk pencarian
|
||||
@ -31,7 +31,7 @@ class StokBantuanController extends GetxController {
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
loadStokBantuanData();
|
||||
loadJenisBantuanData();
|
||||
loadKategoriBantuanData();
|
||||
|
||||
// Listener untuk pencarian
|
||||
searchController.addListener(() {
|
||||
@ -74,14 +74,14 @@ class StokBantuanController extends GetxController {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> loadJenisBantuanData() async {
|
||||
Future<void> loadKategoriBantuanData() async {
|
||||
try {
|
||||
final jenisBantuanData = await _supabaseService.getJenisBantuan();
|
||||
if (jenisBantuanData != null) {
|
||||
daftarJenisBantuan.value = jenisBantuanData;
|
||||
final kategoriBantuanData = await _supabaseService.getKategoriBantuan();
|
||||
if (kategoriBantuanData != null) {
|
||||
daftarKategoriBantuan.value = kategoriBantuanData;
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error loading jenis bantuan data: $e');
|
||||
print('Error loading kategori bantuan data: $e');
|
||||
}
|
||||
}
|
||||
|
||||
@ -167,7 +167,7 @@ class StokBantuanController extends GetxController {
|
||||
isLoading.value = true;
|
||||
try {
|
||||
await loadStokBantuanData();
|
||||
await loadJenisBantuanData();
|
||||
await loadKategoriBantuanData();
|
||||
} finally {
|
||||
isLoading.value = false;
|
||||
}
|
||||
@ -194,4 +194,18 @@ class StokBantuanController extends GetxController {
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
||||
// Metode untuk mendapatkan jumlah stok yang hampir habis (stok <= 10)
|
||||
int getStokHampirHabis() {
|
||||
return daftarStokBantuan.where((stok) => (stok.jumlah ?? 0) <= 10).length;
|
||||
}
|
||||
|
||||
// Metode untuk mendapatkan jumlah stok yang segera kadaluarsa (dalam 30 hari)
|
||||
int getStokSegeraKadaluarsa() {
|
||||
return daftarStokBantuan
|
||||
.where((stok) =>
|
||||
stok.tanggalKadaluarsa != null &&
|
||||
stok.tanggalKadaluarsa!.difference(DateTime.now()).inDays <= 30)
|
||||
.length;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user