feat: Implement Age Report, Dynamic Headers, KK Auto-Link, and Rebranding
- Added Age Classification Report (admin/laporan/laporan_klasifikasi.php) - Updated Reports to use Dynamic Village Profile (tb_profil) - Use 'nama_desa' column for village name - Enhanced KK Scan to auto-link existing members by NIK - Updated Index menu for Age Report (Admin & Kaur scope) - Rebranded Footer to Wartana 2026 - Removed legacy 'Versi 2020' text
This commit is contained in:
@@ -166,7 +166,18 @@ window.addEventListener('load', function() {
|
||||
<tr><td>Kabupaten</td><td>${d.kabupaten || '-'}</td></tr>
|
||||
<tr><td>Provinsi</td><td>${d.provinsi || '-'}</td></tr>
|
||||
</table>
|
||||
<p class="mb-0 text-muted">Gunakan data ini?</p>
|
||||
|
||||
<hr>
|
||||
<strong>Ditemukan ${d.anggota ? d.anggota.length : 0} Anggota:</strong>
|
||||
<div style="max-height: 150px; overflow-y: auto; background: #f8f9fa; border: 1px solid #ddd; padding: 5px;">
|
||||
${d.anggota && d.anggota.length > 0 ?
|
||||
'<ul style="padding-left: 20px; margin-bottom: 0;">' +
|
||||
d.anggota.map(m => `<li><b>${m.nama}</b><br><small>${m.nik} (${m.hubungan})</small></li>`).join('') +
|
||||
'</ul>'
|
||||
: '<i class="text-muted">Tidak ada anggota terdeteksi</i>'}
|
||||
</div>
|
||||
|
||||
<p class="mb-0 text-muted mt-2">Gunakan data ini?</p>
|
||||
</div>
|
||||
`,
|
||||
icon: 'question',
|
||||
@@ -262,6 +273,9 @@ window.addEventListener('load', function() {
|
||||
$query_simpan = mysqli_query($koneksi, $sql_simpan);
|
||||
|
||||
// Process Auto-Linking Members
|
||||
$linked_count = 0;
|
||||
$failed_count = 0;
|
||||
|
||||
if ($query_simpan && !empty($_POST['anggota_json'])) {
|
||||
$id_kk_baru = mysqli_insert_id($koneksi);
|
||||
$anggota_list = json_decode($_POST['anggota_json'], true);
|
||||
@@ -280,6 +294,9 @@ window.addEventListener('load', function() {
|
||||
// Insert into tb_anggota
|
||||
$sql_add_ang = "INSERT INTO tb_anggota (id_kk, id_pend, hubungan) VALUES ('$id_kk_baru', '$id_pend_found', '$hub_mem')";
|
||||
mysqli_query($koneksi, $sql_add_ang);
|
||||
$linked_count++;
|
||||
} else {
|
||||
$failed_count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -288,8 +305,13 @@ window.addEventListener('load', function() {
|
||||
mysqli_close($koneksi);
|
||||
|
||||
if ($query_simpan) {
|
||||
$msg_add = "";
|
||||
if($linked_count > 0 || $failed_count > 0) {
|
||||
$msg_add = "<br>Anggota Terhubung: <b>$linked_count</b><br>Tidak Ditemukan: <b>$failed_count</b>";
|
||||
}
|
||||
|
||||
echo "<script>
|
||||
Swal.fire({title: 'Tambah Data Berhasil',text: '',icon: 'success',confirmButtonText: 'OK'
|
||||
Swal.fire({title: 'Tambah Data Berhasil',html: 'Data KK disimpan.$msg_add',icon: 'success',confirmButtonText: 'OK'
|
||||
}).then((result) => {if (result.value){
|
||||
window.location = 'index.php?page=data-kartu';
|
||||
}
|
||||
|
||||
29
admin/laporan/laporan_klasifikasi.php
Normal file
29
admin/laporan/laporan_klasifikasi.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">
|
||||
<i class="fa fa-file"></i> Laporan Klasifikasi Umur</h3>
|
||||
</div>
|
||||
<form action="./report/cetak_klasifikasi.php" method="post" enctype="multipart/form-data" target="_blank">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">Kategori Umur</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="kategori" id="kategori" class="form-control" required>
|
||||
<option value="Semua">-- Semua Kategori --</option>
|
||||
<option value="Balita">Balita (0-5 Tahun)</option>
|
||||
<option value="Anak">Anak-anak (6-12 Tahun)</option>
|
||||
<option value="Remaja">Remaja (13-17 Tahun)</option>
|
||||
<option value="Dewasa">Dewasa (18-59 Tahun)</option>
|
||||
<option value="Lansia">Lansia (> 60 Tahun)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button type="submit" class="btn btn-primary" name="Cetak">
|
||||
<i class="fa fa-print"></i> Cetak Laporan</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
Reference in New Issue
Block a user