Tambahkan fitur jenis bantuan pada modul stok bantuan

- Perbarui model StokBantuanModel untuk mendukung jenis bantuan
- Tambahkan metode loadJenisBantuanData() di StokBantuanController
- Integrasikan dropdown pemilihan jenis bantuan di form tambah/edit stok
- Perbarui SupabaseService untuk mengambil data jenis bantuan
- Tampilkan nama jenis bantuan di daftar stok bantuan
This commit is contained in:
Khafidh Fuadi
2025-03-11 18:55:06 +07:00
parent eec06ba79d
commit cdbd659d63
7 changed files with 95 additions and 36 deletions

View File

@ -1,7 +1,6 @@
import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:penyaluran_app/app/utils/date_formatter.dart';
class PenerimaController extends GetxController {
final RxList<Map<String, dynamic>> daftarPenerima =

View File

@ -17,6 +17,10 @@ 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 =
<Map<String, dynamic>>[].obs;
// Controller untuk pencarian
final TextEditingController searchController = TextEditingController();
final RxString searchQuery = ''.obs;
@ -27,6 +31,7 @@ class StokBantuanController extends GetxController {
void onInit() {
super.onInit();
loadStokBantuanData();
loadJenisBantuanData();
// Listener untuk pencarian
searchController.addListener(() {
@ -69,6 +74,17 @@ class StokBantuanController extends GetxController {
}
}
Future<void> loadJenisBantuanData() async {
try {
final jenisBantuanData = await _supabaseService.getJenisBantuan();
if (jenisBantuanData != null) {
daftarJenisBantuan.value = jenisBantuanData;
}
} catch (e) {
print('Error loading jenis bantuan data: $e');
}
}
Future<void> addStok(StokBantuanModel stok) async {
isLoading.value = true;
try {
@ -151,6 +167,7 @@ class StokBantuanController extends GetxController {
isLoading.value = true;
try {
await loadStokBantuanData();
await loadJenisBantuanData();
} finally {
isLoading.value = false;
}