Perbarui tampilan di beberapa view untuk meningkatkan konsistensi dan pengalaman pengguna. Ganti penggunaan parameter key dengan super.key di beberapa widget. Tambahkan pengecekan null pada data pengaduan untuk mencegah kesalahan saat menampilkan informasi. Modifikasi beberapa metode untuk menyederhanakan kode dan meningkatkan keterbacaan.

This commit is contained in:
Khafidh Fuadi
2025-03-19 09:36:58 +07:00
parent 7ee56903ee
commit 984b8336f0
140 changed files with 19314 additions and 122 deletions

View File

@ -111,78 +111,75 @@ class WargaDashboardController extends GetxController {
)
''').eq('warga_id', wargaId).order('created_at', ascending: false);
if (response != null) {
final List<PenerimaPenyaluranModel> penerima = [];
for (var item in response) {
Map<String, dynamic> sanitizedPenerimaData =
Map<String, dynamic>.from(item);
final List<PenerimaPenyaluranModel> penerima = [];
for (var item in response) {
Map<String, dynamic> sanitizedPenerimaData =
Map<String, dynamic>.from(item);
if (sanitizedPenerimaData['jumlah_bantuan'] is String) {
var jumlahBantuan = double.tryParse(
sanitizedPenerimaData['jumlah_bantuan'] as String);
sanitizedPenerimaData['jumlah_bantuan'] = jumlahBantuan;
}
// Tambahkan informasi apakah bantuan uang atau bukan dan satuan
if (sanitizedPenerimaData['stok_bantuan'] != null) {
// Cek apakah bantuan uang
final isUang =
sanitizedPenerimaData['stok_bantuan']['is_uang'] ?? false;
sanitizedPenerimaData['is_uang'] = isUang;
// Ambil satuan
final satuan =
sanitizedPenerimaData['stok_bantuan']['satuan'] ?? '';
sanitizedPenerimaData['satuan'] = satuan;
// Ambil nama kategori bantuan jika tersedia
if (sanitizedPenerimaData['stok_bantuan']['kategori_bantuan'] !=
null) {
final kategoriNama = sanitizedPenerimaData['stok_bantuan']
['kategori_bantuan']['nama'] ??
'';
sanitizedPenerimaData['kategori_nama'] = kategoriNama;
}
}
// Tambahkan informasi dari penyaluran bantuan
if (sanitizedPenerimaData['penyaluran_bantuan'] != null) {
// Ambil nama penyaluran
final namaPenyaluran =
sanitizedPenerimaData['penyaluran_bantuan']['nama'] ?? '';
sanitizedPenerimaData['nama_penyaluran'] = namaPenyaluran;
// Ambil deskripsi penyaluran
final deskripsiPenyaluran =
sanitizedPenerimaData['penyaluran_bantuan']['deskripsi'] ?? '';
sanitizedPenerimaData['deskripsi_penyaluran'] = deskripsiPenyaluran;
// Ambil lokasi penyaluran jika tersedia
if (sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran'] !=
null) {
final lokasiNama = sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran']['nama'] ??
'';
sanitizedPenerimaData['lokasi_penyaluran_nama'] = lokasiNama;
final lokasiAlamat = sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran']['alamat_lengkap'] ??
'';
sanitizedPenerimaData['lokasi_penyaluran_alamat'] = lokasiAlamat;
}
}
var model = PenerimaPenyaluranModel.fromJson(sanitizedPenerimaData);
penerima.add(model);
if (sanitizedPenerimaData['jumlah_bantuan'] is String) {
var jumlahBantuan = double.tryParse(
sanitizedPenerimaData['jumlah_bantuan'] as String);
sanitizedPenerimaData['jumlah_bantuan'] = jumlahBantuan;
}
penerimaPenyaluran.assignAll(penerima);
// Tambahkan informasi apakah bantuan uang atau bukan dan satuan
if (sanitizedPenerimaData['stok_bantuan'] != null) {
// Cek apakah bantuan uang
final isUang =
sanitizedPenerimaData['stok_bantuan']['is_uang'] ?? false;
sanitizedPenerimaData['is_uang'] = isUang;
var diterima =
penerima.where((p) => p.statusPenerimaan == 'DITERIMA').length;
totalPenyaluranDiterima.value = diterima;
// Ambil satuan
final satuan = sanitizedPenerimaData['stok_bantuan']['satuan'] ?? '';
sanitizedPenerimaData['satuan'] = satuan;
// Ambil nama kategori bantuan jika tersedia
if (sanitizedPenerimaData['stok_bantuan']['kategori_bantuan'] !=
null) {
final kategoriNama = sanitizedPenerimaData['stok_bantuan']
['kategori_bantuan']['nama'] ??
'';
sanitizedPenerimaData['kategori_nama'] = kategoriNama;
}
}
// Tambahkan informasi dari penyaluran bantuan
if (sanitizedPenerimaData['penyaluran_bantuan'] != null) {
// Ambil nama penyaluran
final namaPenyaluran =
sanitizedPenerimaData['penyaluran_bantuan']['nama'] ?? '';
sanitizedPenerimaData['nama_penyaluran'] = namaPenyaluran;
// Ambil deskripsi penyaluran
final deskripsiPenyaluran =
sanitizedPenerimaData['penyaluran_bantuan']['deskripsi'] ?? '';
sanitizedPenerimaData['deskripsi_penyaluran'] = deskripsiPenyaluran;
// Ambil lokasi penyaluran jika tersedia
if (sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran'] !=
null) {
final lokasiNama = sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran']['nama'] ??
'';
sanitizedPenerimaData['lokasi_penyaluran_nama'] = lokasiNama;
final lokasiAlamat = sanitizedPenerimaData['penyaluran_bantuan']
['lokasi_penyaluran']['alamat_lengkap'] ??
'';
sanitizedPenerimaData['lokasi_penyaluran_alamat'] = lokasiAlamat;
}
}
var model = PenerimaPenyaluranModel.fromJson(sanitizedPenerimaData);
penerima.add(model);
}
penerimaPenyaluran.assignAll(penerima);
var diterima =
penerima.where((p) => p.statusPenerimaan == 'DITERIMA').length;
totalPenyaluranDiterima.value = diterima;
} catch (e) {
print('Error fetchPenerimaPenyaluran: $e');
}
@ -198,10 +195,6 @@ class WargaDashboardController extends GetxController {
.eq('user_id', user!.id)
.single();
if (wargaResponse == null) {
return;
}
final wargaId = wargaResponse['id'];
final response = await _supabaseService.client
@ -210,28 +203,26 @@ class WargaDashboardController extends GetxController {
.eq('warga_id', wargaId)
.order('created_at', ascending: false);
if (response != null) {
final List<PengajuanKelayakanBantuanModel> pengajuan = [];
for (var item in response) {
// Konversi status ke enum
if (item['status'] != null) {
final statusStr = item['status'].toString();
item['status'] = statusStr; // Pastikan status dalam format string
}
pengajuan.add(PengajuanKelayakanBantuanModel.fromJson(item));
final List<PengajuanKelayakanBantuanModel> pengajuan = [];
for (var item in response) {
// Konversi status ke enum
if (item['status'] != null) {
final statusStr = item['status'].toString();
item['status'] = statusStr; // Pastikan status dalam format string
}
pengajuanKelayakan.assignAll(pengajuan);
// Hitung jumlah berdasarkan status
totalPengajuanMenunggu.value =
pengajuan.where((p) => p.status == StatusKelayakan.MENUNGGU).length;
totalPengajuanTerverifikasi.value = pengajuan
.where((p) => p.status == StatusKelayakan.TERVERIFIKASI)
.length;
totalPengajuanDitolak.value =
pengajuan.where((p) => p.status == StatusKelayakan.DITOLAK).length;
pengajuan.add(PengajuanKelayakanBantuanModel.fromJson(item));
}
pengajuanKelayakan.assignAll(pengajuan);
// Hitung jumlah berdasarkan status
totalPengajuanMenunggu.value =
pengajuan.where((p) => p.status == StatusKelayakan.MENUNGGU).length;
totalPengajuanTerverifikasi.value = pengajuan
.where((p) => p.status == StatusKelayakan.TERVERIFIKASI)
.length;
totalPengajuanDitolak.value =
pengajuan.where((p) => p.status == StatusKelayakan.DITOLAK).length;
} catch (e) {
print('Error fetching pengajuan kelayakan: $e');
}