Sistem Portal RT Modern

Sistem Portal RT

Silakan masukkan PIN Akses Anda

Lupa PIN? Silakan hubungi Pengurus RT terkait.

Rukun Tetangga (RT) Modern

${titleText}

${list.map(k => ` `).join('')}
Tanggal Keterangan Jenis Nominal
${k.tanggal_input} ${k.keterangan} ${k.tipe} Rp ${k.jumlah.toLocaleString('id-ID')}
`; 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)

${bulanList.map(b => ``).join('')} ${localData.warga.filter(w => w.status === 'aktif').map(w => { return ` ${bulanList.map(b => { const lunas = localData.kas.some(k => k.metadata && k.metadata.some(m => m.penyetor === w.nama && m.bulan.includes(b))); return ``; }).join('')} `; }).join('')}
Nama Warga${b.split('-')[1]}
${w.nama}${lunas ? '✓' : '-'}
`; } 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.

${groupList.map(g => ` `).join('')}
Tgl Input Penyetor Keterangan Nominal
${g.tanggal} ${g.penyetor} Iuran Bulan: ${g.bulanList.join(', ')} Rp ${g.nominal.toLocaleString('id-ID')}
`; } html += `

Mengetahui,

Pengurus RT 2026

Arsip Digital Portal

`; win.document.write(html); win.document.close(); setTimeout(function() { win.focus(); win.print(); }, 800); }