diff --git a/resources/views/gadaian/v2/edit.blade.php b/resources/views/gadaian/v2/edit.blade.php
index 1143d29..943d99c 100644
--- a/resources/views/gadaian/v2/edit.blade.php
+++ b/resources/views/gadaian/v2/edit.blade.php
@@ -24,6 +24,9 @@
+
@@ -53,6 +56,33 @@
|
+
+
+
+
+
+ | Bil |
+ Karat |
+ Nilai Marhun |
+ Margin Teller (%) |
+ Margin PC (%) |
+ Nilai Marhun Teller |
+ Nilai Marhun PC |
+
+
+
+
+
+
+
+ | Jumlah |
+ |
+ |
+ |
+ |
+
+
+
@@ -511,7 +541,21 @@
"visible": false,
"searchable": false
}
- ]
+ ],
+ "language": {
+ "lengthMenu": "Papar _MENU_ rekod setiap halaman",
+ "zeroRecords": "Tiada rekod dijumpai",
+ "info": "Memapar halaman _PAGE_ dari _PAGES_",
+ "infoEmpty": "Tiada rekod tersedia",
+ "infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
+ "search": "Cari:",
+ "paginate": {
+ "first": "Pertama",
+ "last": "Akhir",
+ "next": "Seterusnya",
+ "previous": "Sebelumnya"
+ }
+ }
});
$(".select2").select2({
@@ -658,6 +702,9 @@
$('#keuntungan_sebulan').val(formatter.format(keuntungan_sebulan.toFixed(2)));
$('#keuntungan_6bln').val(formatter.format(keuntungan_6bln.toFixed(2)));
+ var max_teller = 0;
+ var max_pelulus = 0;
+
$.ajax({
method:'GET',
url: api_url + '/api/maxpinjaman',
@@ -668,19 +715,19 @@
success:function(data){
$.each(data,function(index,pinjaman){
- if(pinjaman['user_type'] == 'teller'){
+ if (pinjaman['user_type'] == 'teller') {
pinjaman_teller = Number(pinjaman['max']);
+ max_teller = pinjaman['teller_pinjaman'];
}
- if(pinjaman['user_type'] == 'khazanah'){
+ if (pinjaman['user_type'] == 'khazanah') {
pinjaman_pelulus = Number(pinjaman['max']);
+ max_pelulus = pinjaman['pc_pinjaman'];
}
});
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
- var max_teller = total_nilai_marhun * (pinjaman_teller/100);
- var max_pelulus = total_nilai_marhun * (pinjaman_pelulus/100);
$('#pembiayaan_max_teller').val(formatter.format(max_teller));
- $('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus.toFixed(2)));
+ $('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus));
}
});
}
@@ -1721,5 +1768,153 @@
}
}
}
+
+ // Toggle Table Functionality
+ let isMarginTableVisible = false;
+
+ $('#toggleTableBtn').on('click', function() {
+ if (!isMarginTableVisible) {
+ // Show margin table, hide main table
+ $('#myTable_wrapper').hide();
+ $('#marginTable').show();
+ $(this).html(' Papar Marhun');
+ loadMarginData();
+ isMarginTableVisible = true;
+ } else {
+ // Show main table, hide margin table
+ $('#marginTable_wrapper').hide();
+ $('#myTable_wrapper').show();
+ $(this).html(' Papar Margin');
+ isMarginTableVisible = false;
+ }
+ });
+
+ function loadMarginData() {
+ let marginData = [];
+ let totalNilaiMarhun = 0;
+ let totalNilaiTeller = 0;
+ let totalNilaiPC = 0;
+
+ // Process each individual row from the main table
+ let rowsData = [];
+ tablemarhun.rows().data().each(function(row, index) {
+ let recno = row[1]; // Recno column
+ let karat = row[4]; // Karat column
+ let nilaiMarhun = parseFloat(row[3].replace(/[^0-9.-]+/g, "")); // Nilai Marhun column
+ rowsData.push({
+ index: index,
+ recno: recno,
+ karat: karat,
+ nilaiMarhun: nilaiMarhun
+ });
+ });
+
+ let bil = 1;
+ let processedCount = 0;
+ let totalEntries = rowsData.length;
+
+ rowsData.forEach((rowData) => {
+ // Call API to get margin data for each individual item
+ $.ajax({
+ url: '{{ config("api.url") }}/api/maxmutuemas/specific',
+ type: 'GET',
+ data: { karat: rowData.karat, nilaimarhun: rowData.nilaiMarhun },
+ success: function(response) {
+ if (response && response.karat) {
+ let nilaiTeller = parseFloat(response.maxteller) || 0;
+ let nilaiPC = parseFloat(response.maxpc) || 0;
+
+ marginData.push({
+ index: rowData.index,
+ bil: rowData.index + 1,
+ recno: rowData.recno,
+ karat: rowData.karat,
+ nilaiMarhun: rowData.nilaiMarhun,
+ marginTeller: response.teller,
+ marginPC: response.pc,
+ nilaiTeller: nilaiTeller,
+ nilaiPC: nilaiPC
+ });
+
+ totalNilaiMarhun += rowData.nilaiMarhun;
+ totalNilaiTeller += nilaiTeller;
+ totalNilaiPC += nilaiPC;
+ }
+
+ processedCount++;
+ if (processedCount === totalEntries) {
+ // Sort by original index to maintain order
+ marginData.sort((a, b) => a.index - b.index);
+ populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
+ }
+ },
+ error: function() {
+ processedCount++;
+ if (processedCount === totalEntries) {
+ // Sort by original index to maintain order
+ marginData.sort((a, b) => a.index - b.index);
+ populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
+ }
+ }
+ });
+ });
+ }
+
+ let marginDataTable = null;
+
+ function populateMarginTable(data, totalMarhun, totalTeller, totalPC) {
+ // If DataTable already exists, destroy it first
+ if (marginDataTable !== null) {
+ marginDataTable.destroy();
+ marginDataTable = null;
+ }
+
+ let tbody = $('#marginTableBody');
+ tbody.empty();
+
+ data.forEach(function(item) {
+ let row = `
+
+ | ${item.bil} |
+ ${item.karat} |
+ RM${item.nilaiMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+ ${item.marginTeller}% |
+ ${item.marginPC}% |
+ RM${item.nilaiTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+ RM${item.nilaiPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+
+ `;
+ tbody.append(row);
+ });
+
+ // Initialize DataTable
+ marginDataTable = $('#marginTable').DataTable({
+ "pageLength": 10,
+ "ordering": false,
+ "order": [[ 0, "asc" ]],
+ "responsive": true,
+ "language": {
+ "lengthMenu": "Papar _MENU_ rekod setiap halaman",
+ "zeroRecords": "Tiada rekod dijumpai",
+ "info": "Memapar halaman _PAGE_ dari _PAGES_",
+ "infoEmpty": "Tiada rekod tersedia",
+ "infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
+ "search": "Cari:",
+ "paginate": {
+ "first": "Pertama",
+ "last": "Akhir",
+ "next": "Seterusnya",
+ "previous": "Sebelumnya"
+ }
+ },
+ "footerCallback": function (row, data, start, end, display) {
+ // Update footer totals
+ $('#totalNilaiMarhunMargin').text('RM' + totalMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $('#totalNilaiTellerMargin').text('RM' + totalTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $('#totalNilaiPCMargin').text('RM' + totalPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ }
+ });
+ }
+
@endsection
diff --git a/resources/views/gadaian/v2/index.blade.php b/resources/views/gadaian/v2/index.blade.php
index 2dc0951..ce1d84f 100644
--- a/resources/views/gadaian/v2/index.blade.php
+++ b/resources/views/gadaian/v2/index.blade.php
@@ -63,6 +63,14 @@
+
+
+
+
+
+
+
+
+
+
+
+ | Bil |
+ Karat |
+ Nilai Marhun |
+ Margin Teller (%) |
+ Margin PC (%) |
+ Nilai Marhun Teller |
+ Nilai Marhun PC |
+
+
+
+
+
+
+
+ | Jumlah |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
@@ -472,21 +509,34 @@
})
}
- var tablemarhun = $('#myTable').DataTable({
- "ordering": false,
- "columnDefs": [
- {
- "targets": [ 1 ],
- "visible": false,
- "searchable": false
+ var tablemarhun = $('#myTable').DataTable({
+ "ordering": false,
+ "columnDefs": [{
+ "targets": [1],
+ "visible": false,
+ "searchable": false
+ },
+ {
+ "targets": [7],
+ "visible": true,
+ "searchable": false
+ }
+ ],
+ "language": {
+ "lengthMenu": "Papar _MENU_ rekod setiap halaman",
+ "zeroRecords": "Tiada rekod dijumpai",
+ "info": "Memapar halaman _PAGE_ dari _PAGES_",
+ "infoEmpty": "Tiada rekod tersedia",
+ "infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
+ "search": "Cari:",
+ "paginate": {
+ "first": "Pertama",
+ "last": "Akhir",
+ "next": "Seterusnya",
+ "previous": "Sebelumnya"
+ }
},
- {
- "targets": [ 7 ],
- "visible": false,
- "searchable": false
- }
- ]
- });
+ });
$(".select2").select2({
dropdownParent: $('#daftar_marhun'),
@@ -565,7 +615,7 @@
marhun_detail['harga'],
status_tag_permata,
marhun_detail['berat_batu_permata'],
- "
"
+ "
"
]).draw();
counter = counter + 1;
});
@@ -576,13 +626,7 @@
$('#bilangan_marhun').val(formatter.format(counter - 1));
$('#bilangan_jumlah_kuantiti').val(formatter.format(total_kuantiti));
$('#jumlah_nilai_marhun').val(formatter.format(jumlah_nilai_marhun));
- // if(total_nilai_marhun > 0 && total_nilai_marhun < 401){
- // kadarupah = 1.2/100;
- // }else if(total_nilai_marhun >= 401 && total_nilai_marhun < 2001){
- // kadarupah = 1.5/100;
- // }else if(total_nilai_marhun >= 2001 ){
- // kadarupah = 1.7/100;
- // }
+
$.ajax({
method:'GET',
@@ -597,11 +641,14 @@
}
});
- $('#total_nilai_marhun').val(formatter.format(total_nilai_marhun));
- $('#marhun_detail').val(marhun_details);
- $('#total_berat').val(formatter.format(total_berat));
- $('#kadarkeuntungan').val(formatter.format(kadarupah));
- $('#kuantiti_marhun').val(formatter.format(jumlah_marhun));
+ $('#total_nilai_marhun').val(formatter.format(total_nilai_marhun));
+ $('#marhun_detail').val(marhun_details);
+ $('#total_berat').val(formatter.format(total_berat));
+ $('#kadarkeuntungan').val(formatter.format(kadarupah));
+ $('#kuantiti_marhun').val(formatter.format(jumlah_marhun));
+
+ var max_teller = 0;
+ var max_pelulus = 0;
$.ajax({
method: 'GET',
@@ -614,17 +661,17 @@
$.each(data, function(index, pinjaman) {
if (pinjaman['user_type'] == 'teller') {
pinjaman_teller = Number(pinjaman['max']);
+ max_teller = pinjaman['teller_pinjaman'];
}
if (pinjaman['user_type'] == 'khazanah') {
pinjaman_pelulus = Number(pinjaman['max']);
+ max_pelulus = pinjaman['pc_pinjaman'];
}
});
$('.span-pinjaman-max-pelulus').text(formatter.format(pinjaman_pelulus) + ' %');
$('.span-pinjaman-max').text(formatter.format(pinjaman_teller) + ' %');
- var max_teller = total_nilai_marhun * (pinjaman_teller / 100);
- var max_pelulus = total_nilai_marhun * (pinjaman_pelulus / 100);
- $('#pembiayaan_max_teller').val(formatter.format(max_teller.toFixed(2)));
- $('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus.toFixed(2)));
+ $('#pembiayaan_max_teller').val(formatter.format(max_teller));
+ $('#pembiyaan_max_pelulus').val(formatter.format(max_pelulus));
}
});
}
@@ -1627,102 +1674,6 @@
});
}
- function viewmarhun(e){
- let selectedrow = $(e).closest('tr');
- let recno = tablemarhun.row(selectedrow).data();
- let nm = recno[3];
- let karat = recno[4];
- let berat = recno[5];
- let harga = recno[8];
- let nota = recno[7];
- let kuantiti = recno[6];
- let jenismarhun = recno[2];
- let beratpermata = recno[10];
-
-
-
- // Call API to get specific MaxMutuEmas data by karat
- $.ajax({
- url: '{{ config("api.url") }}/api/maxmutuemas/specific',
- type: 'GET',
- data: { karat: karat,nilaimarhun: nm },
- success: function(response) {
- let marginInfo = '';
- let marginTable = '';
- if (response && response.karat) {
- marginTable = `
-
-
- | Maklumat Margin |
-
-
- | Margin Teller | ${response.teller}% |
- | Margin PC | ${response.pc}% |
- | Nilai Marhun Teller | ${parseFloat(response.maxteller).toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
- | Nilai Marhun PC | ${parseFloat(response.maxpc).toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
-
-
- `;
- }
-
- let details = `
-
-
- | Maklumat Marhun |
-
-
- | Jenis Marhun | ${jenismarhun} |
- | Nilai Marhun Asal | ${nm} |
- | Karat | ${karat} |
- | Berat | ${berat}g |
- | Harga | RM${harga} |
-
-
- ${marginTable}
- `;
-
- Swal.fire({
- title: 'Maklumat Marhun & Margin',
- html: details,
- icon: 'info',
- confirmButtonText: 'OK',
- width: '600px'
- });
- },
- error: function(xhr) {
- // If API call fails, show basic marhun info only
- let details = `
-
-
- | Maklumat Marhun |
-
-
- | Jenis Marhun | ${jenismarhun} |
- | Nama | ${nm} |
- | Karat | ${karat} |
- | Berat | ${berat}g |
- | Kuantiti | ${kuantiti} |
- | Harga | RM${harga} |
- | Nota | ${nota} |
- | Berat Batu Permata | ${beratpermata}g |
-
-
-
- Maklumat margin tidak tersedia
-
- `;
-
- Swal.fire({
- title: 'Maklumat Marhun',
- html: details,
- icon: 'info',
- confirmButtonText: 'OK',
- width: '600px'
- });
- }
- });
- }
-
function editmarhun(e){
let norujuk = $('#norujukan').val();
let selectedrow = $(e).closest('tr');
@@ -1959,5 +1910,152 @@
}
});
+ // Toggle Table Functionality
+ let isMarginTableVisible = false;
+
+ $('#toggleTableBtn').on('click', function() {
+ if (!isMarginTableVisible) {
+ // Show margin table, hide main table
+ $('#myTable_wrapper').hide();
+ $('#marginTable').show();
+ $(this).html('
Papar Marhun');
+ loadMarginData();
+ isMarginTableVisible = true;
+ } else {
+ // Show main table, hide margin table
+ $('#marginTable_wrapper').hide();
+ $('#myTable_wrapper').show();
+ $(this).html('
Papar Margin');
+ isMarginTableVisible = false;
+ }
+ });
+
+ function loadMarginData() {
+ let marginData = [];
+ let totalNilaiMarhun = 0;
+ let totalNilaiTeller = 0;
+ let totalNilaiPC = 0;
+
+ // Process each individual row from the main table
+ let rowsData = [];
+ tablemarhun.rows().data().each(function(row, index) {
+ console.log(row);
+ let recno = row[1]; // Recno column
+ let karat = row[4]; // Karat column
+ let nilaiMarhun = parseFloat(row[3].replace(/[^0-9.-]+/g, "")); // Nilai Marhun column
+ rowsData.push({
+ index: index,
+ recno: recno,
+ karat: karat,
+ nilaiMarhun: nilaiMarhun
+ });
+ });
+
+ let bil = 1;
+ let processedCount = 0;
+ let totalEntries = rowsData.length;
+
+ rowsData.forEach((rowData) => {
+ // Call API to get margin data for each individual item
+ $.ajax({
+ url: '{{ config("api.url") }}/api/maxmutuemas/specific',
+ type: 'GET',
+ data: { karat: rowData.karat, nilaimarhun: rowData.nilaiMarhun },
+ success: function(response) {
+ if (response && response.karat) {
+ let nilaiTeller = parseFloat(response.maxteller) || 0;
+ let nilaiPC = parseFloat(response.maxpc) || 0;
+
+ marginData.push({
+ index: rowData.index,
+ bil: rowData.index + 1,
+ recno: rowData.recno,
+ karat: rowData.karat,
+ nilaiMarhun: rowData.nilaiMarhun,
+ marginTeller: response.teller,
+ marginPC: response.pc,
+ nilaiTeller: nilaiTeller,
+ nilaiPC: nilaiPC
+ });
+
+ totalNilaiMarhun += rowData.nilaiMarhun;
+ totalNilaiTeller += nilaiTeller;
+ totalNilaiPC += nilaiPC;
+ }
+
+ processedCount++;
+ if (processedCount === totalEntries) {
+ // Sort by original index to maintain order
+ marginData.sort((a, b) => a.index - b.index);
+ populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
+ }
+ },
+ error: function() {
+ processedCount++;
+ if (processedCount === totalEntries) {
+ // Sort by original index to maintain order
+ marginData.sort((a, b) => a.index - b.index);
+ populateMarginTable(marginData, totalNilaiMarhun, totalNilaiTeller, totalNilaiPC);
+ }
+ }
+ });
+ });
+ }
+
+ let marginDataTable = null;
+ function populateMarginTable(data, totalMarhun, totalTeller, totalPC) {
+ // If DataTable already exists, destroy it first
+ if (marginDataTable !== null) {
+ marginDataTable.destroy();
+ marginDataTable = null;
+ }
+
+ let tbody = $('#marginTableBody');
+ tbody.empty();
+
+ data.forEach(function(item) {
+ let row = `
+
+ | ${item.bil} |
+ ${item.karat} |
+ RM${item.nilaiMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+ ${item.marginTeller}% |
+ ${item.marginPC}% |
+ RM${item.nilaiTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+ RM${item.nilaiPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2})} |
+
+ `;
+ tbody.append(row);
+ });
+
+ // Initialize DataTable
+ marginDataTable = $('#marginTable').DataTable({
+ "pageLength": 10,
+ "ordering": false,
+ "order": [[ 0, "asc" ]],
+ "responsive": true,
+ "language": {
+ "lengthMenu": "Papar _MENU_ rekod setiap halaman",
+ "zeroRecords": "Tiada rekod dijumpai",
+ "info": "Memapar halaman _PAGE_ dari _PAGES_",
+ "infoEmpty": "Tiada rekod tersedia",
+ "infoFiltered": "(ditapis dari _MAX_ jumlah rekod)",
+ "search": "Cari:",
+ "paginate": {
+ "first": "Pertama",
+ "last": "Akhir",
+ "next": "Seterusnya",
+ "previous": "Sebelumnya"
+ }
+ },
+ "footerCallback": function (row, data, start, end, display) {
+ // Update footer totals
+ $('#totalNilaiMarhunMargin').text('RM' + totalMarhun.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $('#totalNilaiTellerMargin').text('RM' + totalTeller.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ $('#totalNilaiPCMargin').text('RM' + totalPC.toLocaleString('en-MY', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
+ }
+ });
+ }
+
@endsection