DONE: add fallback when clicking on detail gadaian due to missing lelong api, add cara terima column on laporan pembiayaan

This commit is contained in:
ISMAIL MASSERAN
2026-09-20 12:47:55 +08:00
parent 5b4a97fb90
commit c766269311
5 changed files with 61 additions and 49 deletions
+18 -4
View File
@@ -390,14 +390,14 @@
<x-datatable
id="myTable"
filename="SAG_Baru"
:columns="['Bil', 'No Rujukan', 'Tarikh Pembiayaan', 'Tarikh Matang', 'Baki Harga Jualan', 'Baki Pembiayaan', 'Margin', 'Tempoh', 'Keuntungan', 'Lelong', 'Borang Online']"
:columns="['Bil', 'No Rujukan', 'Cara Terima', 'Tarikh Pembiayaan', 'Tarikh Matang', 'Baki Harga Jualan', 'Baki Pembiayaan', 'Margin', 'Tempoh', 'Keuntungan', 'Lelong', 'Borang Online']"
/>
</div>
<div class="tab-pane fade {{ $activate_pane_SAG_lama }}" id="nav-xtawarruq" role="tabpanel" aria-labelledby="nav-xtawarruq-tab">
<x-datatable
id="xtawarruq"
filename="SAG_Lama"
:columns="['Bil', 'No Rujukan', 'Tarikh Pembiayaan', 'Tarikh Matang', 'Baki Harga Jualan', 'Baki Pembiayaan', 'Margin', 'Tempoh', 'Keuntungan', 'Lelong', 'Borang Online']"
:columns="['Bil', 'No Rujukan', 'Cara Terima', 'Tarikh Pembiayaan', 'Tarikh Matang', 'Baki Harga Jualan', 'Baki Pembiayaan', 'Margin', 'Tempoh', 'Keuntungan', 'Lelong', 'Borang Online']"
/>
</div>
</div>
@@ -818,6 +818,10 @@
return '{{ url("/gadai/borang-pengesahan-online") }}/' + encodeURIComponent(norujukan);
}
function formatCaraTerima(value) {
return String(value || 'TUNAI').toUpperCase() === 'ONLINE' ? 'Online' : 'Tunai';
}
function cetakBorangOnlineCell(gadai_detail) {
var cara = String(gadai_detail['cara_terima'] || '').toUpperCase();
if (cara !== 'ONLINE') {
@@ -1134,6 +1138,13 @@
text: 'Pembiayaan Sedang Dilelong..'
});
}
},
error: function() {
Swal.fire({
icon: 'error',
title: 'Amaran',
text: 'Tidak dapat semak status lelong. Sila cuba semula.'
});
}
});
@@ -1199,13 +1210,14 @@
let table_norujukan = gadai_detail["norujukan"];
if (gadai_detail["percentpinj"] != 0)
xtawarruq.row.add([
'<input type="radio" value=' + gadai_detail["norujukan"] +
' name="belum"/>',
'<input type="radio" value="' + gadai_detail["norujukan"] +
'" name="belum" data-cara-terima="' + (gadai_detail['cara_terima'] || '') + '"/>',
'<a href="#" onclick="checkserah(this)" data-pinjaman=' +
gadai_detail['pinjaman'] + ' data-hargajualan=' +
gadai_detail['hargajualan'] + ' data-norujukan=' +
gadai_detail['norujukan'] + ' data-url=' + urlroute + '>' +
gadai_detail['norujukan'] + '</a>',
formatCaraTerima(gadai_detail['cara_terima']),
gadai_detail['t_gadai'],
tarikh_matang,
'RM ' + formatter.format(gadai_detail['bakihargajualan']),
@@ -1217,6 +1229,7 @@
'RM ' + formatter.format(upahsemasa),
'<div style="white-space: nowrap; color:red; font-weight: bolder">' +
taglel + '</div>',
cetakBorangOnlineCell(gadai_detail),
]).draw();
} else {
var taglel = '';
@@ -1257,6 +1270,7 @@
gadai_detail['hargajualan'] + ' data-norujukan=' +
gadai_detail['norujukan'] + ' data-url=' + urlroute + '>' +
gadai_detail['norujukan'] + '</a>',
formatCaraTerima(gadai_detail['cara_terima']),
gadai_detail['t_gadai'],
tarikh_matang,
'RM ' + formatter.format(gadai_detail['bakihargajualan']),
@@ -52,6 +52,7 @@
<th>No K/P</th>
<th>Tarikh Pembiayaan</th>
<th>No Rujukan</th>
<th>Cara Terima</th>
<th>Pembiayaan (RM)</th>
<th>Keuntungan Lain-lain Caj (RM) </th>
<th>Keuntungan 1% (RM)</th>
@@ -61,7 +62,7 @@
</tr>
</thead>
<tfoot class="thead-dark">
<th colspan="5">TOTAL</th>
<th colspan="6">TOTAL</th>
<th id="pinjamantotal"></th>
<th id="ujrahtotal"></th>
<th id="onepercenttotal"></th>
@@ -300,6 +301,10 @@
total_upah12 += upah12;
var caraTerima = String(gadai['cara_terima'] || 'TUNAI').toUpperCase() === 'ONLINE'
? 'Online'
: 'Tunai';
// Pastikan semua nilai ada sebelum add row
tablegadai.row.add([
counter,
@@ -307,6 +312,7 @@
gadai['nokp'] || '-',
gadai['t_gadai'] || '-',
gadai['norujukan'] || '-',
caraTerima,
formatter.format(pinjaman),
formatter.format(ujrah * 12),
formatter.format(onepercent * 12),
@@ -214,8 +214,7 @@
/>
<div class="title">
<h1>Borang Kelulusan Pembiayaan Online<br>Senarai Batch Pembayaran</h1>
<p>Untuk semakan Operasi dan kelulusan Pengurus Besar. Bukan untuk tandatangan pelanggan.</p>
<h1>Borang Kelulusan Batch Pembiayaan Online</h1>
</div>
<div class="section">
@@ -298,8 +297,8 @@
bagi batch <b>{{ $batchNo }}</b> cawangan <b>{{ $cawangan }}</b> adalah lengkap
untuk proses pembayaran ke akaun bank pelanggan.
<ol>
<li>Maklumat SAG, nama, no. KP, bank dan no. akaun telah disemak terhadap rekod sistem.</li>
<li>Pembayaran akan dikreditkan ke akaun penerima seperti senarai, bukan tunai di kaunter.</li>
<li>Maklumat SAG, nama, no. KP, bank dan no. akaun telah disemak didalam sistem.</li>
<li>Pembayaran akan dikreditkan ke akaun penerima seperti didalam senarai.</li>
<li>Sebarang ralat akaun yang dikesan selepas kelulusan hendaklah dilaporkan serta-merta.</li>
</ol>
</div>
@@ -318,18 +317,11 @@
<div class="role">Pengurus Besar</div>
<div class="sign-line">
<p>Nama:</p>
<p>Cop / Paraf:</p>
<p>Cop:</p>
<p>Tarikh:</p>
</div>
</div>
</div>
<x-print.footer :show-copies="false">
<b>Nota:</b>
<p>1. Borang ini dicetak dari skrin Operasi — Pembiayaan Online (Batch) untuk kelulusan pembayaran.</p>
<p>2. Hanya dua tandatangan diperlukan: Operasi dan Pengurus Besar.</p>
<p>3. Simpan salinan bersama bukti pindahan bank selepas status PAID.</p>
</x-print.footer>
</div>
</div>
</body>
@@ -108,6 +108,19 @@
letter-spacing: 0.02em;
}
.copies {
margin-top: 12px;
font-size: 10px;
}
.copies span {
display: inline-block;
border: 1px solid #111;
width: 11px;
height: 11px;
margin-right: 4px;
vertical-align: -1px;
}
.akuan {
font-size: 11px;
line-height: 1.55;
@@ -121,10 +134,8 @@
.akuan li { margin-bottom: 4px; }
.signs {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 10px;
margin-top: 16px;
max-width: 34%;
}
.sign-box {
border: 1px solid #111;
@@ -214,7 +225,7 @@
<div class="section-title">B. Maklumat Pembiayaan</div>
<table class="fields">
<tr>
<th>No. Surat Akuan Gadai</th>
<th>No. Surat Akuan Gadaian (SAG)</th>
<td>{{ $norujukan }}</td>
</tr>
<tr>
@@ -222,7 +233,7 @@
<td class="amt">RM {{ $pinjaman }}</td>
</tr>
<tr>
<th>Cara Terima Pembiayaan</th>
<th>Cara Pembiayaan</th>
<td>Atas Talian (Online)</td>
</tr>
<tr>
@@ -250,15 +261,19 @@
</table>
</div>
<div class="copies">
Salinan: <span></span> Kad Pengenalan &nbsp;&nbsp; <span></span> Akaun Bank/ Slip/ Penyata Bank
</div>
<div class="section">
<div class="section-title">D. Akuan Pelanggan</div>
<div class="akuan">
Saya, <b>{{ $nama }}</b> (No. KP: <b>{{ $nokp }}</b>), dengan ini mengesahkan bahawa:
<ol>
<li>Maklumat akaun bank di Bahagian C adalah benar, tepat, dan milik saya sendiri.</li>
<li>Saya memohon supaya amaun pembiayaan gadai sebanyak <b>RM {{ $pinjaman }}</b> dikreditkan ke akaun tersebut dan <b>bukan</b> diterima secara tunai.</li>
<li>Saya faham kredit ke akaun tertakluk kepada semakan Pengurus Cawangan dan proses pembayaran pihak Koperasi.</li>
<li>Saya bertanggungjawab sepenuhnya jika maklumat akaun tidak tepat, dan tidak akan menuntut ganti rugi atas kelewatan atau ralat yang berpunca daripadanya.</li>
<li>Saya bersetuju menerima pembayaran pembiayaan Ar-Rahn KoPKB sebanyak <b>RM {{ $pinjaman }}</b> secara atas talian (Online) ke akaun tersebut.</li>
<li>Saya memahami bahawa pihak Ar-Rahn KoPKB tidak akan bertanggungjawab atas sebarang kesilapan akibat maklumat akaun yang diberikan oleh saya.</li>
<li>Saya mengesahkan bahawa segala maklumat yang diberikan adalah benar dan tepat.</li>
</ol>
</div>
</div>
@@ -272,29 +287,13 @@
<p>Tarikh: {{ $tarikh }}</p>
</div>
</div>
<div class="sign-box">
<div class="role">Tandatangan Teller</div>
<div class="sign-line">
<p>Nama: {{ $teller }}</p>
<p>Cop / Paraf:</p>
<p>Tarikh: {{ $tarikh }}</p>
</div>
</div>
<div class="sign-box">
<div class="role">Pengurus Cawangan</div>
<div class="sign-line">
<p>Nama:</p>
<p>Cop cawangan:</p>
<p>Tarikh:</p>
</div>
</div>
</div>
<x-print.footer>
<x-print.footer :show-copies="false">
<b>Nota:</b>
<p>1. Borang ini dicetak semasa pelanggan memilih cara terima pembiayaan secara Online.</p>
<p>2. Pembiayaan akan dikreditkan ke akaun selepas semakan PC. Pelanggan tidak menerima wang tunai di kaunter.</p>
<p>3. Sila pastikan nama pemegang akaun sepadan dengan nama pelanggan pada MyKad.</p>
<p>1. Pembayaran hanya dibuat ke akaun pelanggan sendiri.</p>
<p>2. Sebarang pembetulan maklumat hendaklah disahkan semula oleh pelanggan.</p>
<p>3. Borang ini hendaklah dilampirkan bersama dokumen transaksi gadaian untuk tujuan audit dan rekod.</p>
</x-print.footer>
</div>
</div>
@@ -220,6 +220,7 @@
<tr>
<th>Bil</th>
<th>Norujukan</th>
<th>Cara Terima</th>
<th>Nama</th>
<th>Alamat</th>
<th>No K/P</th>
@@ -262,7 +263,7 @@
@if($index > 0)
@if($item['teller'] != $gadai[$index - 1]['teller'])
<tr>
<td colspan=10>Teller : <b>{{ $item['teller'] }}</b></td>
<td colspan=11>Teller : <b>{{ $item['teller'] }}</b></td>
</tr>
@php
$totalpinjamanteller = 0;
@@ -276,7 +277,7 @@
@endif
@else
<tr>
<td colspan=10>Teller : <b>{{ $item['teller'] }}</b></td>
<td colspan=11>Teller : <b>{{ $item['teller'] }}</b></td>
</tr>
@php
$totalpinjamanteller = 0;
@@ -332,7 +333,7 @@
@if($item['teller'] != $gadai[$index + 1]['teller'])
@php if($item['teller'] != '')$bil += ($counter-1); @endphp
<tr>
<td colspan="7"><b>{{ $counter-1 }}</b> Jumlah surat bagi teller : <b>{{ $item['teller'] }}</b></td>
<td colspan="8"><b>{{ $counter-1 }}</b> Jumlah surat bagi teller : <b>{{ $item['teller'] }}</b></td>
<td><b>{{ number_format($totalberatteller,2) }} </b></td>
<td><b>{{ number_format($totalnmteller,2) }} </b></td>
<td><b>{{ number_format($totalpinjamanteller,2) }} </b></td>
@@ -359,7 +360,7 @@
@else
@php $bil += ($counter-1); @endphp
<tr>
<td colspan="7"><b>{{ $counter-1 }}</b> Jumlah surat bagi teller : <b>{{ $item['teller'] }}</b></td>
<td colspan="8"><b>{{ $counter-1 }}</b> Jumlah surat bagi teller : <b>{{ $item['teller'] }}</b></td>
<td><b>{{ number_format($totalberatteller,2) }} </b></td>
<td><b>{{ number_format($totalnmteller,2) }} </b></td>
<td><b>{{ number_format($totalpinjamanteller,2) }} </b></td>