Files
2026-09-12 01:45:03 +07:00

33 lines
6.6 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php $csrfName=$this->security->get_csrf_token_name();$csrfHash=$this->security->get_csrf_hash();function arMoney($v){return'Rp '.number_format((float)$v,2,',','.');} ?>
<link rel="stylesheet" href="<?=base_url('assets/css/invoices-professional.css').'?v='.filemtime(FCPATH.'assets/css/invoices-professional.css')?>">
<link rel="stylesheet" href="<?=base_url('assets/css/receivables-professional.css').'?v='.filemtime(FCPATH.'assets/css/receivables-professional.css')?>">
<section class="receivable-workspace">
<header class="invoice-hero"><div><span>SIKLUS PENJUALAN</span><h2>Piutang & Pembayaran</h2><p>Alokasikan pelunasan melalui akun Aktiva atau Passiva, termasuk pemindahbukuan simpanan customer.</p></div><a class="btn btn-light" href="<?=base_url('invoices')?>"><i class="bi bi-receipt"></i> Daftar Invoice</a></header>
<?php $this->load->view('sales/_section_nav',array('sales_section'=>'receivable','sales_summary'=>$summary)); ?>
<div class="receivable-grid">
<div class="card receivable-card">
<div class="card-header"><div><b>1. Pilih Customer & Invoice</b><small>Hanya invoice posted yang masih memiliki saldo.</small></div></div>
<div class="card-body"><label class="form-label">Customer</label><select id="payCustomer" class="form-select"></select><div class="allocation-toolbar"><span id="invoiceSelectionHint">Pilih customer terlebih dahulu.</span><div><button type="button" id="allocateAll" class="btn btn-sm btn-outline-primary">Alokasikan Semua</button><button type="button" id="clearAllocations" class="btn btn-sm btn-light">Kosongkan</button></div></div><div id="invoiceAllocations" class="invoice-allocation-list"><div class="ar-empty"><i class="bi bi-receipt"></i><span>Invoice terbuka akan tampil di sini.</span></div></div></div>
</div>
<div class="card receivable-card payment-panel">
<div class="card-header"><div><b>2. Detail Penerimaan</b><small>Bukti pembayaran wajib dan jurnal dibuat otomatis.</small></div></div>
<div class="card-body"><form id="paymentForm" action="<?=base_url('receivables/payment')?>" enctype="multipart/form-data"><input type="hidden" name="<?=$csrfName?>" value="<?=$csrfHash?>"><input type="hidden" name="customer_id" id="paymentCustomerId">
<div class="row g-3"><div class="col-md-6"><label class="form-label">Tanggal Pelunasan</label><input class="form-control" type="date" name="date" value="<?=date('Y-m-d')?>" required></div><div class="col-md-6"><label class="form-label">Referensi Pembayaran</label><input class="form-control" name="reference_no" placeholder="Nomor transfer atau referensi pemindahbukuan"></div></div>
<div class="source-title"><div><b>Akun Penerimaan / Pelunasan</b><small>Pilih Aktiva untuk dana masuk, atau Passiva untuk pemindahbukuan simpanan customer.</small></div><button class="btn btn-sm btn-outline-primary" type="button" id="addPaymentSource"><i class="bi bi-plus-lg"></i> Tambah Akun</button></div><div id="paymentSources"></div>
<div class="payment-balance"><div><span>Total dialokasikan</span><b id="allocatedTotal">Rp 0,00</b></div><div><span>Total sumber penerimaan</span><b id="sourceTotal">Rp 0,00</b></div><div class="difference"><span>Selisih</span><strong id="paymentDifference">Rp 0,00</strong></div></div>
<label class="form-check mt-3"><input class="form-check-input" type="checkbox" name="allow_advance" value="1" id="allowAdvance"><span class="form-check-label">Catat kelebihan sebagai uang muka customer</span></label>
<div class="mt-3"><label class="form-label">Bukti Pembayaran <span class="text-danger">*</span></label><small class="d-block text-muted mb-2">JPG, PNG, WEBP, GIF, atau PDF. Maksimal 10 file, masing-masing 5 MB.</small><input type="file" id="paymentAttachments" name="attachments[]" accept="image/jpeg,image/png,image/webp,image/gif,application/pdf,.pdf" multiple hidden><div id="paymentAttachmentGrid" class="payment-attachment-grid"><button type="button" class="attachment-add" id="addPaymentAttachment"><i class="bi bi-plus-lg"></i><span>Tambah</span></button></div></div>
<div class="mt-3"><label class="form-label">Catatan</label><textarea class="form-control" name="notes" rows="2" placeholder="Keterangan penerimaan atau informasi tambahan"></textarea></div>
<?php if($can_post):?><button class="btn btn-success w-100 mt-3" type="submit" id="postPayment"><i class="bi bi-check-circle"></i> Post Pembayaran</button><?php else:?><div class="alert alert-warning mt-3 mb-0">Anda tidak memiliki permission untuk memposting pembayaran.</div><?php endif?>
</form></div>
</div>
</div>
<div class="card receivable-card mt-3"><div class="card-header"><div><b>Riwayat Pembayaran Customer</b><small>Bukti penerimaan dapat dipratinjau sebagai PDF.</small></div></div><div class="card-body" id="paymentHistory"><div class="ar-empty"><i class="bi bi-clock-history"></i><span>Pilih customer untuk melihat riwayat.</span></div></div></div>
<div class="card receivable-card mt-3"><div class="card-header"><div><b>Ringkasan Aging Piutang</b><small>Saldo terbuka berdasarkan umur jatuh tempo.</small></div></div><div class="table-responsive"><table class="table align-middle mb-0"><thead><tr><th>Customer</th><th class="text-end">Belum jatuh tempo</th><th class="text-end">1–30 hari</th><th class="text-end">31–60 hari</th><th class="text-end">61–90 hari</th><th class="text-end">&gt;90 hari</th><th class="text-end">Total</th><th></th></tr></thead><tbody><?php foreach($aging as$r):?><tr><td><b><?=html_escape($r->nama)?></b></td><?php foreach(array('current_amount','days_1_30','days_31_60','days_61_90','days_over_90','total')as$f):?><td class="text-end"><?=arMoney($r->$f)?></td><?php endforeach?><td><a class="btn btn-sm btn-outline-secondary" href="<?=base_url('receivables/statement/'.$r->customer_id)?>">Statement</a></td></tr><?php endforeach?><?php if(!$aging):?><tr><td colspan="8" class="text-center text-muted py-4">Tidak ada saldo piutang terbuka.</td></tr><?php endif?></tbody></table></div></div>
</section>
<div class="modal fade" id="paymentPreviewModal" tabindex="-1"><div class="modal-dialog modal-xl modal-dialog-centered"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">Pratinjau Dokumen</h5><button class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body p-0"><iframe title="Pratinjau PDF"></iframe><img alt="Pratinjau gambar"></div></div></div></div>
<script>window.RECEIVABLE_PAGE=<?=json_encode(array('base'=>base_url(),'csrfName'=>$csrfName,'csrfHash'=>$csrfHash,'focus'=>$focus_invoice),JSON_UNESCAPED_SLASHES)?>;</script>
<script src="<?=base_url('assets/js/receivables-professional.js').'?v='.filemtime(FCPATH.'assets/js/receivables-professional.js')?>"></script>