Perbarui model PenyaluranBantuan dan tampilan terkait untuk mendukung kategori bantuan dan informasi tambahan
- Ganti properti 'judul' menjadi 'nama' di model PenyaluranBantuanModel - Tambahkan properti baru: kategoriBantuanId, tanggalPermintaan, jumlahPenerima, dan skemaId - Perbarui tampilan JadwalSectionWidget dan PermintaanPenjadwalanSummaryWidget untuk menggunakan PenyaluranBantuanModel - Tambahkan format tanggal dan waktu di tampilan - Perbarui controller untuk memuat data lokasi penyaluran dan kategori bantuan
This commit is contained in:
@ -10,50 +10,65 @@ class PenyaluranView extends GetView<JadwalPenyaluranController> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Ringkasan jadwal
|
||||
_buildJadwalSummary(context),
|
||||
return RefreshIndicator(
|
||||
onRefresh: () => controller.refreshData(),
|
||||
child: SingleChildScrollView(
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Obx(() {
|
||||
if (controller.isLoading.value) {
|
||||
return const Center(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(32.0),
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
const SizedBox(height: 20),
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Ringkasan jadwal
|
||||
_buildJadwalSummary(context),
|
||||
|
||||
// Ringkasan Permintaan Penjadwalan
|
||||
PermintaanPenjadwalanSummaryWidget(controller: controller),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
const SizedBox(height: 20),
|
||||
// Ringkasan Permintaan Penjadwalan
|
||||
PermintaanPenjadwalanSummaryWidget(controller: controller),
|
||||
|
||||
// Jadwal hari ini
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Hari Ini',
|
||||
jadwalList: controller.jadwalHariIni,
|
||||
status: 'Aktif',
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
const SizedBox(height: 20),
|
||||
// Jadwal hari ini
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Hari Ini',
|
||||
jadwalList: controller.jadwalHariIni,
|
||||
status: 'Aktif',
|
||||
),
|
||||
|
||||
// Jadwal mendatang
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Mendatang',
|
||||
jadwalList: controller.jadwalMendatang,
|
||||
status: 'Terjadwal',
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
const SizedBox(height: 20),
|
||||
// Jadwal mendatang
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Mendatang',
|
||||
jadwalList: controller.jadwalMendatang,
|
||||
status: 'Terjadwal',
|
||||
),
|
||||
|
||||
// Jadwal selesai
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Selesai',
|
||||
jadwalList: controller.jadwalSelesai,
|
||||
status: 'Selesai',
|
||||
),
|
||||
],
|
||||
const SizedBox(height: 20),
|
||||
|
||||
// Jadwal selesai
|
||||
JadwalSectionWidget(
|
||||
controller: controller,
|
||||
title: 'Selesai',
|
||||
jadwalList: controller.jadwalSelesai,
|
||||
status: 'Selesai',
|
||||
),
|
||||
],
|
||||
);
|
||||
}),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
@ -237,7 +237,8 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildPermintaanItem(BuildContext context, PenyaluranBantuanModel item) {
|
||||
Widget _buildPermintaanItem(
|
||||
BuildContext context, PenyaluranBantuanModel item) {
|
||||
Color statusColor = Colors.orange;
|
||||
IconData statusIcon = Icons.pending_actions;
|
||||
|
||||
@ -266,7 +267,7 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
item.judul ?? '',
|
||||
item.nama ?? '',
|
||||
style: Theme.of(context).textTheme.titleMedium?.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@ -317,7 +318,7 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
context,
|
||||
icon: Icons.category,
|
||||
label: 'Jenis Bantuan',
|
||||
value: item.judul ?? '',
|
||||
value: item.nama ?? '',
|
||||
),
|
||||
),
|
||||
],
|
||||
@ -429,7 +430,7 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
return DropdownMenuItem<String>(
|
||||
value: jadwal.id,
|
||||
child: Text(
|
||||
'${jadwal.tanggalPenjadwalan?.toString().substring(0, 10) ?? ''} - ${jadwal.lokasiPenyaluranId ?? ''} (${jadwal.judul ?? ''})'),
|
||||
'${jadwal.tanggalPenjadwalan?.toString().substring(0, 10) ?? ''} - ${jadwal.lokasiPenyaluranId ?? ''} (${jadwal.nama ?? ''})'),
|
||||
);
|
||||
}).toList();
|
||||
|
||||
@ -449,7 +450,7 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Anda akan mengkonfirmasi permintaan penjadwalan dari ${permintaan.judul ?? 'Penerima'}.'),
|
||||
'Anda akan mengkonfirmasi permintaan penjadwalan dari ${permintaan.nama ?? 'Penerima'}.'),
|
||||
const SizedBox(height: 16),
|
||||
const Text('Pilih jadwal penyaluran:'),
|
||||
const SizedBox(height: 8),
|
||||
@ -519,7 +520,7 @@ class PermintaanPenjadwalanView extends GetView<JadwalPenyaluranController> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Anda akan menolak permintaan penjadwalan dari ${permintaan.judul ?? 'Penerima'}.'),
|
||||
'Anda akan menolak permintaan penjadwalan dari ${permintaan.nama ?? 'Penerima'}.'),
|
||||
const SizedBox(height: 16),
|
||||
const Text('Alasan penolakan:'),
|
||||
const SizedBox(height: 8),
|
||||
|
Reference in New Issue
Block a user