Pembayaran Tagihan
<%= settings.company_header || 'OPEN-ISP' %>
<% if (backUrl) { %> Kembali <% } %>
<% if (error) { %>
<%= error %>
<% } else { %> <% if (info) { %>
<%= info %>
<% } %> <% const kindSafe = String(kind || 'invoice').toLowerCase(); const isVoucher = kindSafe === 'voucher'; const refPrefix = isVoucher ? 'VOUCHER' : 'INV'; const parseAccounts = function (txt) { return String(txt || '').split('\n').map(function(l){ return l.trim(); }).filter(Boolean).map(function(l){ const p = l.split('|').map(function(x){ return String(x).trim(); }); return { name: p[0] || '', number: p[1] || '', holder: p[2] || '' }; }).filter(function(a){ return a.number; }); }; const bankEnabled = (settings.payment_bank_enabled !== false && settings.payment_bank_enabled !== 'false'); const ewalletEnabled = (settings.payment_ewallet_enabled !== false && settings.payment_ewallet_enabled !== 'false'); const bankAccounts = bankEnabled ? parseAccounts(settings.payment_bank_accounts) : []; const ewalletAccounts = ewalletEnabled ? parseAccounts(settings.payment_ewallet_accounts) : []; // Metode aktif default: QRIS bila QR tersedia, jika tidak maka bank / e-wallet. const defaultMethod = qrisQrUrl ? 'qris' : (bankAccounts.length ? 'bank' : (ewalletAccounts.length ? 'ewallet' : 'qris')); %> <% if (helpText) { %>
<%= helpText %>
<% } %>
<%= customerName || (isVoucher ? 'Pembeli Voucher' : 'Pelanggan') %>
<%= refPrefix %>-<%= invoiceId %><% if (periodText) { %> • <%= periodText %><% } %>
<% if (bankAccounts.length) { %><% } %> <% if (ewalletAccounts.length) { %><% } %>
Nominal yang harus dibayar (WAJIB tepat)
Rp <%= Number(amountUnique || 0).toLocaleString('id-ID') %>
<% if (uniqueCode) { %>
Kode unik <%= String(uniqueCode).padStart(3, '0') %>
<% } %>
<% if (qrisQrUrl) { %>
QRIS
<% } else { %>
QRIS belum diatur oleh admin.
<% } %>
<% if (qrisQrUrl) { %><% } %>
Scan QRIS di atas (DANA / OVO / ShopeePay / LinkAja / GoPay, dll), lalu masukkan nominal persis seperti tertera. Status lunas terverifikasi otomatis setelah pembayaran terdeteksi.
<% if (bankAccounts.length) { %>
Transfer Bank
Transfer tepat sebesar Rp <%= Number(amountUnique || 0).toLocaleString('id-ID') %> (sudah termasuk kode unik) ke salah satu rekening:
<% bankAccounts.forEach(function(a){ %>
<%= a.name %>
<%= a.number %>
<% if (a.holder) { %>
a.n. <%= a.holder %>
<% } %>
<% }); %>
<% } %> <% if (ewalletAccounts.length) { %>
E-Wallet
Kirim tepat sebesar Rp <%= Number(amountUnique || 0).toLocaleString('id-ID') %> ke salah satu e-wallet:
<% ewalletAccounts.forEach(function(a){ %>
<%= a.name %>
<%= a.number %>
<% if (a.holder) { %>
a.n. <%= a.holder %>
<% } %>
<% }); %>
<% } %>
Menunggu pembayaran… (Auto-Check)
Konfirmasi Pembayaran
Jika pembayaran belum otomatis terdeteksi, kirim bukti transfer ke admin.
<% const proofAction = String(proofActionUrl || `/customer/payment/proof/${invoiceId}`); %>
<% if (publicToken) { %><% } %>
<% if (proofUrl) { %>
Bukti tersimpan: <%= proofUrl %>
<% } %> <% const adminWa = String(adminWaDigits || '').trim(); const msgLines = [ isVoucher ? 'Konfirmasi pembayaran Voucher' : 'Konfirmasi pembayaran', `${refPrefix}-${invoiceId}${periodText ? ' • ' + periodText : ''}`, `Nama: ${customerName || (isVoucher ? 'Pembeli Voucher' : 'Pelanggan')}`, `Nominal: Rp ${Number(amountUnique || 0).toLocaleString('id-ID')} (kode ${String(uniqueCode || 0).padStart(3, '0')})`, proofUrl ? `Bukti: ${proofUrl}` : 'Bukti: (sudah diupload / akan dikirim)', ]; const waLink = adminWa ? `https://wa.me/${adminWa}?text=${encodeURIComponent(msgLines.join('\n'))}` : ''; %> <% if (waLink) { %> <% } else { %>
Nomor admin WhatsApp belum diatur.
<% } %>
<% } %>