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:
Khafidh Fuadi
2025-03-30 18:50:26 +07:00
parent 5aaeb58d2b
commit ba3e71efe7
16 changed files with 1416 additions and 527 deletions

View File

@ -8,22 +8,25 @@ class PenerimaPenyaluranModel {
final String? statusPenerimaan;
final DateTime? tanggalPenerimaan;
final String? buktiPenerimaan;
final String? keterangan;
final double? jumlahBantuan;
final String? stokBantuanId;
final Map<String, dynamic>? warga; // Data warga yang terkait
final String? tandaTangan;
final bool? isUang; // Apakah bantuan berupa uang
final String? satuan; // Satuan bantuan
final String? qrCodeHash;
// Relasi data
final Map<String, dynamic>? warga; // Data warga yang terkait
final Map<String, dynamic>? stokBantuan; // Data stok bantuan
final Map<String, dynamic>? penyaluranBantuan; // Data penyaluran bantuan
final String? kategoriNama; // Nama kategori bantuan
final String? namaPenyaluran; // Nama penyaluran
final String? deskripsiPenyaluran; // Deskripsi penyaluran
final String? lokasiPenyaluranNama; // Nama lokasi penyaluran
final String? lokasiPenyaluranAlamat; // Alamat lokasi penyaluran
final String? qrCodeHash; // Hash untuk QR code
final String? statusPenyaluran; // Status penyaluran
// Properti turunan yang diambil dari relasi
final String? kategoriNama; // Nama kategori bantuan dari relasi
final String? namaPenyaluran; // Nama penyaluran dari relasi
final String? deskripsiPenyaluran; // Deskripsi penyaluran dari relasi
final String? lokasiPenyaluranNama; // Nama lokasi penyaluran dari relasi
final String? lokasiPenyaluranAlamat; // Alamat lokasi penyaluran dari relasi
final String? statusPenyaluran; // Status penyaluran dari relasi
final String? satuan; // Satuan dari relasi stok bantuan
final bool? isUang; // Flag is_uang dari relasi stok bantuan
PenerimaPenyaluranModel({
this.id,
@ -33,22 +36,23 @@ class PenerimaPenyaluranModel {
this.statusPenerimaan,
this.tanggalPenerimaan,
this.buktiPenerimaan,
this.keterangan,
this.jumlahBantuan,
this.stokBantuanId,
this.warga,
this.tandaTangan,
this.isUang,
this.satuan,
this.qrCodeHash,
// Relasi
this.warga,
this.stokBantuan,
this.penyaluranBantuan,
// Properti turunan
this.kategoriNama,
this.namaPenyaluran,
this.deskripsiPenyaluran,
this.lokasiPenyaluranNama,
this.lokasiPenyaluranAlamat,
this.qrCodeHash,
this.statusPenyaluran,
this.satuan,
this.isUang,
});
factory PenerimaPenyaluranModel.fromRawJson(String str) =>
@ -69,22 +73,23 @@ class PenerimaPenyaluranModel {
? DateTime.parse(json["tanggal_penerimaan"])
: null,
buktiPenerimaan: json["bukti_penerimaan"],
keterangan: json["keterangan"],
jumlahBantuan: json["jumlah_bantuan"]?.toDouble(),
stokBantuanId: json["stok_bantuan_id"],
warga: json["warga"],
tandaTangan: json["tanda_tangan"],
isUang: json["is_uang"],
satuan: json["satuan"],
qrCodeHash: json["qr_code_hash"],
// Relasi
warga: json["warga"],
stokBantuan: json["stok_bantuan"],
penyaluranBantuan: json["penyaluran_bantuan"],
// Properti turunan
kategoriNama: json["kategori_nama"],
namaPenyaluran: json["nama_penyaluran"],
deskripsiPenyaluran: json["deskripsi_penyaluran"],
lokasiPenyaluranNama: json["lokasi_penyaluran_nama"],
lokasiPenyaluranAlamat: json["lokasi_penyaluran_alamat"],
qrCodeHash: json["qr_code_hash"],
statusPenyaluran: json["status_penyaluran"],
satuan: json["satuan"] ?? json["stok_bantuan"]?["satuan"],
isUang: json["is_uang"] ?? json["stok_bantuan"]?["is_uang"],
);
Map<String, dynamic> toJson() => {
@ -95,21 +100,11 @@ class PenerimaPenyaluranModel {
"status_penerimaan": statusPenerimaan,
"tanggal_penerimaan": tanggalPenerimaan?.toIso8601String(),
"bukti_penerimaan": buktiPenerimaan,
"keterangan": keterangan,
"jumlah_bantuan": jumlahBantuan,
"stok_bantuan_id": stokBantuanId,
"warga": warga,
"tanda_tangan": tandaTangan,
"is_uang": isUang,
"satuan": satuan,
"stok_bantuan": stokBantuan,
"penyaluran_bantuan": penyaluranBantuan,
"kategori_nama": kategoriNama,
"nama_penyaluran": namaPenyaluran,
"deskripsi_penyaluran": deskripsiPenyaluran,
"lokasi_penyaluran_nama": lokasiPenyaluranNama,
"lokasi_penyaluran_alamat": lokasiPenyaluranAlamat,
"qr_code_hash": qrCodeHash,
"status_penyaluran": statusPenyaluran,
// Relasi tidak perlu disertakan dalam toJson karena
// biasanya hanya digunakan untuk serialisasi ke database
};
}