<%- include('partials/sidebar', { activePage: 'reports', company }) %>
<%= t('admin.reportprint.title', 'Laporan Keuangan') %> · <%= filterYear %><% if (filterMonth) { %> · <%= String(filterMonth).padStart(2, '0') %><% } %>
<%= t('common.back', 'Kembali') %>
<%= company %>
<%= settings?.company_address || t('admin.reportprint.company_sub', 'Pusat Layanan Internet Broadband & RT/RW Net') %>
<% if (settings?.company_phone) { %>
<%= t('admin.reportprint.telp', 'Telp/WA') %>: <%= settings.company_phone %> | <%= t('admin.reportprint.email', 'Email') %>: <%= settings?.company_email || '-' %>
<% } %>
<%= t('admin.reportprint.title_box', 'LAPORAN LABA / RUGI') %>
<%= t('admin.reportprint.period', 'Periode Tahun') %>: <%= filterYear %><% if (filterMonth) { %> · <%= String(filterMonth).padStart(2, '0') %><% } %>
<%= t('admin.reportprint.printed', 'Dicetak') %>: <%= getNowLocal() %>
<%= t('admin.reportprint.kpi_income', 'Total Pemasukan (Gross)') %>
Rp <%= Number(cashInYear || 0).toLocaleString('id-ID') %>
<%= t('admin.reportprint.kpi_expense', 'Total Pengeluaran & Modal') %>
-Rp <%= Number(expensesYear || 0).toLocaleString('id-ID') %>
<%= t('admin.reportprint.kpi_profit', 'Laba Bersih (Net Profit)') %>
Rp <%= Number(netProfitYear || 0).toLocaleString('id-ID') %>
Pajak & Retribusi<% if (filterMonth) { %> — Bulan <%= String(filterMonth).padStart(2, '0') %><% } %>
<%= t('admin.fin.gross','Pemasukan (Bruto)') %>Rp <%= Math.round(LR.bruto).toLocaleString('id-ID') %>
DPP — Dasar Pengenaan PajakRp <%= Math.round(LR.dpp).toLocaleString('id-ID') %>
PPN Keluaran (<%= fin.ppn %>%) — disetor, bukan pendapatanRp <%= Math.round(LR.ppn).toLocaleString('id-ID') %>
Pengeluaran- Rp <%= Math.round(LR.keluar).toLocaleString('id-ID') %>
USO (<%= fin.uso %>%)- Rp <%= Math.round(LR.uso).toLocaleString('id-ID') %>
BHP (<%= fin.bhp %>%)- Rp <%= Math.round(LR.bhp).toLocaleString('id-ID') %>
Laba Sebelum PPhRp <%= Math.round(LR.sebelumPph).toLocaleString('id-ID') %>
PPh Badan (<%= fin.pph %>%)- Rp <%= Math.round(LR.pph).toLocaleString('id-ID') %>
<%= t('admin.fin.net','Laba Bersih') %>Rp <%= Math.round(LR.bersih).toLocaleString('id-ID') %>
<%= t('admin.reportprint.sec1', '1. Rincian Pemasukan & Pengeluaran Bulanan') %> (<%= filterYear %>)
<% const monthNames = (typeof lang !== 'undefined' && lang === 'en') ? ['January','February','March','April','May','June','July','August','September','October','November','December'] : ['Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember']; const _repLang = (typeof lang !== 'undefined' && lang === 'en') ? 'en-US' : 'id-ID'; if (typeof monthlyData !== 'undefined' && Array.isArray(monthlyData) && monthlyData.length > 0) { monthlyData.forEach((m, idx) => { const inc = Number(m.revenue || m.total || m.income || 0); const exp = Number(m.expense || 0); const net = inc - exp; %> <% }); } else { %> <% } %>
<%= t('admin.reportprint.th_no', 'No') %> <%= t('admin.reportprint.th_month', 'Bulan') %> <%= t('admin.reportprint.th_income', 'Pemasukan (Rp)') %> <%= t('admin.reportprint.th_expense', 'Pengeluaran (Rp)') %> <%= t('admin.reportprint.th_net', 'Laba Bersih (Rp)') %>
<%= idx + 1 %> <%= monthNames[idx] || m.month %> <%= inc.toLocaleString('id-ID') %> <%= exp > 0 ? '-' + exp.toLocaleString('id-ID') : '0' %> <%= net.toLocaleString('id-ID') %>
<%= t('admin.reportprint.no_monthly', 'Data rekap bulanan belum tersedia.') %>
<%= t('admin.reportprint.total_year', 'TOTAL TAHUN') %> <%= filterYear %>: Rp <%= Number(cashInYear || 0).toLocaleString('id-ID') %> -Rp <%= Number(expensesYear || 0).toLocaleString('id-ID') %> Rp <%= Number(netProfitYear || 0).toLocaleString('id-ID') %>
<%= t('admin.reportprint.sec2', '2. Rincian Pos Pengeluaran Terbesar') %> (<%= filterYear %>)
<% if (!expensesByCategory || expensesByCategory.length === 0) { %> <% } else { let totalExpSum = 0; expensesByCategory.forEach(e => { totalExpSum += Number(e.total || 0); }); expensesByCategory.forEach((c, idx) => { const itemTotal = Number(c.total || 0); const percent = totalExpSum > 0 ? ((itemTotal / totalExpSum) * 100).toFixed(1) : '0'; %> <% }); } %>
No <%= t('admin.reportprint.th_pos', 'Kategori / Pos Pengeluaran') %> <%= t('admin.reportprint.th_total', 'Total Biaya (Rp)') %> <%= t('admin.reportprint.th_share', 'Porsi (%)') %>
<%= t('admin.reportprint.no_expenses', 'Tidak ada catatan pengeluaran di tahun ini.') %>
<%= idx + 1 %> <%= c.category %> <%= itemTotal.toLocaleString('id-ID') %> <%= percent %>%
<%= t('admin.reportprint.total_expense', 'TOTAL PENGELUARAN:') %> Rp <%= Number(expensesYear || 0).toLocaleString('id-ID') %> 100%
<%= t('admin.reportprint.sig1', 'Dibuat Oleh,') %>
<%= t('admin.reportprint.sig1_role', 'Bagian Keuangan / Admin') %>
<%= settings?.company_cashier || t('admin.reportprint.sig1_name', 'Staf Administrasi') %>
<%= t('admin.reportprint.sig2', 'Mengetahui & Menyetujui,') %>
<%= t('admin.reportprint.sig2_role', 'Pimpinan / Direktur') %>
<%= settings?.company_manager || t('admin.reportprint.sig2_name', 'Direktur Utama') %>