Tambahkan dukungan bantuan uang dan perhitungan total dana bantuan

- Perbarui model PenitipanBantuanModel dan StokBantuanModel dengan properti isUang
- Hapus field tanggal kadaluarsa dan tanggal masuk yang tidak digunakan
- Tambahkan metode _hitungTotalDanaBantuan() di StokBantuanController
- Perbarui tampilan untuk mendukung bantuan berbentuk uang
- Modifikasi form tambah/edit stok bantuan untuk menandai bantuan uang
- Tambahkan metode getPenitipanBantuanTerverifikasi() di SupabaseService
- Perbarui perhitungan total stok berdasarkan penitipan bantuan terverifikasi
This commit is contained in:
Khafidh Fuadi
2025-03-12 08:42:00 +07:00
parent 8a3b23d4ea
commit 8d5fb275e8
6 changed files with 469 additions and 345 deletions

View File

@ -15,12 +15,12 @@ class PenitipanBantuanModel {
final DateTime? tanggalVerifikasi;
final DateTime? createdAt;
final DateTime? updatedAt;
final DateTime? tanggalKadaluarsa;
final String? petugasDesaId;
final String? fotoBuktiSerahTerima;
final String? sumberBantuanId;
final DonaturModel? donatur;
final KategoriBantuanModel? kategoriBantuan;
final bool? isUang;
PenitipanBantuanModel({
this.id,
@ -35,12 +35,12 @@ class PenitipanBantuanModel {
this.tanggalVerifikasi,
this.createdAt,
this.updatedAt,
this.tanggalKadaluarsa,
this.petugasDesaId,
this.fotoBuktiSerahTerima,
this.sumberBantuanId,
this.donatur,
this.kategoriBantuan,
this.isUang,
});
factory PenitipanBantuanModel.fromRawJson(String str) =>
@ -72,9 +72,6 @@ class PenitipanBantuanModel {
updatedAt: json["updated_at"] != null
? DateTime.parse(json["updated_at"])
: null,
tanggalKadaluarsa: json["tanggal_kadaluarsa"] != null
? DateTime.parse(json["tanggal_kadaluarsa"])
: null,
petugasDesaId: json["petugas_desa_id"],
fotoBuktiSerahTerima: json["foto_bukti_serah_terima"],
sumberBantuanId: json["sumber_bantuan_id"],
@ -84,6 +81,7 @@ class PenitipanBantuanModel {
kategoriBantuan: json["kategori_bantuan"] != null
? KategoriBantuanModel.fromJson(json["kategori_bantuan"])
: null,
isUang: json["is_uang"] ?? false,
);
Map<String, dynamic> toJson() => {
@ -101,9 +99,9 @@ class PenitipanBantuanModel {
"tanggal_verifikasi": tanggalVerifikasi?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
"tanggal_kadaluarsa": tanggalKadaluarsa?.toIso8601String(),
"petugas_desa_id": petugasDesaId,
"foto_bukti_serah_terima": fotoBuktiSerahTerima,
"sumber_bantuan_id": sumberBantuanId,
"is_uang": isUang ?? false,
};
}

View File

@ -8,10 +8,9 @@ class StokBantuanModel {
final double? totalStok;
final String? satuan;
final String? deskripsi;
final DateTime? tanggalMasuk;
final DateTime? tanggalKadaluarsa;
final DateTime? createdAt;
final DateTime? updatedAt;
final bool? isUang;
StokBantuanModel({
this.id,
@ -21,10 +20,9 @@ class StokBantuanModel {
this.totalStok,
this.satuan,
this.deskripsi,
this.tanggalMasuk,
this.tanggalKadaluarsa,
this.createdAt,
this.updatedAt,
this.isUang,
});
factory StokBantuanModel.fromRawJson(String str) =>
@ -38,35 +36,27 @@ class StokBantuanModel {
nama: json["nama"],
kategoriBantuanId: json["kategori_bantuan_id"],
kategoriBantuan: json["kategori_bantuan"],
totalStok:
json["total_stok"] != null ? json["total_stok"].toDouble() : 0.0,
totalStok: 0.0,
satuan: json["satuan"],
deskripsi: json["deskripsi"],
tanggalMasuk: json["tanggal_masuk"] != null
? DateTime.parse(json["tanggal_masuk"])
: null,
tanggalKadaluarsa: json["tanggal_kadaluarsa"] != null
? DateTime.parse(json["tanggal_kadaluarsa"])
: null,
createdAt: json["created_at"] != null
? DateTime.parse(json["created_at"])
: null,
updatedAt: json["updated_at"] != null
? DateTime.parse(json["updated_at"])
: null,
isUang: json["is_uang"] ?? false,
);
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = {
"nama": nama,
"kategori_bantuan_id": kategoriBantuanId,
"total_stok": totalStok,
"satuan": satuan,
"deskripsi": deskripsi,
"tanggal_masuk": tanggalMasuk?.toIso8601String(),
"tanggal_kadaluarsa": tanggalKadaluarsa?.toIso8601String(),
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
"is_uang": isUang ?? false,
};
// Tambahkan id hanya jika tidak null