| # | <%= t('admin.billing.table.customer', 'Pelanggan') %> | <%= t('admin.billing.table.period', 'Periode') %> | <%= t('admin.billing.table.package', 'Paket') %> | <%= t('admin.billing.table.amount', 'Jumlah') %> | <%= t('admin.billing.table.status', 'Status') %> | <%= t('admin.billing.table.paid_by', 'Dibayar Oleh') %> | <%= t('admin.billing.table.paid_time', 'Waktu Bayar') %> | <%= t('admin.billing.table.actions', 'Aksi') %> | |
|---|---|---|---|---|---|---|---|---|---|
| <%= t('admin.billing.empty', 'Tidak ada tagihan. Generate tagihan bulanan terlebih dahulu.') %> | |||||||||
| " data-period-month="<%= inv.period_month %>" data-period-year="<%= inv.period_year %>" data-amount="<%= Number(inv.amount || 0) %>" data-package="<%= String(inv.package_name || '-').replace(/\"/g, '"') %>" > | <%= i+1 %> |
<%= inv.customer_name %>
<%= inv.customer_phone||inv.genieacs_tag||'' %>
|
<% const mns = (lang === 'en')
? ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
: ['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Agt','Sep','Okt','Nov','Des']; %>
<%= mns[inv.period_month-1] %> <%= inv.period_year %>
<% if (inv.status === 'unpaid' && inv.isolate_day) { %> Jatuh tempo tgl <%= inv.isolate_day %> <% } %>
|
<%= inv.package_name||'-' %> |
<% if (Number(inv.discount_amount||0) > 0) { %>
Rp <%= Number(inv.amount_before_discount||0).toLocaleString('id-ID') %>
<% } %>
Rp <%= inv.amount.toLocaleString('id-ID') %>
<% if (Number(inv.discount_amount||0) > 0) { %>
Diskon <%= inv.discount_type==='percent' ? (inv.discount_value+'%') : '' %> -Rp <%= Number(inv.discount_amount).toLocaleString('id-ID') %>
<% } %>
<% if (inv.status === 'unpaid' && inv.qris_amount_unique) { %>
Nominal unik: Rp <%= Number(inv.qris_amount_unique || inv.amount || 0).toLocaleString('id-ID') %>
<% if (inv.qris_unique_code) { %>
Kode <%= String(inv.qris_unique_code).padStart(3, "0") %>
<% } %>
<% } %>
|
<% if(inv.status==='paid'){%> <%= t('admin.billing.status.paid', 'Lunas') %> <%}else if(inv.status==='void'){%> <%= t('admin.bill.st_void','Hangus') %> <%}else{%> <%= t('admin.billing.status.unpaid', 'Belum Bayar') %><%}%> |
<%= inv.paid_by_name||'-' %>
<% if (inv.notes) { %>
<% const _pf = (String(inv.notes).match(/\/(?:admin\/media\/payment-proof|uploads\/payment_proofs)\/([A-Za-z0-9._-]+)/) || [])[1]; %>
<% const _nc = String(inv.notes).replace(/Bukti bayar:\s*\S+/gi, '').replace(/AUTO-QRIS:\s*cocok nominal unik Rp\s*([0-9.]+)[^\n]*/gi, 'QRIS otomatis tercocokkan Rp $1').replace(/https?:\/\/\S*\/uploads\/payment_proofs\/\S+/gi, '').replace(/[ \t]{2,}/g, ' ').replace(/\n{2,}/g, '\n').trim(); %>
<% if (_nc) { %><%= _nc %> <% } %>
<% if (_pf) { %> Lihat Bukti<% } %>
<% } %>
|
<%= inv.paid_at ? new Date(inv.paid_at).toLocaleString('id-ID',{day:'2-digit',month:'short',year:'numeric',hour:'2-digit',minute:'2-digit'}) : '-' %> |
<% if(inv.status==='unpaid'){%>
<% if (inv.qris_amount_unique) { %>
<% } %>
<%}else{%>
<%}%>
|