Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions app/Enums/StatusKelengkapanPresisiEnum.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?php

/*
*
* File ini bagian dari:
*
* OpenKab
*
* Sistem informasi desa sumber terbuka untuk memajukan desa
*
* Aplikasi dan source code ini dirilis berdasarkan lisensi GPL V3
*
* Hak Cipta 2009 - 2015 Combine Resource Institution (http://lumbungkomunitas.net/)
* Hak Cipta 2016 - 2025 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
*
* Dengan ini diberikan izin, secara gratis, kepada siapa pun yang mendapatkan salinan
* dari perangkat lunak ini dan file dokumentasi terkait ("Aplikasi Ini"), untuk diperlakukan
* tanpa batasan, termasuk hak untuk menggunakan, menyalin, mengubah dan/atau mendistribusikan,
* asal tunduk pada syarat berikut:
*
* Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam
* setiap salinan atau bagian penting Aplikasi Ini. Barang siapa yang menghapus atau menghilangkan
* pemberitahuan ini melanggar ketentuan lisensi Aplikasi Ini.
*
* PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, BAIK TERSURAT MAUPUN
* TERSIRAT. PENULIS ATAU PEMEGANG HAK CIPTA SAMA SEKALI TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU
* KEWAJIBAN APAPUN ATAS PENGGUNAAN ATAU LAINNYA TERKAIT APLIKASI INI.
*
* @package OpenKab
* @author Tim Pengembang OpenKab
* @copyright Hak Cipta 2009 - 2015 Combine Resource Institution (http://lumbungkomunitas.net/)
* @copyright Hak Cipta 2016 - 2025 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
* @license http://www.gnu.org/licenses/gpl.html GPL V3
* @link https://github.com/OpenKab/OpenKab
*
*/

namespace App\Enums;

use BenSampo\Enum\Enum;

/**
* Status kelengkapan data presisi.
*/
final class StatusKelengkapanPresisiEnum extends Enum
{
public const TIDAK_LENGKAP = 0;
public const LENGKAP_SEBAGIAN = 1;
public const DATA_LENGKAP = 2;

public static function getDescription($value): string
{
return match ($value) {
self::TIDAK_LENGKAP => 'Tidak Lengkap',
self::LENGKAP_SEBAGIAN => 'Lengkap Sebagian',
self::DATA_LENGKAP => 'Data Lengkap',
default => 'Status Tidak Diketahui',
};
}

public static function getBadgeClass($value): string
{
return match ($value) {
self::DATA_LENGKAP => 'label-success',
self::LENGKAP_SEBAGIAN => 'label-warning',
self::TIDAK_LENGKAP => 'label-danger',
default => 'label-default',
};
}

public static function getAll(): array
{
return [
self::TIDAK_LENGKAP => 'Tidak Lengkap',
self::LENGKAP_SEBAGIAN => 'Lengkap Sebagian',
self::DATA_LENGKAP => 'Data Lengkap',
];
}
}
8 changes: 8 additions & 0 deletions resources/views/components/filter-status-presisi.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<div class="col-sm-2">
<select class="form-control form-control-sm" id="filter-status-kelengkapan" name="filter[status-kelengkapan]">
<option value="">Semua Status</option>
@foreach(App\Enums\StatusKelengkapanPresisiEnum::getAll() as $value => $label)
<option value="{{ $value }}">{{ $label }}</option>
@endforeach
</select>
</div>
26 changes: 7 additions & 19 deletions resources/views/data_pokok/agama/cetak.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
<thead>
<tr class="border thick">
<th>NO</th>
<th>NIK</th>
<th>NOMOR KK</th>
<th>NIK</th>
<th>NAMA</th>
<th>AGAMA</th>
<th>FREKWENSI MENGIKUTI KEGIATAN KEAGAMAAN DALAM SETAHUN</th>
Expand All @@ -35,31 +34,20 @@

const header = @include('layouts.components.header_bearer_api_gabungan');
$.ajax({
url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama' }}?${filter}`,
url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama/rtm' }}?${filter}`,
headers: header,
method: 'get',
success: function(json) {
var no = 1;
// Transform the included array into an object
const transformedIncluded = json.included.reduce((acc, item) => {
if (!acc[item.type]) {
acc[item.type] = {};
}
acc[item.type][item.id] = item.attributes;
return acc;
}, {});
var no = 1;
json.data.forEach(function(item) {
var row = `
<tr>
<td class="padat">${no}</td>
<td>${transformedIncluded.penduduk[item
.relationships.penduduk.data.id].nik || 'N/A'}</td>
<td>${transformedIncluded.penduduk[item
.relationships.penduduk.data.id].keluarga?.no_kk || 'N/A'}</td>
<td>${transformedIncluded.penduduk[item
.relationships.penduduk.data.id].nama || 'N/A'}</td>
<td>${item.attributes.nik || 'N/A'}</td>
<td>${item.attributes.kepala_keluarga || 'N/A'}</td>
<td>${item.attributes.jumlah_anggota || 'N/A'}</td>
<td>${item.attributes.agama || 'N/A'}</td>
<td>${item.attributes.frekwensi || 'N/A'}</td>
<td>${item.attributes.frekwensi_mengikuti_kegiatan || 'N/A'}</td>
</tr>
`
$('#tabel-sandang tbody').append(row)
Expand Down
76 changes: 20 additions & 56 deletions resources/views/data_pokok/agama/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<div class="card-header">
<div class="row">
<x-filter-tahun />
<x-filter-status-presisi />
<div class="col-auto">
<x-print-button :print-url="route('cetak_agama')" table-id="agama" :filter="[]" />
</div>
Expand Down Expand Up @@ -72,7 +73,7 @@
let transformedIncluded = {};
document.addEventListener("DOMContentLoaded", function(event) {
const header = @include('layouts.components.header_bearer_api_gabungan');
var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama' }}");
var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/agama/rtm' }}");
url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}");
url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}");
url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}");
Expand All @@ -97,48 +98,17 @@
"filter[search]": row.search.value,
"filter[kode_desa]": $("#kode_desa").val(),
"filter[tahun]": $("#filter-tahun").val(),
"filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(),
};
},
dataSrc: function(json) {

if (json.data.length > 0) {
json.recordsTotal = json.meta.pagination.total
json.recordsFiltered = json.meta.pagination.total
json.recordsTotal = json.meta?.pagination?.total || 0
json.recordsFiltered = json.meta?.pagination?.total || 0
if (json.data.length > 0) {
data_grafik = [];
// Transform the included array into an object
transformedIncluded = json.included.reduce((acc, item) => {
if (!acc[item.type]) {
acc[item.type] = {};
}
acc[item.type][item.id] = item.attributes;
return acc;
}, {});

json.data.forEach(function(item, index) {
data_grafik.push(item.attributes)
item.attributes.nik = transformedIncluded.penduduk[item
.relationships.penduduk.data.id].nik;
item.attributes.nama = transformedIncluded.penduduk[item
.relationships.penduduk.data.id].nama;
if (!item.attributes.frekwensi) {
item.attributes.frekwensi = 'TIDAK TAHU'
}
item.attributes.dtks = transformedIncluded.rtm[item
.relationships.rtm.data.id].dtks ? 'Terdaftar' :
'Tidak Terdaftar';
item.attributes.tgl_daftar = transformedIncluded.rtm[item
.relationships.rtm.data.id].tgl_daftar;
item.attributes.jumlah_kk = transformedIncluded.rtm[item
.relationships.rtm.data.id].jumlah_kk;
item.attributes.alamat = transformedIncluded.keluarga[item
.relationships.keluarga.data.id].alamat;
item.attributes.dusun = transformedIncluded.keluarga[item
.relationships.keluarga.data.id].wilayah?.dusun;
item.attributes.rt = transformedIncluded.keluarga[item
.relationships.keluarga.data.id].wilayah?.rt;
item.attributes.rw = transformedIncluded.keluarga[item
.relationships.keluarga.data.id].wilayah?.rw;
})
})
grafikPie()
return json.data;
}
Expand All @@ -153,15 +123,12 @@ className: 'text-nowrap',
data: function(data) {
let d = data.attributes
let obj = {
'rtm_id': data.relationships.rtm.data.id,
'no_kartu_rumah': transformedIncluded.rtm[data.relationships.rtm
.data.id].no_kk,
'nama_kepala_keluarga': d.nama,
'alamat': transformedIncluded.keluarga[data.relationships
.keluarga.data.id].alamat,
'jumlah_anggota': d.anggota_count,
'jumlah_kk': transformedIncluded.rtm[data.relationships.rtm
.data.id].jumlah_kk,
'rtm_id': data.id,
'no_kartu_rumah': d.no_kk,
'nama_kepala_keluarga': d.kepala_keluarga,
'alamat': d.alamat,
'jumlah_anggota': d.jumlah_anggota,
'jumlah_kk': d.jumlah_kk,
}
let jsonData = encodeURIComponent(JSON.stringify(obj));
const _url =
Expand All @@ -182,18 +149,15 @@ className: 'text-nowrap',
},
{
data: "attributes.nik",
name: "penduduk.nik",
orderable: false,
},
{
data: "attributes.nama",
name: "rtm.nama_kepala_keluarga",
orderable: false
data: "attributes.kepala_keluarga",
orderable: false,
},
{
data: "attributes.anggota_count",
name: null,
data: "attributes.jumlah_anggota",
orderable: false,
searchable: false
},
{
data: "attributes.agama",
Expand All @@ -202,8 +166,8 @@ className: 'text-nowrap',
searchable: false
},
{
data: "attributes.frekwensi",
name: "frekwensi_mengikuti_kegiatan_setahun",
data: "attributes.frekwensi_mengikuti_kegiatan",
name: "frekwensi_mengikuti_kegiatan",
orderable: false,
searchable: false
},
Expand Down Expand Up @@ -260,7 +224,7 @@ function format(data) {
`;
}

$('#filter-tahun').on('change', function() {
$('#filter-tahun, #filter-status-kelengkapan').on('change', function() {
agama.ajax.reload();
data_grafik = [];
grafikPie();
Expand Down
10 changes: 6 additions & 4 deletions resources/views/data_pokok/data_presisi/adat/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@
<div class="col-lg-12">
<div class="card card-outline card-primary">
<div class="card-header">
<div class="row mb-2">
<div class="row">
<x-filter-tahun />
<x-filter-status-presisi />
<div class="col-auto">
<x-print-button :print-url="url('data-pokok/data-presisi-adat/cetak')" table-id="adat" :filter="[]" />
</div>
Expand Down Expand Up @@ -88,9 +89,10 @@
return {
"page[size]": row.length,
"page[number]": (row.start / row.length) + 1,
"filter[search]": row.search.value,
"sort": "id",
"filter[search]": row.search.value,
"sort": "id",
"filter[tahun]": $('#filter-tahun').val(),
"filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(),
};
},
dataSrc: function(json) {
Expand Down Expand Up @@ -216,7 +218,7 @@ function format(data) {
`;
}
// Event listener for year filter change
$('#filter-tahun').on('change', function() {
$('#filter-tahun, #filter-status-kelengkapan').on('change', function() {
adat.ajax.reload();
data_grafik = [];
grafikPie();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<div class="card-header">
<div class="row">
<x-filter-tahun />
<x-filter-status-presisi />
<div class="col-auto">
<x-print-button :print-url="url('data-presisi/kesehatan/cetak')" table-id="table-kesehatan" :filter="[]" />
</div>
Expand Down Expand Up @@ -86,6 +87,7 @@
"page[number]": (row.start / row.length) + 1,
"filter[search]": row.search.value,
"filter[tahun]": $('#filter-tahun').val(),
"filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(),
"sort": "id"
};
},
Expand Down Expand Up @@ -210,7 +212,7 @@ function format(data) {
`;
}
// Event listener for year filter change
$('#filter-tahun').on('change', function() {
$('#filter-tahun, #filter-status-kelengkapan').on('change', function() {
dtks.ajax.reload();
data_grafik = [];
grafikPie();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<div class="card-header">
<div class="row">
<x-filter-tahun />
<x-filter-status-presisi />
<div class="col-auto">
<x-print-button :print-url="url('data-presisi/ketenagakerjaan/cetak')" table-id="table-ketenagakerjaan" :filter="[]" />
</div>
Expand Down Expand Up @@ -89,12 +90,14 @@
"kode_kecamatan": "{{ session('kecamatan.kode_kecamatan') ?? '' }}",
"config_desa": "{{ session('desa.id') ?? '' }}",
"filter[tahun]": $('#filter-tahun').val(),
"filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(),
};
},
dataSrc: function(json) {
if (json.data.length > 0) {
json.recordsTotal = json.meta.pagination.total
json.recordsFiltered = json.meta.pagination.total
// Set default values untuk recordsTotal dan recordsFiltered
json.recordsTotal = json.meta?.pagination?.total || 0;
json.recordsFiltered = json.meta?.pagination?.total || 0;
if (json.data.length > 0) {
data_grafik = [];
json.data.forEach(function(item, index) {
data_grafik.push(item.attributes)
Expand Down Expand Up @@ -210,7 +213,7 @@ function format(data) {
`;
}
// Event listener for year filter change
$('#filter-tahun').on('change', function() {
$('#filter-tahun, #filter-status-kelengkapan').on('change', function() {
dtks.ajax.reload();
data_grafik = [];
grafikPie();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<div class="card-header">
<div class="row">
<x-filter-tahun />
<x-filter-status-presisi />
<div class="col-auto">
<x-print-button :print-url="url('data-presisi/pangan/cetak')" table-id="table-pangan" :filter="[]" />
</div>
Expand Down Expand Up @@ -87,6 +88,7 @@
"page[number]": (row.start / row.length) + 1,
"filter[search]": row.search.value,
"filter[tahun]": $('#filter-tahun').val(),
"filter[status_kelengkapan]": $('#filter-status-kelengkapan').val(),
};
},
dataSrc: function(json) {
Expand Down Expand Up @@ -251,7 +253,7 @@ function format(data) {
`;
}
// Event listener for year filter change
$('#filter-tahun').on('change', function() {
$('#filter-tahun, #filter-status-kelengkapan').on('change', function() {
dtks.ajax.reload();
data_grafik = [];
grafikPie();
Expand Down
Loading