Sistem Portal RT Modern
Sistem Portal RT
Silakan masukkan PIN Akses Anda
Lupa PIN? Silakan hubungi Pengurus RT terkait.
Halaman Utama
Beranda
Warga
Konfirmasi Hapus
Apakah Anda yakin ingin menghapus data ini secara permanen?
Rukun Tetangga (RT) Modern
${titleText}
| Tanggal |
Keterangan |
Jenis |
Nominal |
${list.map(k => `
| ${k.tanggal_input} |
${k.keterangan} |
${k.tipe} |
Rp ${k.jumlah.toLocaleString('id-ID')} |
`).join('')}
`;
win.document.write(docHTML);
win.document.close();
setTimeout(function() { win.focus(); win.print(); }, 800);
}
window.printLaporan = function(mode) {
let win = window.open('', '_blank');
let html = `
Cetak Laporan RT
Laporan Administrasi & Keuangan Terbuka RT
Tahun Buku Operasional: 2026
`;
if (mode === 'iuran_global') {
const bulanList = ["2026-01", "2026-02", "2026-03", "2026-04", "2026-05", "2026-06", "2026-07", "2026-08", "2026-09", "2026-10", "2026-11", "2026-12"];
html += `
Matriks Kontrol Iuran Warga Tahunan (Tahun 2026)
| Nama Warga |
${bulanList.map(b => `${b.split('-')[1]} | `).join('')}
${localData.warga.filter(w => w.status === 'aktif').map(w => {
return `
| ${w.nama} |
${bulanList.map(b => {
const lunas = localData.kas.some(k => k.metadata && k.metadata.some(m => m.penyetor === w.nama && m.bulan.includes(b)));
return `${lunas ? '✓' : '-'} | `;
}).join('')}
`;
}).join('')}
`;
}
else if (mode === 'iuran_bulanan') {
const targetBulanInput = document.getElementById('print-iuran-bulan').value; // Format: YYYY-MM
if (!targetBulanInput) {
showToast('Silakan pilih bulan penerimaan iuran riil terlebih dahulu!', 'error');
return;
}
const filteredKas = localData.kas.filter(k => k.tanggal_input.startsWith(targetBulanInput) && k.metadata && k.metadata.length > 0);
// PROCESS DYNAMIC GROUPING BY DATE AND RESIDENT NAME
let groupedRecords = {};
filteredKas.forEach(k => {
k.metadata.forEach(m => {
const compositeKey = `${k.tanggal_input}:${m.penyetor}`;
if (!groupedRecords[compositeKey]) {
groupedRecords[compositeKey] = {
tanggal: k.tanggal_input,
penyetor: m.penyetor,
bulanList: [],
nominal: 0
};
}
// Concatenate paid months and sum values
m.bulan.forEach(b => {
const bName = new Date(b + "-01").toLocaleDateString('id-ID', { month: 'long' });
if (!groupedRecords[compositeKey].bulanList.includes(bName)) {
groupedRecords[compositeKey].bulanList.push(bName);
}
});
groupedRecords[compositeKey].nominal += m.nominal;
});
});
const groupList = Object.values(groupedRecords).sort((a,b) => new Date(a.tanggal) - new Date(b.tanggal));
const parsedLabel = new Date(targetBulanInput + "-01").toLocaleDateString('id-ID', { month: 'long', year: 'numeric' });
html += `
Laporan Penerimaan Iuran Bulanan (Bulan Input Riil: ${parsedLabel})
Menampilkan rincian setoran iuran kolektif yang riil disetorkan sepanjang periode pembukuan.
| Tgl Input |
Penyetor |
Keterangan |
Nominal |
${groupList.map(g => `
| ${g.tanggal} |
${g.penyetor} |
Iuran Bulan: ${g.bulanList.join(', ')} |
Rp ${g.nominal.toLocaleString('id-ID')} |
`).join('')}
`;
}
html += `
Mengetahui,
Pengurus RT 2026
Arsip Digital Portal
`;
win.document.write(html);
win.document.close();
setTimeout(function() { win.focus(); win.print(); }, 800);
}