Perbarui model dan tampilan untuk mendukung penyaluran baru

- Hapus properti tanggalPenjadwalan dari model PenyaluranBantuanModel
- Ganti referensi tanggalPenjadwalan dengan createdAt di tampilan PermintaanPenjadwalanWidget dan PermintaanPenjadwalanView
- Tambahkan fungsi baru untuk menambahkan penyaluran di JadwalPenyaluranController
- Tambahkan rute dan tampilan untuk menambah penyaluran di aplikasi
- Perbarui SupabaseService untuk menyimpan data penyaluran baru ke database
This commit is contained in:
Khafidh Fuadi
2025-03-14 21:29:32 +07:00
parent 7c94b85434
commit ecc1ccac59
11 changed files with 592 additions and 34 deletions

View File

@ -0,0 +1,60 @@
import 'dart:convert';
enum StatusKelayakan { pending, disetujui, ditolak }
class PengajuanKelayakanBantuanModel {
final String? id;
final String? buktiKelayakan;
final String? alasanVerifikasi;
final DateTime? createdAt;
final DateTime? updatedAt;
final String? skemaBantuanId;
final String? wargaId;
final StatusKelayakan? status;
PengajuanKelayakanBantuanModel({
this.id,
this.buktiKelayakan,
this.alasanVerifikasi,
this.createdAt,
this.updatedAt,
this.skemaBantuanId,
this.wargaId,
this.status,
});
factory PengajuanKelayakanBantuanModel.fromRawJson(String str) =>
PengajuanKelayakanBantuanModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory PengajuanKelayakanBantuanModel.fromJson(Map<String, dynamic> json) =>
PengajuanKelayakanBantuanModel(
id: json["id"],
buktiKelayakan: json["bukti_kelayakan"],
alasanVerifikasi: json["alasan_verifikasi"],
createdAt: json["created_at"] != null
? DateTime.parse(json["created_at"])
: null,
updatedAt: json["updated_at"] != null
? DateTime.parse(json["updated_at"])
: null,
skemaBantuanId: json["skema_bantuan_id"],
wargaId: json["warga_id"],
status: json["status"] != null
? StatusKelayakan.values.firstWhere(
(e) => e.toString() == 'StatusKelayakan.${json["status"]}')
: null,
);
Map<String, dynamic> toJson() => {
"id": id,
"bukti_kelayakan": buktiKelayakan,
"alasan_verifikasi": alasanVerifikasi,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
"skema_bantuan_id": skemaBantuanId,
"warga_id": wargaId,
"status": status?.toString().split('.').last,
};
}

View File

@ -8,7 +8,6 @@ class PenyaluranBantuanModel {
final String? petugasId;
final String? status;
final String? alasanPenolakan;
final DateTime? tanggalPenjadwalan;
final DateTime? tanggalPenyaluran;
final String? kategoriBantuanId;
final DateTime? tanggalPermintaan;
@ -25,7 +24,6 @@ class PenyaluranBantuanModel {
this.petugasId,
this.status,
this.alasanPenolakan,
this.tanggalPenjadwalan,
this.tanggalPenyaluran,
this.kategoriBantuanId,
this.tanggalPermintaan,
@ -49,9 +47,6 @@ class PenyaluranBantuanModel {
petugasId: json["petugas_id"],
status: json["status"],
alasanPenolakan: json["alasan_penolakan"],
tanggalPenjadwalan: json["tanggal_penjadwalan"] != null
? DateTime.parse(json["tanggal_penjadwalan"]).toUtc()
: null,
tanggalPenyaluran: json["tanggal_penyaluran"] != null
? DateTime.parse(json["tanggal_penyaluran"]).toUtc()
: null,
@ -77,7 +72,6 @@ class PenyaluranBantuanModel {
"petugas_id": petugasId,
"status": status,
"alasan_penolakan": alasanPenolakan,
"tanggal_penjadwalan": tanggalPenjadwalan?.toUtc().toIso8601String(),
"tanggal_penyaluran": tanggalPenyaluran?.toUtc().toIso8601String(),
"kategori_bantuan_id": kategoriBantuanId,
"tanggal_permintaan": tanggalPermintaan?.toUtc().toIso8601String(),

View File

@ -0,0 +1,63 @@
import 'dart:convert';
class SkemaBantuanModel {
final String? id;
final int? petugasVerifikasiId;
final String? nama;
final String? deskripsi;
final int? kuota;
final String? kriteria;
final DateTime? createdAt;
final DateTime? updatedAt;
final String? stokBantuanId;
final String? kategoriBantuanId;
SkemaBantuanModel({
this.id,
this.petugasVerifikasiId,
this.nama,
this.deskripsi,
this.kuota,
this.kriteria,
this.createdAt,
this.updatedAt,
this.stokBantuanId,
this.kategoriBantuanId,
});
factory SkemaBantuanModel.fromRawJson(String str) =>
SkemaBantuanModel.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory SkemaBantuanModel.fromJson(Map<String, dynamic> json) =>
SkemaBantuanModel(
id: json["id"],
petugasVerifikasiId: json["petugas_verifikasi_id"],
nama: json["nama"],
deskripsi: json["deskripsi"],
kuota: json["kuota"],
kriteria: json["kriteria"],
createdAt: json["created_at"] != null
? DateTime.parse(json["created_at"])
: null,
updatedAt: json["updated_at"] != null
? DateTime.parse(json["updated_at"])
: null,
stokBantuanId: json["stok_bantuan_id"],
kategoriBantuanId: json["kategori_bantuan_id"],
);
Map<String, dynamic> toJson() => {
"id": id,
"petugas_verifikasi_id": petugasVerifikasiId,
"nama": nama,
"deskripsi": deskripsi,
"kuota": kuota,
"kriteria": kriteria,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
"stok_bantuan_id": stokBantuanId,
"kategori_bantuan_id": kategoriBantuanId,
};
}