diff --git a/Controllers/DataPendampingRwController.cs b/Controllers/DataPendampingRwController.cs index cc840f8..46e74ed 100644 --- a/Controllers/DataPendampingRwController.cs +++ b/Controllers/DataPendampingRwController.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using System.Linq; namespace BpsRwApp.Controllers { @@ -13,296 +14,138 @@ namespace BpsRwApp.Controllers [HttpGet] public IActionResult TableRapot() { - var data = new[] - { - new { - nama = "Risky Adi Putra", - checklist = "
10
", - berat_sampah = "
10
", - foto = "10", - rumah_aktif_memilah = "
0
", - status = "
Sangat Baik
", - }, - new { - nama = "Sulaiman", - checklist = "
11
", - berat_sampah = "
10
", - foto = "889", - rumah_aktif_memilah = "
11
", - status = "
Baik
", - }, - new { - nama = "Siti Nurhaliza", - checklist = "
12
", - berat_sampah = "
10
", - foto = "22", - rumah_aktif_memilah = "
0
", - status = "
Baik
", - }, - new { - nama = "Budi Santoso", - checklist = "
18
", - berat_sampah = "
1
", - foto = "889", - rumah_aktif_memilah = "
11
", - status = "
Baik
", - }, - new { - nama = "Dewi Lestari", - checklist = "
1
", - berat_sampah = "
10
", - foto = "22", - rumah_aktif_memilah = "
10
", - status = "
Baik
", - }, - new { - nama = "Andi Prabowo", - checklist = "
17
", - berat_sampah = "
11
", - foto = "889", - rumah_aktif_memilah = "
11
", - status = "
Sangat Baik
", - }, - new { - nama = "Nina Sari", - checklist = "
15
", - berat_sampah = "
10
", - foto = "22", - rumah_aktif_memilah = "
10
", - status = "
Sengat Baik
", - }, - new { - nama = "Hendra Wijaya", - checklist = "
1
", - berat_sampah = "
11
", - foto = "889", - rumah_aktif_memilah = "
11
", - status = "
Sangat Baik
", - }, - new { - nama = "Lina Marlina", - checklist = "
12
", - berat_sampah = "
10
", - foto = "22", - rumah_aktif_memilah = "
10
", - status = "
Sangat Baik
", - }, - new { - nama = "Yudi Hartono", - checklist = "
16
", - berat_sampah = "
11
", - foto = "889", - rumah_aktif_memilah = "
11
", - status = "
Sangat Baik
", - }, - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length]; + var checklistCount = 8 + (index % 15); + var totalBeratSampah = 40 + (index * 3 % 70); + var fotoCount = 5 + (index * 4 % 250); + var rumahAktif = (index * 3) % 15; - var response = new - { - data = data - }; + return new + { + nama, + checklist = BuildMetricBadge(checklistCount, 8, 12), + berat_sampah = BuildMetricBadge(totalBeratSampah, 50, 90), + foto = BuildFotoIndicator(fotoCount), + rumah_aktif_memilah = BuildMetricBadge(rumahAktif, 3, 9), + status = BuildStatusBadge(index), + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } [HttpGet] public IActionResult TableChecklist() { - var data = new[] - { - new { - nama = "Risky Adi Putra", - checklist = "
10
", - foto = "10", - rumah_aktif_memilah = "
0/12
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Sulaiman", - checklist = "
11
", - foto = "889", - rumah_aktif_memilah = "
11/11
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Siti Nurhaliza", - checklist = "
12
", - foto = "22", - rumah_aktif_memilah = "
0/10
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Budi Santoso", - checklist = "
18
", - foto = "889", - rumah_aktif_memilah = "
11/11
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Dewi Lestari", - checklist = "
1
", - foto = "22", - rumah_aktif_memilah = "
10/10
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Andi Prabowo", - checklist = "
17
", - foto = "889", - rumah_aktif_memilah = "
11/11
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Nina Sari", - checklist = "
15
", - foto = "22", - rumah_aktif_memilah = "
10/10
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Hendra Wijaya", - checklist = "
1
", - foto = "889", - rumah_aktif_memilah = "
11/11
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Lina Marlina", - checklist = "
12
", - foto = "22", - rumah_aktif_memilah = "
10/10
", - aksi = "
" + - "Detail" + - "
", - }, - new { - nama = "Yudi Hartono", - checklist = "
16
", - foto = "889", - rumah_aktif_memilah = "
11/11
", - aksi = "
" + - "Detail" + - "
", - }, - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length]; + var checklistCount = 9 + (index % 18); + var fotoCount = 3 + (index * 2 % 180); + var targetRumah = 8 + (index % 10); + var rumahAktif = targetRumah - (index % 5); + if (rumahAktif < 0) + { + rumahAktif = 0; + } - var response = new - { - data = data - }; + return new + { + nama, + checklist = BuildMetricBadge(checklistCount, 10, 15), + foto = BuildFotoIndicator(fotoCount), + rumah_aktif_memilah = BuildRatioBadge(rumahAktif, targetRumah), + aksi = BuildDetailAction(), + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } [HttpGet] public IActionResult TableBeratSampah() { - var data = new[] - { - new { - nama = "Risky Adi Putra", - total_berat = 104, - mudah_terurai = 104, - material_daur_ulang = 104, - b3 = 104, - residu = 104, - }, - new { - nama = "Sulaiman", - total_berat = 67, - mudah_terurai = 67, - material_daur_ulang = 67, - b3 = 67, - residu = 67, - }, - new { - nama = "Siti Nurhaliza", - total_berat = 110, - mudah_terurai = 110, - material_daur_ulang = 110, - b3 = 110, - residu = 110, - }, - new { - nama = "Budi Santoso", - total_berat = 88, - mudah_terurai = 88, - material_daur_ulang = 88, - b3 = 88, - residu = 88, - }, - new { - nama = "Dewi Lestari", - total_berat = 90, - mudah_terurai = 90, - material_daur_ulang = 90, - b3 = 90, - residu = 90, - }, - new { - nama = "Andi Prabowo", - total_berat = 72, - mudah_terurai = 72, - material_daur_ulang = 72, - b3 = 72, - residu = 72, - }, - new { - nama = "Nina Sari", - total_berat = 81, - mudah_terurai = 81, - material_daur_ulang = 81, - b3 = 81, - residu = 81, - }, - new { - nama = "Hendra Wijaya", - total_berat = 65, - mudah_terurai = 65, - material_daur_ulang = 65, - b3 = 65, - residu = 65, - }, - new { - nama = "Lina Marlina", - total_berat = 78, - mudah_terurai = 78, - material_daur_ulang = 78, - b3 = 78, - residu = 78, - }, - new { - nama = "Yudi Hartono", - total_berat = 95, - mudah_terurai = 95, - material_daur_ulang = 95, - b3 = 95, - residu = 95, - }, - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var nama = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length]; + var mudahTerurai = 40 + (index * 2 % 80); + var materialDaurUlang = 25 + (index * 3 % 60); + var b3 = 5 + index % 7; + var residu = 10 + index % 9; + var totalBerat = mudahTerurai + materialDaurUlang + b3 + residu; - var response = new - { - data = data - }; + return new + { + nama, + total_berat = totalBerat, + mudah_terurai = mudahTerurai, + material_daur_ulang = materialDaurUlang, + b3, + residu, + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } + + private static string BuildMetricBadge(int value, int warningThreshold, int successThreshold) + { + string tone; + if (value <= 0) + { + tone = "error"; + } + else if (value < warningThreshold) + { + tone = "warning"; + } + else if (value < successThreshold) + { + tone = "info"; + } + else + { + tone = "success"; + } + + return BuildBadge(value.ToString(), tone); + } + + private static string BuildRatioBadge(int achieved, int target) + { + var tone = achieved <= 0 ? "error" : achieved < target ? "warning" : "success"; + return BuildBadge($"{achieved}/{target}", tone); + } + + private static string BuildBadge(string label, string tone) => + $"
{label}
"; + + private static string BuildFotoIndicator(int totalFoto) => + "" + totalFoto; + + private static string BuildStatusBadge(int index) + { + var status = (index % 3) switch + { + 0 => ("Sangat Baik", "info"), + 1 => ("Baik", "success"), + _ => ("Perlu Pendampingan", "warning") + }; + + return $"
{status.Item1}
"; + } + + private static string BuildDetailAction() => + "
" + + "Detail" + + "
"; } } diff --git a/Controllers/ProfilRwController.cs b/Controllers/ProfilRwController.cs index d2d1a3a..0f4b512 100644 --- a/Controllers/ProfilRwController.cs +++ b/Controllers/ProfilRwController.cs @@ -1,106 +1,67 @@ using BpsRwApp.Models.ProfilRw; using Microsoft.AspNetCore.Mvc; -using System.Collections.Generic; -using System.Linq; namespace BpsRwApp.Controllers { public class ProfilRwController : AppControllerBase { - private static readonly List SampleAlatPengumpul = new() + private static readonly string[][] JadwalCombinations = { - new AlatPengumpulSampahViewModel - { - Id = 1, - Kelurahan = "Kelurahan Cililitan", - Rw = "005", - Rt = "003", - GerobakDorong = 1, - GerobakMotor = 2, - MobilPickup = 1, - Truk = 1, - Dustbin = 4, - Container = 1, - Landasan = 2, - JenisPetugas = "Petugas Harian Lepas", - NamaPetugas = "Taufik Hidayat", - Jadwal = new List { "Senin", "Rabu", "Jumat" }, - TpsTujuan = "TPS Jakarta Timur" - }, - new AlatPengumpulSampahViewModel - { - Id = 2, - Kelurahan = "Kelurahan Rawamangun", - Rw = "004", - Rt = "002", - GerobakDorong = 2, - GerobakMotor = 3, - MobilPickup = 1, - Truk = 0, - Dustbin = 3, - Container = 1, - Landasan = 1, - JenisPetugas = "DLH", - NamaPetugas = "Bambang Wijaya", - Jadwal = new List { "Selasa", "Kamis", "Sabtu" }, - TpsTujuan = "TPS Cililitan" - }, - new AlatPengumpulSampahViewModel - { - Id = 3, - Kelurahan = "Kelurahan Duren Sawit", - Rw = "003", - Rt = "005", - GerobakDorong = 1, - GerobakMotor = 1, - MobilPickup = 0, - Truk = 1, - Dustbin = 5, - Container = 2, - Landasan = 2, - JenisPetugas = "Swadaya Warga", - NamaPetugas = "Rini Setiawan", - Jadwal = new List { "Senin", "Rabu", "Jumat" }, - TpsTujuan = "TPS Duren Sawit" - }, - new AlatPengumpulSampahViewModel - { - Id = 4, - Kelurahan = "Kelurahan Balekambang", - Rw = "002", - Rt = "001", - GerobakDorong = 2, - GerobakMotor = 1, - MobilPickup = 1, - Truk = 1, - Dustbin = 2, - Container = 1, - Landasan = 1, - JenisPetugas = "Kader Lingkungan", - NamaPetugas = "Eko Nugroho", - Jadwal = new List { "Selasa", "Kamis" }, - TpsTujuan = "TPS Kampung Melayu" - }, - new AlatPengumpulSampahViewModel - { - Id = 5, - Kelurahan = "Kelurahan Pondok Bambu", - Rw = "001", - Rt = "007", - GerobakDorong = 3, - GerobakMotor = 2, - MobilPickup = 2, - Truk = 1, - Dustbin = 6, - Container = 2, - Landasan = 3, - JenisPetugas = "Petugas Harian Lepas", - NamaPetugas = "Ratna Sari", - Jadwal = new List { "Rabu", "Jumat", "Minggu" }, - TpsTujuan = "TPS Pondok Bambu" - } + new[] { "Senin", "Rabu", "Jumat" }, + new[] { "Selasa", "Kamis" }, + new[] { "Sabtu", "Minggu" }, + new[] { "Senin", "Selasa", "Kamis" }, + new[] { "Rabu", "Jumat" } }; + private static readonly string[] JenisPetugasOptions = + { + "Petugas Harian Lepas", + "DLH", + "Swadaya Warga", + "Kader Lingkungan", + "Relawan" + }; + + private static readonly string[] TpsOptions = + { + "TPS Jakarta Timur", + "TPS Cililitan", + "TPS Duren Sawit", + "TPS Kampung Melayu", + "TPS Pondok Bambu", + "TPS Pulogadung" + }; + + private static readonly List SampleAlatPengumpul = + Enumerable.Range(1, 100) + .Select(index => + { + var wilayah = ControllerSampleData.WilayahSeeds[index % ControllerSampleData.WilayahSeeds.Length]; + var namaPetugas = ControllerSampleData.PersonNames[index % ControllerSampleData.PersonNames.Length]; + var jadwal = JadwalCombinations[index % JadwalCombinations.Length]; + + return new AlatPengumpulSampahViewModel + { + Id = index, + Kelurahan = $"Kelurahan {wilayah.Kelurahan}", + Rw = ((index % 15) + 1).ToString("D3"), + Rt = ((index % 20) + 1).ToString("D3"), + GerobakDorong = 1 + (index % 4), + GerobakMotor = 1 + (index % 3), + MobilPickup = index % 2, + Truk = index % 3 == 0 ? 1 : 0, + Dustbin = 4 + (index % 5), + Container = 1 + (index % 2), + Landasan = 1 + (index % 3), + JenisPetugas = JenisPetugasOptions[index % JenisPetugasOptions.Length], + NamaPetugas = namaPetugas, + Jadwal = jadwal.ToList(), + TpsTujuan = TpsOptions[index % TpsOptions.Length] + }; + }) + .ToList(); + public IActionResult Index() { return View(); @@ -109,411 +70,141 @@ namespace BpsRwApp.Controllers [HttpGet] public IActionResult TableLokasi() { - var data = new[] - { - new { - usulan = "Lokasi G", - alamat = "Perumahan Mawar Indah", - statusLahan = "Inventaris", - pemilikLahan = "Larasati Wulandari", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi I", - alamat = "Jl. Bougenville, RT 02", - statusLahan = "Inventaris", - pemilikLahan = "Arya Dwipangga", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi F", - alamat = "Lingk. Edelweiss, No. 7", - statusLahan = "Inventaris", - pemilikLahan = "Kirana Lazuardi", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi C", - alamat = "Jl. Anggrek No. 14", - statusLahan = "Inventaris", - pemilikLahan = "Bagas Priambodo", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi B", - alamat = "Jl. Tulip, Kel. Gardenia", - statusLahan = "Inventaris", - pemilikLahan = "Raisa Adiwangsa", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi E", - alamat = "Jl. Lavender, RT 09", - statusLahan = "Inventaris", - pemilikLahan = "Satria Gunawan", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi A", - alamat = "Komp. Melati, No. 22", - statusLahan = "Inventaris", - pemilikLahan = "Kartika Hastuti", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi D", - alamat = "Gg. Dahlia, RT 05", - statusLahan = "Inventaris", - pemilikLahan = "Bayu Anggoro", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi H", - alamat = "Ds. Cempaka, Kab. Anyer", - statusLahan = "Inventaris", - pemilikLahan = "Citra Kirani", - luasLahan = 500, - statusUsulan = "Aktif" - }, - new { - usulan = "Lokasi J", - alamat = "Jl. Kenanga, Blok C", - statusLahan = "Inventaris", - pemilikLahan = "Galih Prasetya", - luasLahan = 500, - statusUsulan = "Aktif" - }, - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var wilayah = ControllerSampleData.WilayahSeeds[index % ControllerSampleData.WilayahSeeds.Length]; + var street = ControllerSampleData.StreetNames[index % ControllerSampleData.StreetNames.Length]; + var pemilik = ControllerSampleData.PersonNames[(index + 3) % ControllerSampleData.PersonNames.Length]; + var luas = 300 + (index * 11 % 900); + var statusLahan = (index % 3) switch + { + 0 => "Inventaris", + 1 => "Sewa", + _ => "Milik Warga" + }; - var response = new - { - data = data - }; + return new + { + id = index + 1, + usulan = $"Lokasi {index + 1:000}", + alamat = ControllerSampleData.FormatAlamat(wilayah, street, 5 + index), + statusLahan, + pemilikLahan = pemilik, + luasLahan = $"{luas} m²", + statusUsulan = BuildLokasiStatusBadge(index), + aksi = BuildLokasiActionButtons(index + 1) + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } [HttpGet] public IActionResult TableSuratUsulan() { - var data = new[] + var namaSuratTemplates = new[] { - new { - nama_surat = "Surat Permohonan Perbaikan Jalan Lingkungan", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 7, 11)), - file_upload = "Surat Pengantar Proposal", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Rekomendasi untuk Pengajuan Kredit UMKM", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 1, 9)), - file_upload = "Surat Undangan Rapat Warga", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Pernyataan Persetujuan Pembangunan Pos Kamling", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 21)), - file_upload = "Surat Pemberitahuan Gotong Royong", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Keterangan Tidak Mampu untuk Berobat", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 2, 17)), - file_upload = "Surat Keputusan Ketua RW", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Laporan Keuangan RW Triwulan II 2023", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 8, 18)), - file_upload = "Surat Edaran Kebersihan", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Keputusan RW tentang Jadwal Ronda Malam", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 5, 14)), - file_upload = "Surat Rekomendasi Usaha", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Pemberitahuan Kerja Bakti Rutin", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 6, 2)), - file_upload = "Laporan Kegiatan RW", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Edaran tentang Pembayaran Iuran Sampah", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 6, 22)), - file_upload = "Surat Keterangan Domisili", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Pengantar untuk Pembuatan KTP", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 3, 1)), - file_upload = "Surat Permohonan Bantuan Dana", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - nama_surat = "Surat Undangan Pertemuan Rutin PKK", - tanggal_surat = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 28)), - file_upload = "Surat Pernyataan Kesanggupan", - status = "
Aktif
", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, + "Surat Permohonan Perbaikan Jalan Lingkungan", + "Surat Rekomendasi Pengajuan Kredit UMKM", + "Surat Pernyataan Persetujuan Pembangunan Pos Kamling", + "Surat Keterangan Tidak Mampu untuk Berobat", + "Laporan Keuangan RW Triwulan", + "Surat Keputusan Jadwal Ronda Malam", + "Surat Pemberitahuan Kerja Bakti Rutin", + "Surat Edaran Pembayaran Iuran Sampah", + "Surat Pengantar Pembuatan KTP", + "Surat Undangan Pertemuan PKK" }; - var response = new + var fileTemplates = new[] { - data = data + "Surat Pengantar Proposal", + "Surat Undangan Rapat Warga", + "Surat Pemberitahuan Gotong Royong", + "Surat Keputusan Ketua RW", + "Surat Edaran Kebersihan", + "Surat Rekomendasi Usaha", + "Laporan Kegiatan RW", + "Surat Keterangan Domisili", + "Surat Permohonan Bantuan Dana", + "Surat Pernyataan Kesanggupan" }; - return Json(response); + var startDate = new DateTime(2023, 1, 1); + + var data = Enumerable.Range(0, 100) + .Select(index => + { + var namaSurat = namaSuratTemplates[index % namaSuratTemplates.Length]; + var fileUpload = fileTemplates[(index + 3) % fileTemplates.Length]; + var status = (index % 5) switch + { + 0 => BuildStatusPill("Menunggu", "warning"), + 1 => BuildStatusPill("Ditinjau", "info"), + _ => BuildStatusPill("Aktif", "success") + }; + + return new + { + id = index + 1, + nama_surat = namaSurat, + tanggal_surat = ControllerSampleData.FormatTanggal(startDate.AddDays(index * 2)), + file_upload = fileUpload, + status, + aksi = BuildCrudActionButtons(index + 1) + }; + }) + .ToArray(); + + return Json(new { data }); } [HttpGet] public IActionResult TablePengadaanWadah() { - var data = new[] - { - new { - rt = "001", - jumlah_kepala_keluarga = "11", - total_wadah_unit = "07", - status = "
Aktif
", - }, - new { - rt = "002", - jumlah_kepala_keluarga = "09", - total_wadah_unit = "01", - status = "
Aktif
", - }, - new { - rt = "003", - jumlah_kepala_keluarga = "21", - total_wadah_unit = "04", - status = "
Aktif
", - }, - new { - rt = "004", - jumlah_kepala_keluarga = "17", - total_wadah_unit = "02", - status = "
Aktif
", - }, - new { - rt = "005", - jumlah_kepala_keluarga = "18", - total_wadah_unit = "08", - status = "
Aktif
", - }, - new { - rt = "006", - jumlah_kepala_keluarga = "14", - total_wadah_unit = "05", - status = "
Aktif
", - }, - new { - rt = "007", - jumlah_kepala_keluarga = "02", - total_wadah_unit = "06", - status = "
Aktif
", - }, - new { - rt = "008", - jumlah_kepala_keluarga = "22", - total_wadah_unit = "06", - status = "
Aktif
", - }, - new { - rt = "009", - jumlah_kepala_keluarga = "01", - total_wadah_unit = "03", - status = "
Aktif
", - }, - new { - rt = "010", - jumlah_kepala_keluarga = "28", - total_wadah_unit = "04", - status = "
Aktif
", - }, - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var jumlahKk = 40 + (index * 5 % 200); + var totalWadah = 4 + (index % 12); + var status = index % 7 == 0 + ? BuildStatusPill("Menunggu", "warning") + : BuildStatusPill("Aktif", "success"); - var response = new - { - data = data - }; + return new + { + rt = ((index % 25) + 1).ToString("D3"), + jumlah_kepala_keluarga = jumlahKk.ToString("D2"), + total_wadah_unit = totalWadah.ToString("D2"), + status + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } - [HttpGet] public IActionResult TableKebutuhanSarpras() { - var data = new[] - { - new { - rt = "001", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 11)), - jumlah_unit = "507", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "002", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 9)), - jumlah_unit = "501", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "003", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 21)), - jumlah_unit = "504", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "004", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 17)), - jumlah_unit = "502", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "005", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 18)), - jumlah_unit = "508", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "006", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 14)), - jumlah_unit = "505", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "007", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 2)), - jumlah_unit = "506", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "008", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 22)), - jumlah_unit = "506", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "009", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 1)), - jumlah_unit = "503", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - new { - rt = "010", - tanggal = ControllerSampleData.FormatTanggal(new DateTime(2023, 4, 28)), - jumlah_unit = "504", - aksi = "
" + - "Detail" + - "Edit" + - "Delete" + - "
" - }, - }; + var startDate = new DateTime(2023, 4, 1); - var response = new - { - data = data - }; + var data = Enumerable.Range(0, 100) + .Select(index => + { + var jumlahUnit = 480 + (index * 7 % 120); + return new + { + rt = ((index % 40) + 1).ToString("D3"), + tanggal = ControllerSampleData.FormatTanggal(startDate.AddDays(index)), + jumlah_unit = jumlahUnit.ToString(), + aksi = BuildCrudActionButtons(index + 1) + }; + }) + .ToArray(); - return Json(response); + return Json(new { data }); } [HttpGet] @@ -590,6 +281,31 @@ namespace BpsRwApp.Controllers return Json(new { data }); } + private static string BuildLokasiStatusBadge(int index) + { + var statuses = new[] + { + ("Aktif", "success"), + ("Dalam Review", "warning"), + ("Tidak Aktif", "error") + }; + + var status = statuses[index % statuses.Length]; + return $"{status.Item1}"; + } + + private static string BuildLokasiActionButtons(int id) => BuildCrudActionButtons(id); + + private static string BuildStatusPill(string label, string tone) => + $"
{label}
"; + + private static string BuildCrudActionButtons(int id) => + "
" + + $"" + + $"" + + $"" + + "
"; + [HttpGet] public IActionResult DetailAlatPengumpulSampah(int id) { diff --git a/Views/ProfilRw/Index.cshtml b/Views/ProfilRw/Index.cshtml index b57cdbd..32e02a4 100644 --- a/Views/ProfilRw/Index.cshtml +++ b/Views/ProfilRw/Index.cshtml @@ -82,21 +82,8 @@ { data: 'statusLahan' }, { data: 'pemilikLahan' }, { data: 'luasLahan' }, - { - data: 'statusUsulan', - render: (data) => `${data}` - }, - { - data: null, - className: "text-center", - render: (data, type, row) => `
` + - `` + - `` + - `` + - `
`, - orderable: false, - searchable: false - } + { data: 'statusUsulan', className: "text-center", orderable: false, searchable: false }, + { data: 'aksi', className: "text-center", orderable: false, searchable: false } ] });