Perbarui model PenerimaPenyaluran untuk menyertakan properti qrCodeHash dan hapus properti yang tidak digunakan. Modifikasi controller DetailPenyaluranController untuk menambahkan fungsi pengambilan data penerima penyaluran berdasarkan ID. Sesuaikan tampilan di halaman konfirmasi penerima dan detail penerimaan untuk meningkatkan pengalaman pengguna. Hapus kode yang tidak diperlukan untuk menjaga kebersihan kode.
This commit is contained in:
@ -604,4 +604,59 @@ class DetailPenyaluranController extends GetxController {
|
||||
isExporting.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Fungsi untuk mengambil data penerima penyaluran berdasarkan ID
|
||||
Future<PenerimaPenyaluranModel?> getPenerimaPenyaluranById(
|
||||
String penerimaPenyaluranId) async {
|
||||
try {
|
||||
// Ambil data penerima penyaluran dengan relasinya
|
||||
final data = await _supabaseService.client
|
||||
.from('penerima_penyaluran')
|
||||
.select(
|
||||
'*, warga:warga_id(*), stok_bantuan:stok_bantuan_id(*), penyaluran_bantuan:penyaluran_bantuan_id(*)')
|
||||
.eq('id', penerimaPenyaluranId)
|
||||
.single();
|
||||
|
||||
// Konversi data ke model
|
||||
final Map<String, dynamic> sanitizedData =
|
||||
Map<String, dynamic>.from(data);
|
||||
|
||||
// Konversi jumlah_bantuan ke double jika bertipe String
|
||||
if (sanitizedData['jumlah_bantuan'] is String) {
|
||||
sanitizedData['jumlah_bantuan'] =
|
||||
double.tryParse(sanitizedData['jumlah_bantuan'] as String);
|
||||
}
|
||||
|
||||
return PenerimaPenyaluranModel.fromJson(sanitizedData);
|
||||
} catch (e) {
|
||||
print('Error mengambil data penerima penyaluran: $e');
|
||||
Get.snackbar(
|
||||
'Error',
|
||||
'Terjadi kesalahan saat mengambil data penerima',
|
||||
backgroundColor: Colors.red,
|
||||
colorText: Colors.white,
|
||||
);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Fungsi untuk memuat penyaluran dengan id tertentu
|
||||
Future<void> getDetailPenyaluran(String penyaluranId) async {
|
||||
try {
|
||||
isLoading.value = true;
|
||||
|
||||
// Ambil data penyaluran
|
||||
await loadPenyaluranData(penyaluranId);
|
||||
} catch (e) {
|
||||
print('Error getDetailPenyaluran: $e');
|
||||
Get.snackbar(
|
||||
'Error',
|
||||
'Gagal memuat data detail penyaluran',
|
||||
backgroundColor: Colors.red,
|
||||
colorText: Colors.white,
|
||||
);
|
||||
} finally {
|
||||
isLoading.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -376,7 +376,6 @@ class PelaksanaanPenyaluranController extends GetxController {
|
||||
statusPenerimaan: 'DITERIMA',
|
||||
tanggalPenerimaan: penerimaPenyaluran[index].tanggalPenerimaan,
|
||||
buktiPenerimaan: penerimaPenyaluran[index].buktiPenerimaan,
|
||||
keterangan: penerimaPenyaluran[index].keterangan,
|
||||
jumlahBantuan: penerimaPenyaluran[index].jumlahBantuan,
|
||||
stokBantuanId: penerimaPenyaluran[index].stokBantuanId,
|
||||
warga: penerimaPenyaluran[index].warga,
|
||||
|
Reference in New Issue
Block a user