From 3f6521dc3ecc1c9134e1aa3594a59940557a3a57 Mon Sep 17 00:00:00 2001 From: BTMS2 Date: Mon, 17 Feb 2025 14:28:38 +0800 Subject: [PATCH 01/87] update tutup whatsapp --- .../bycawdetailnotisperingatan.blade.php | 32 +++++++++---------- .../bycawdetailnotisperingatankedua.blade.php | 32 +++++++++---------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php index 41d5cbf8..2929d05d 100644 --- a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php +++ b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php @@ -251,22 +251,22 @@ } }, - { - className: 'btn btn-outline-info pl-4 pr-4 btn-sm export', - target: "_blank", - titleAttr: 'Blast Whatsapp', - text: 'WHATSAPP & SMS', - action: function ( e, dt, node, config ) { - // $('#typedonwload').val('whatsapp'); - // $("#exportpdf").submit(); - $("#exportpdf").click(function() { - $('[data-toggle="tooltip"]').tooltip() - alert("ADAKAH ANDA PASTI?"); - $('#typedonwload').val('whatsapp'); - $("#exportpdf").submit(); - }); - } - } + // { + // className: 'btn btn-outline-info pl-4 pr-4 btn-sm export', + // target: "_blank", + // titleAttr: 'Blast Whatsapp', + // text: 'WHATSAPP & SMS', + // action: function ( e, dt, node, config ) { + // // $('#typedonwload').val('whatsapp'); + // // $("#exportpdf").submit(); + // $("#exportpdf").click(function() { + // $('[data-toggle="tooltip"]').tooltip() + // alert("ADAKAH ANDA PASTI?"); + // $('#typedonwload').val('whatsapp'); + // $("#exportpdf").submit(); + // }); + // } + // } diff --git a/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php b/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php index 2c8238f5..e8e2a5e5 100644 --- a/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php +++ b/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php @@ -284,22 +284,22 @@ } }, - { - className: 'btn btn-outline-info pl-4 pr-4 btn-sm export', - target: "_blank", - titleAttr: 'Blast Whatsapp', - text: 'WHATSAPP & SMS', - action: function ( e, dt, node, config ) { - // $('#typedonwload').val('whatsapp'); - // $("#exportpdf").submit(); - $("#exportpdf").click(function() { - $('[data-toggle="tooltip"]').tooltip() - alert("ADAKAH ANDA PASTI?"); - $('#typedonwload').val('whatsapp'); - $("#exportpdf").submit(); -}); - } - } + // { + // className: 'btn btn-outline-info pl-4 pr-4 btn-sm export', + // target: "_blank", + // titleAttr: 'Blast Whatsapp', + // text: 'WHATSAPP & SMS', + // action: function ( e, dt, node, config ) { + // // $('#typedonwload').val('whatsapp'); + // // $("#exportpdf").submit(); + // $("#exportpdf").click(function() { + // $('[data-toggle="tooltip"]').tooltip() + // alert("ADAKAH ANDA PASTI?"); + // $('#typedonwload').val('whatsapp'); + // $("#exportpdf").submit(); + // }); + // } + // } From 8056256bed92325bbdc65a9ee2f4f3a9440f99b9 Mon Sep 17 00:00:00 2001 From: BTMS2 Date: Mon, 17 Feb 2025 14:46:53 +0800 Subject: [PATCH 02/87] tambah excel pada arcc --- app/Http/Controllers/CallCenterController.php | 10 + .../bycawdetailnotisperingatan.blade.php | 22 +- .../notisperingatanpertama_excel.blade.php | 277 ++++++++++++++++++ 3 files changed, 298 insertions(+), 11 deletions(-) create mode 100644 resources/views/callcenter/notisperingatanpertama_excel.blade.php diff --git a/app/Http/Controllers/CallCenterController.php b/app/Http/Controllers/CallCenterController.php index f344853e..fb610386 100644 --- a/app/Http/Controllers/CallCenterController.php +++ b/app/Http/Controllers/CallCenterController.php @@ -308,6 +308,16 @@ class CallCenterController extends Controller $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json(); return view('callcenter.pdfbycawdetailnotisperingatan', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak')); } + elseif($request->type == 'excel') + { + $current = Carbon::now(); + $current = new Carbon(); + $tarikh_cetak = $current->toDateString(); + $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json(); + $cawangan_detail=$cawangan[0]; + $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json(); + return view('callcenter.notisperingatanpertama_excel', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak')); + } return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid')); } diff --git a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php index 2929d05d..7f34b8c4 100644 --- a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php +++ b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php @@ -230,17 +230,17 @@ dom: 'Bfrtip', buttons: [ - // { - // className: 'btn btn-outline-success pl-4 pr-4 btn-sm export', - // target: "_blank", - // titleAttr: 'Export to Excel', - // text: 'EXCEL', - // action: function ( e, dt, node, config ) { - // $('#typedonwload').val('excel'); - // $("#exportpdf").submit(); - // // window.open("_blank"); - // } - // }, + { + className: 'btn btn-outline-success pl-4 pr-4 btn-sm export', + target: "_blank", + titleAttr: 'Export to Excel', + text: 'EXCEL', + action: function ( e, dt, node, config ) { + $('#typedonwload').val('excel'); + $("#exportpdf").submit(); + // window.open("_blank"); + } + }, { className: 'btn btn-outline-danger pl-4 pr-4 btn-sm export', titleAttr: 'Export to PDF', diff --git a/resources/views/callcenter/notisperingatanpertama_excel.blade.php b/resources/views/callcenter/notisperingatanpertama_excel.blade.php new file mode 100644 index 00000000..b86924f1 --- /dev/null +++ b/resources/views/callcenter/notisperingatanpertama_excel.blade.php @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
Senarai Notis Peringatan Pertama Tarikh Cetak: + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate) + @endphp +
+ + + + + + + + + + + + + + + + + + + + + @foreach ($bycawnotisperingatan as $index => $item) + + + + + + + + + + + @if($item['datagadai']['tagbaru'] == '0') + + @elseif($item['datagadai']['tagbaru'] == '1') + + @endif + + @endif + + @endif + + @endif + + @endforeach +
BilNo.RujukanNamaNo.KPNo.TelefonTempohBaki Pembiayaan (RM)Keuntungan 6Bulan (RM)Amaun Telah Bayar (RM)Keuntungan Semasa (RM)Tarikh MatangTarikh Tamat KontrakTarikh Blast
{{ $loop->iteration }}{{$item['norujukan']}}{{$item['namacust']['nama'] ?? ''}}{{$item['nokp']}}6{{$item['namacust']['telefon'] ?? ''}}{{$item['jbg']}}{{number_format($item['datagadai']['bakipjm'], 2, '.', ',')}}{{number_format($item['datagadai']['bakiupah'], 2, '.', ',')}}{{number_format($item['datagadai']['hargajualan']-$item['datagadai']['bakihargajualan'], 2, '.', ',')}}{{number_format($item['keuntungan'], 2, '.', ',')}}{{number_format($item['keuntungan']['ujrah']+$item['keuntungan']['onepercent'], 2, '.', ',')}} + @if($item['tmatang'] == null) + @else + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tmatang']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate); + @endphp + @if($item['tmatang1'] == null) + @else + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tmatang1']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate); + @endphp + @if($item['tarikhnotis1'] == null) + + @else + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tarikhnotis1']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate); + @endphp
+ + + + + + + + + + + + + + + + From 5fb38ea473bedcb0a38b3cd606369250d7acfc82 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Tue, 25 Feb 2025 11:16:08 +0800 Subject: [PATCH 03/87] update surat wakil --- resources/views/print/surat_wakil.blade.php | 51 ++++++++++++++++----- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/resources/views/print/surat_wakil.blade.php b/resources/views/print/surat_wakil.blade.php index 8289a6ea..4a6cf465 100644 --- a/resources/views/print/surat_wakil.blade.php +++ b/resources/views/print/surat_wakil.blade.php @@ -80,13 +80,28 @@ font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%; - font-size: 12px; + font-size: 10px; } #note p { margin: 2px; } + @@ -104,11 +119,24 @@ User Image -
-
Tarikh Cetak: {{$tarikh_cetak}}
-
-
No Siri: {{$nosiri}}
- +
+
+ @php + echo 'barcode'; + @endphp +
+ +
+
Tarikh Cetak: {{$tarikh_cetak}}
+
+
+
No Siri: {{$nosiri}}
+
+
+
Cetakan: arOS V2
+
@@ -159,7 +187,9 @@ - Penyelesaian Penuh + + Penyelesaian Penuh + Penyelesaian Penuh dan Permohonan Pembiayaan Baru @@ -264,11 +294,10 @@

*Penting:

-

  a) Sila lampirkan bersama:

-

     i. Salinan kad pengenalan diri pelanggan dan kad pengenalan diri wakil yang dilantik. -

+

 a) Sila lampirkan bersama:

+

     i. Salinan kad pengenalan diri pelanggan dan kad pengenalan diri wakil yang dilantik.

     ii. SAG asal pelanggan

-

 b) Pastikan tandatangan pelanggan adalah sama dengan tandatangan di Surat Akuan Gadai.

+

 b) Pastikan tandatangan pelanggan di dalam Surat Perlantikan Wakil ini adalah sama dengan tandatangan di Surat Akuan Gadai.

From 0033ed240a8cdc81e82dfbb4cd05e1a241cba31c Mon Sep 17 00:00:00 2001 From: BTMS2 Date: Wed, 12 Mar 2025 16:12:05 +0800 Subject: [PATCH 04/87] update arcc last byar kb1 --- resources/views/callcenter/v1/info.blade.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/views/callcenter/v1/info.blade.php b/resources/views/callcenter/v1/info.blade.php index 4ea9d4ff..3a65bdaa 100644 --- a/resources/views/callcenter/v1/info.blade.php +++ b/resources/views/callcenter/v1/info.blade.php @@ -7,7 +7,7 @@ @include('modal.agh') -
+
@@ -155,7 +155,8 @@ Margin Tempoh Keuntungan - Lelong + Lelong + Pembayaran Terakhir @@ -722,6 +723,7 @@ } var taglel = ''; + var lastbayar = ''; if(gadai_detail['taglel'] == 1){ if(tagarrahnbid == 1){ $.ajax({ @@ -731,6 +733,7 @@ success: function(data){ taglel = data.lelong.t_lelong; + lastbayar = data.lelong.lastbayar; } }); } else { @@ -744,6 +747,7 @@ }, success: function(v){ taglel = v.t_lelong; + } }); } @@ -777,6 +781,7 @@ gadai_detail['tempoh'], 'RM '+ formatter.format(upahsemasa), '
' + taglel + '
', + '
' + lastbayar + '
', ]).draw(); } }else if(jenistebus == "sudah_tebus"){ From d8de04ade9366cb8b60a9767c3d370faab11818c Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 16 Mar 2025 12:25:05 +0800 Subject: [PATCH 05/87] update serahan online, lelong dan keseluruhan --- app/Http/Controllers/KhazanahController.php | 4 +++- .../laporan/pendahuluanserahan.blade.php | 19 ++++++++++++++++--- .../laporan_pendahuluanserahan.blade.php | 15 ++++++++++++++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index ad081f8c..8cba09c0 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -3065,7 +3065,9 @@ class KhazanahController extends Controller $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json(); $cawangan_detail=$cawangan[0]; - return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url')); + $jenisLaporan = $request->radpendser; + + return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','jenisLaporan')); } public function laporanDenominasi() diff --git a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php index 2f02b2c8..6d874fb7 100644 --- a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php +++ b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php @@ -96,11 +96,24 @@
- +
+
+ + +
+
+


-
+ {{--
@@ -114,7 +127,7 @@ Serahan-Online
-
+
--}}
diff --git a/resources/views/print/laporan_pendahuluanserahan.blade.php b/resources/views/print/laporan_pendahuluanserahan.blade.php index 64486885..412e5099 100644 --- a/resources/views/print/laporan_pendahuluanserahan.blade.php +++ b/resources/views/print/laporan_pendahuluanserahan.blade.php @@ -169,10 +169,23 @@ --}}
+@php +$reportNames = [ + 'serahan' => 'LAPORAN SERAHAN HQ', + 'pendahuluan' => 'LAPORAN PENDAHULUAN HQ', + 'online' => 'LAPORAN SERAHAN ONLINE HQ', + 'serahanlelong' => 'LAPORAN SERAHAN LELONG HQ', + 'serahanonline' => 'LAPORAN SERAHAN DAN SERAHAN ONLINE HQ', + 'all' => 'LAPORAN KESELURUHAN HQ' +]; + +$displayJenisLaporan = $reportNames[$jenisLaporan] ?? 'Laporan Tidak Diketahui'; +@endphp - + {{-- --}} + From 6f52b6256f4805d3d338b7c52fd9762c86ae76fd Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Wed, 19 Feb 2025 01:07:27 +0800 Subject: [PATCH 06/87] added serahan v3 --- app/View/Components/AutoSerah.php | 28 +++ .../views/components/auto-serah.blade.php | 2 + .../khazanah/pendahuluanserahanmain.blade.php | 231 ++++++++++++------ ...enominasimodalpendahuluanserahan.blade.php | 1 + 4 files changed, 181 insertions(+), 81 deletions(-) create mode 100644 app/View/Components/AutoSerah.php create mode 100644 resources/views/components/auto-serah.blade.php diff --git a/app/View/Components/AutoSerah.php b/app/View/Components/AutoSerah.php new file mode 100644 index 00000000..85365bc1 --- /dev/null +++ b/app/View/Components/AutoSerah.php @@ -0,0 +1,28 @@ + + \ No newline at end of file diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index 8ba70643..cbcb8952 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -61,6 +61,7 @@ + @@ -205,25 +206,44 @@ } $('#pendahuluanserahanModal').on('shown.bs.modal', function (e) { + let input = $(e.relatedTarget); + let inputselected = input.data('input'); + + + if(inputselected == 'AutoSerahan') + { + $('#jenisserahan').val('auto'); + $('input[name="radwang"][value="pendahuluan"]').prop('disabled', true); + $('input[name="radwang"][value="serahan"]').prop('checked', true); + $('#keterangan').val('Auto Serahan Kepada V3'); + $('#dtacct').val('1000/010'); + $('#ktacct').val('1000/020'); + $('input[name="denominasi"]').attr('style','display: block'); + $('.denominasi').attr('style','display: block'); + }else{ + $('#jenisserahan').val('biasa'); + $('input[name="radwang"][value="pendahuluan"]').prop('disabled', false); + $('#bundle1').val(''); + $('#totalb1').val(0.00); + $('#bundle5').val(''); + $('#totalb5').val(0.00); + $('#bundle10').val(''); + $('#totalb10').val(0.00); + $('#bundle20').val(''); + $('#totalb20').val(0.00); + $('#bundle50').val(''); + $('#totalb50').val(0.00); + $('#bundle100').val(''); + $('#totalb100').val(0.00); + $('#amaunkiraan').val(''); + $('#dtacct').val(''); + $('#ktacct').val(''); + $('#keterangan').val(''); + $('#amaun').val(''); + $('input[name="radwang"]').prop('checked', false); + } + - $('#bundle1').val(''); - $('#totalb1').val(0.00); - $('#bundle5').val(''); - $('#totalb5').val(0.00); - $('#bundle10').val(''); - $('#totalb10').val(0.00); - $('#bundle20').val(''); - $('#totalb20').val(0.00); - $('#bundle50').val(''); - $('#totalb50').val(0.00); - $('#bundle100').val(''); - $('#totalb100').val(0.00); - $('#amaunkiraan').val(''); - $('#dtacct').val(''); - $('#ktacct').val(''); - $('#keterangan').val(''); - $('#amaun').val(''); - $('input[name="radwang"]').prop('checked', false); }); @@ -343,6 +363,7 @@ let dtacct = $('#dtacct').val(); let ktacct = $('#ktacct').val(); let auth_user = $('#auth_user').val(); //letak user + let jenisserahan = $('#jenisserahan').val(); // Denominasi bundle let bundle1 = $('#bundle1').val(); @@ -373,70 +394,118 @@ return false; } - Swal.fire({ - title: 'Memuatkan...', - allowEscapeKey: false, - allowOutsideClick: false, - didOpen: function () { - Swal.showLoading(); - $('#denominasiHQModal').modal('hide'); - } - }); - - $.ajax({ - method: 'post', - url: '{{ route("khazanah.pendahuluanserahanHQ") }}', - data: { - "_token": "{{ csrf_token() }}", - 'amaun': amaun, - 'jenisgldetail': jenis, - 'keterangan': keterangan, - 'kodcaw': kodcaw, - 'teller': teller, - 'dtacct': dtacct, - 'ktacct': ktacct, - 'auth_user': auth_user, // mskkan auth_user - 'ambilansen1': sen1, - 'ambilansen5': sen5, - 'ambilansen10': sen10, - 'ambilansen20': sen20, - 'ambilansen50': sen50, - 'ambilanring1': ringgit1, - 'ambilanring5': ringgit5, - 'ambilanring10': ringgit10, - 'ambilanring20': ringgit20, - 'ambilanring50': ringgit50, - 'ambilanring100': ringgit100 - }, - success: function (data) { - if (data == 'LULUS') { - Swal.fire({ - icon: 'success', - title: 'Transaksi Berjaya', - allowEscapeKey: false, - allowOutsideClick: false - }).then(function () { - $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('hide'); - location.reload(); - }); - } else if (data == 'GAGAL') { - Swal.fire({ - icon: 'error', - title: 'Transaksi Gagal', - allowEscapeKey: false, - allowOutsideClick: false - }).then(function () { - $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('hide'); - $("#terima_transaksi").prop('disabled', false); - }); + if(jenisserahan == 'biasa') + { + Swal.fire({ + title: 'Memuatkan...', + allowEscapeKey: false, + allowOutsideClick: false, + didOpen: function () { + Swal.showLoading(); + $('#denominasiHQModal').modal('hide'); } - }, - error: function (jqXHR, textStatus, errorThrown) { - console.log(textStatus, errorThrown); - } - }); + }); + }else{ + Swal.fire({ + title: 'Tunggu Pengesahan Daripada Operasi.', + icon: 'info', + width: 600, + padding: '3em', + background: '#fffff', + showCancelButton: false, + showConfirmButton: false, + allowOutsideClick: false, + allowEscapeKey: false, + allowEnterKey: false, + didOpen: function () { + $('#denominasiHQModal').modal('hide'); + } + }); + } + + let array_send = { + amaun: amaun, + jenisgldetail: jenis, + keterangan: keterangan, + kodcaw: kodcaw, + teller: teller, + dtacct: dtacct, + ktacct: ktacct, + auth_user: auth_user, + ambilansen1: sen1, + ambilansen5: sen5, + ambilansen10: sen10, + ambilansen20: sen20, + ambilansen50: sen50, + ambilanring1: ringgit1, + ambilanring5: ringgit5, + ambilanring10: ringgit10, + ambilanring20: ringgit20, + ambilanring50: ringgit50, + ambilanring100: ringgit100 + }; + this.sendRequest(array_send,jenisserahan); + } + + function sendRequest(arraysend,jenisserahan){ + + if(jenisserahan == 'biasa'){ + $.ajax({ + method: 'post', + url: '{{ route("khazanah.pendahuluanserahanHQ") }}', + data: { + "_token": "{{ csrf_token() }}", + 'amaun': arraysend['amaun'], + 'jenisgldetail': arraysend['jenis'], + 'keterangan': arraysend['keterangan'], + 'kodcaw': arraysend['kodcaw'], + 'teller': arraysend['teller'], + 'dtacct': arraysend['dtacct'], + 'ktacct': arraysend['ktacct'], + 'auth_user': arraysend['auth_user'], + 'ambilansen1': arraysend['ambilansen1'], + 'ambilansen5': arraysend['ambilansen5'], + 'ambilansen10': arraysend['ambilansen10'], + 'ambilansen20': arraysend['ambilansen20'], + 'ambilansen50': arraysend['ambilansen50'], + 'ambilanring1': arraysend['ambilanring1'], + 'ambilanring5': arraysend['ambilanring5'], + 'ambilanring10': arraysend['ambilanring10'], + 'ambilanring20': arraysend['ambilanring20'], + 'ambilanring50': arraysend['ambilanring50'], + 'ambilanring100': arraysend['ambilanring100'] + }, + success: function (data) { + if (data == 'LULUS') { + Swal.fire({ + icon: 'success', + title: 'Transaksi Berjaya', + allowEscapeKey: false, + allowOutsideClick: false + }).then(function () { + $('#denominasiHQModal').modal('hide'); + $('#pendahuluanserahanModal').modal('hide'); + location.reload(); + }); + } else if (data == 'GAGAL') { + Swal.fire({ + icon: 'error', + title: 'Transaksi Gagal', + allowEscapeKey: false, + allowOutsideClick: false + }).then(function () { + $('#denominasiHQModal').modal('hide'); + $('#pendahuluanserahanModal').modal('hide'); + $("#terima_transaksi").prop('disabled', false); + }); + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log(textStatus, errorThrown); + } + }); + } + } diff --git a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php index 0ba00966..7b7e068f 100644 --- a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php +++ b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php @@ -132,6 +132,7 @@ + From d79c367d4805b209e81bd21fe9051990d65534c5 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Sun, 2 Mar 2025 09:01:18 +0800 Subject: [PATCH 07/87] added event and call --- app/Events/AutoSerahan.php | 36 ++++++++++ app/Http/Controllers/KhazanahController.php | 72 +++++++++++++++++++ config/api.php | 4 +- .../khazanah/pendahuluanserahanmain.blade.php | 58 ++++++++++++++- routes/web.php | 2 + 5 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 app/Events/AutoSerahan.php diff --git a/app/Events/AutoSerahan.php b/app/Events/AutoSerahan.php new file mode 100644 index 00000000..a6186363 --- /dev/null +++ b/app/Events/AutoSerahan.php @@ -0,0 +1,36 @@ +pengesahan = $pengesahan; + $this->id = $id; + $this->cawangan = $cawangan; + $this->kodlaluan = $kodlaluan; + } + + public function broadcastOn() + { + return ['autoserahan-notice']; + } + + public function broadcastAs() + { + return 'autoserahan-event'; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 8cba09c0..5bc8be01 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -4286,4 +4286,76 @@ class KhazanahController extends Controller $val = preg_replace('/\.(?=.*\.)/', '', $val); return floatval($val); } + + + public function AutoSerahan(Request $request) + { + // Step 1: Call API v3 First + $call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')]) + ->post(config('api.url_koop') . '/api/autoserahan/create', [ + 'kodcaw' => $request->arraysend['kodcaw'], + 'teller' => $request->arraysend['teller'], + 'amaun' => $request->arraysend['amaun'], + 'txtring1' => $request->arraysend['ambilanring1'], + 'txtring5' => $request->arraysend['ambilanring5'], + 'txtring10' => $request->arraysend['ambilanring10'], + 'txtring20' => $request->arraysend['ambilanring20'], + 'txtring50' => $request->arraysend['ambilanring50'], + 'txtring100' => $request->arraysend['ambilanring100'], + 'txtsen1' => $request->arraysend['ambilansen1'], + 'txtsen5' => $request->arraysend['ambilansen5'], + 'txtsen10' => $request->arraysend['ambilansen10'], + 'txtsen20' => $request->arraysend['ambilansen20'], + 'txtsen50' => $request->arraysend['ambilansen50'], + 'jenis' => 'pendahuluan', + 'version' => 'v3', + ])->json(); + + // Check if API v3 was successful before proceeding + if (!isset($call_approval_v3['id']) || $call_approval_v3['status'] !== 'success') { + return response()->json([ + 'status' => 'failed', + 'message' => 'API v3 failed. Cannot proceed to API v2.', + 'error' => $call_approval_v3 + ], 400); + } + + // Step 2: Call API v2 using response from API v3 + $call_approval_v2 = Http::withOptions(['verify' => config('app.api_verify')]) + ->post(config('api.url_pkb') . '/api/autoserahan/create', [ + 'id' => $call_approval_v3['id'], // Use ID from API v3 response + 'kodcaw' => $request->arraysend['kodcaw'], + 'teller' => $request->arraysend['teller'], + 'amaun' => $request->arraysend['amaun'], + 'txtring1' => $request->arraysend['ambilanring1'], + 'txtring5' => $request->arraysend['ambilanring5'], + 'txtring10' => $request->arraysend['ambilanring10'], + 'txtring20' => $request->arraysend['ambilanring20'], + 'txtring50' => $request->arraysend['ambilanring50'], + 'txtring100' => $request->arraysend['ambilanring100'], + 'txtsen1' => $request->arraysend['ambilansen1'], + 'txtsen5' => $request->arraysend['ambilansen5'], + 'txtsen10' => $request->arraysend['ambilansen10'], + 'txtsen20' => $request->arraysend['ambilansen20'], + 'txtsen50' => $request->arraysend['ambilansen50'], + 'jenis' => 'serahan', + 'version' => 'v2', + ])->json(); + + // Step 3: Check if both API v3 and API v2 were successful + if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success') { + return response()->json([ + 'status' => 'success', + 'message' => 'Approval process completed successfully', + 'id' => $call_approval_v3['id'], + ]); + } else { + return response()->json([ + 'status' => 'failed', + 'message' => 'One of the approvals failed', + ], 400); + } + } + + } diff --git a/config/api.php b/config/api.php index e8ea7a3d..7b7aa371 100644 --- a/config/api.php +++ b/config/api.php @@ -1,4 +1,6 @@ env('API_URL') + 'url' => env('API_URL'), + 'url_koop' => env('API_URL_KOOP','http://localhost:8000'), + 'url_pkb' => env('API_URL_PKB','http://localhost:8000'), ]; \ No newline at end of file diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index cbcb8952..c579a82a 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -393,6 +393,7 @@ }); return false; } + let SwalPengesahan = ''; if(jenisserahan == 'biasa') { @@ -406,7 +407,7 @@ } }); }else{ - Swal.fire({ + let SwalPengesahan = Swal.fire({ title: 'Tunggu Pengesahan Daripada Operasi.', icon: 'info', width: 600, @@ -448,7 +449,6 @@ } function sendRequest(arraysend,jenisserahan){ - if(jenisserahan == 'biasa'){ $.ajax({ method: 'post', @@ -503,6 +503,60 @@ error: function (jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); } + }); + }else{ + let approvalid = ''; + $.ajax({ + method: 'post', + url: '{{ route("khazanah.autoserahan") }}', + data: { + "_token": "{{ csrf_token() }}", + 'arraysend': arraysend + }, + success:function(e){ + approvalid = e.id; + Swal.update({ + text: 'Menunggu Pengesahan Daripada Operasi!', + }); + } + }); + + var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + + var channel = pusher.subscribe('autoserahan-notice'); + channel.bind('autoserahan-event', function(data) { + console.log(data); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller) + { + Swal.fire({ + icon: 'success', + title: 'Auto Serahan Berjaya', + text: 'Operasi berjaya meluluskan Auto Serahan!' + }).then(function(){ + location.reload(); + }); + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller){ + Swal.fire({ + icon: 'error', + title: 'Auto Serahan Dibatalkan', + text: 'Operasi membatalkan Auto Serahan!' + }).then(function(){ + location.reload(); + }); + }else{ + Swal.fire({ + icon: 'error', + title: 'Auto Serahan Mengalami Ralat', + text: 'Auto Serahan tidak berjaya!' + }).then(function(){ + location.reload(); + }); + } + + }); } diff --git a/routes/web.php b/routes/web.php index d31216d0..e6719ef6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -161,6 +161,8 @@ Route::post('/permohonan/simpan',['as'=>'permohonan.simpan','uses' => 'KhazanahC Route::get('/permohonan/status/{mohonid}',['as'=>'permohonan.status','uses' => 'KhazanahController@StatusPermohonan'])->middleware('auth','khazanah'); Route::post('/permohonan/cit',['as'=>'permohonan.cit','uses' => 'KhazanahController@CITPermohonan'])->middleware('auth','khazanah'); Route::post('/permohonan/download',['as'=>'permohonan.download','uses' => 'KhazanahController@DownloadFiles'])->middleware('auth','khazanah'); +Route::post('/khazanah/autoserahan',['as'=>'khazanah.autoserahan','uses'=>'KhazanahController@AutoSerahan'])->middleware('auth','khazanah'); + Route::post('/kakitangan/harian',['as'=>'kakitangan.harian','uses'=>'KakitanganController@kakitanganHarian'])->middleware('auth','khazanah'); Route::get('/lelong',['as'=>'lelong','uses'=>'LelongController@lelong']); From f760a683d94f6cacb35ff8bbbca04cb1728e9a16 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 17 Mar 2025 11:37:03 +0800 Subject: [PATCH 08/87] added delete function in kaunter --- app/Http/Controllers/KhazanahController.php | 35 +++++- .../khazanah/pendahuluanserahanmain.blade.php | 113 +++++++++++++++++- 2 files changed, 140 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 5bc8be01..cd4c9d1c 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -215,7 +215,11 @@ class KhazanahController extends Controller $denominasi=$denominasi[0]; } - return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi')); + $proses = Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url_koop') .'/api/autoserahan/checkapproval',[ + 'pc_name' => $auth_user['name'] + ])->json(); + + return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi','proses')); } @@ -4290,6 +4294,24 @@ class KhazanahController extends Controller public function AutoSerahan(Request $request) { + if(isset($request->do_delete) && $request->do_delete == true){ + $call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')]) + ->post(config('api.url_koop') . '/api/autoserahan/delete', [ + 'recno' => $request->recno, + 'version' => 'v3', + 'kodcaw' => $request->kodcaw, + 'teller' => $request->teller, + 'amaun' => $request->amaun, + ])->json(); + + return response()->json([ + 'status' => 'success', + 'message' => 'Approval process completed successfully', + 'id' => $call_approval_v3['id'], + ]); + + } + // Step 1: Call API v3 First $call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')]) ->post(config('api.url_koop') . '/api/autoserahan/create', [ @@ -4308,6 +4330,7 @@ class KhazanahController extends Controller 'txtsen20' => $request->arraysend['ambilansen20'], 'txtsen50' => $request->arraysend['ambilansen50'], 'jenis' => 'pendahuluan', + 'action' => 'create', 'version' => 'v3', ])->json(); @@ -4342,8 +4365,16 @@ class KhazanahController extends Controller 'version' => 'v2', ])->json(); + $call_set_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')]) + ->put(config('api.url_koop') . '/api/autoserahan/setapproval', [ + 'jenis' => 'create', + 'id' => $call_approval_v3['id'], + 'deno_id' => $call_approval_v2['denoid'] + ])->json(); + + // Step 3: Check if both API v3 and API v2 were successful - if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success') { + if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success' && $call_set_approval_v3['status'] === 'success') { return response()->json([ 'status' => 'success', 'message' => 'Approval process completed successfully', diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index c579a82a..0d744648 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -5,6 +5,23 @@ @include('modal.pendahuluanserahan') @include('modal.denominasimodalpendahuluanserahan') +@if(count($proses) > 0) + +@endif
@@ -51,7 +68,7 @@
- @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif + @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif @endforeach @@ -215,7 +232,8 @@ $('#jenisserahan').val('auto'); $('input[name="radwang"][value="pendahuluan"]').prop('disabled', true); $('input[name="radwang"][value="serahan"]').prop('checked', true); - $('#keterangan').val('Auto Serahan Kepada V3'); + $('#keterangan').val('Serahan Kepada V3'); + $('#keterangan').attr('readonly', true); $('#dtacct').val('1000/010'); $('#ktacct').val('1000/020'); $('input[name="denominasi"]').attr('style','display: block'); @@ -240,6 +258,7 @@ $('#ktacct').val(''); $('#keterangan').val(''); $('#amaun').val(''); + $('#keterangan').attr('readonly', false); $('input[name="radwang"]').prop('checked', false); } @@ -450,13 +469,14 @@ function sendRequest(arraysend,jenisserahan){ if(jenisserahan == 'biasa'){ + console.log(arraysend); $.ajax({ method: 'post', url: '{{ route("khazanah.pendahuluanserahanHQ") }}', data: { "_token": "{{ csrf_token() }}", 'amaun': arraysend['amaun'], - 'jenisgldetail': arraysend['jenis'], + 'jenisgldetail': arraysend['jenisgldetail'], 'keterangan': arraysend['keterangan'], 'kodcaw': arraysend['kodcaw'], 'teller': arraysend['teller'], @@ -515,9 +535,11 @@ }, success:function(e){ approvalid = e.id; - Swal.update({ - text: 'Menunggu Pengesahan Daripada Operasi!', - }); + if(e.status == 'success'){ + Swal.update({ + text: 'Menunggu Pengesahan Daripada Operasi!', + }); + } } }); @@ -562,5 +584,84 @@ } + function deleteautoserahan(e){ + let recno = $(e).data('recno'); + let pend = $(e).data('pend'); + let ser = $(e).data('ser'); + + let SwalPengesahan = Swal.fire({ + title: 'Tunggu Pengesahan Daripada Operasi.', + icon: 'info', + width: 600, + padding: '3em', + background: '#fffff', + showCancelButton: false, + showConfirmButton: false, + allowOutsideClick: false, + allowEscapeKey: false, + allowEnterKey: false, + }); + + let approvalid = ''; + $.ajax({ + method: 'post', + url: '{{ route("khazanah.autoserahan") }}', + data: { + "_token": "{{ csrf_token() }}", + 'do_delete': true, + 'recno' : recno, + 'kodcaw' : kodcaw, + 'teller' : teller, + 'amaun' : (pend > 0 ) ? pend : ser + }, + success:function(e){ + approvalid = e.id; + if(e.status == 'success'){ + Swal.update({ + text: 'Menunggu Pengesahan Daripada Operasi!', + }); + } + } + }); + + var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + + var channel = pusher.subscribe('autoserahan-notice'); + channel.bind('autoserahan-event', function(data) { + console.log(data); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller) + { + Swal.fire({ + icon: 'success', + title: 'Auto Serahan Berjaya', + text: 'Operasi berjaya meluluskan Auto Serahan!' + }).then(function(){ + location.reload(); + }); + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller){ + Swal.fire({ + icon: 'error', + title: 'Auto Serahan Dibatalkan', + text: 'Operasi membatalkan Auto Serahan!' + }).then(function(){ + location.reload(); + }); + }else{ + Swal.fire({ + icon: 'error', + title: 'Auto Serahan Mengalami Ralat', + text: 'Auto Serahan tidak berjaya!' + }).then(function(){ + location.reload(); + }); + } + + + }); + } + @endsection From 4751c879276e927afa8ee5d5aca8e8f3b7891c23 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Tue, 18 Mar 2025 12:16:05 +0800 Subject: [PATCH 09/87] update laporan pendahuluan dan serahan --- resources/views/khazanah/laporan/pendahuluanserahan.blade.php | 4 ++-- resources/views/print/laporan_pendahuluanserahan.blade.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php index 6d874fb7..351eac7c 100644 --- a/resources/views/khazanah/laporan/pendahuluanserahan.blade.php +++ b/resources/views/khazanah/laporan/pendahuluanserahan.blade.php @@ -102,14 +102,14 @@ - - +

diff --git a/resources/views/print/laporan_pendahuluanserahan.blade.php b/resources/views/print/laporan_pendahuluanserahan.blade.php index 412e5099..2e457df2 100644 --- a/resources/views/print/laporan_pendahuluanserahan.blade.php +++ b/resources/views/print/laporan_pendahuluanserahan.blade.php @@ -174,6 +174,7 @@ $reportNames = [ 'serahan' => 'LAPORAN SERAHAN HQ', 'pendahuluan' => 'LAPORAN PENDAHULUAN HQ', 'online' => 'LAPORAN SERAHAN ONLINE HQ', + 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3', 'serahanlelong' => 'LAPORAN SERAHAN LELONG HQ', 'serahanonline' => 'LAPORAN SERAHAN DAN SERAHAN ONLINE HQ', 'all' => 'LAPORAN KESELURUHAN HQ' From aed0ef5173650133cb4bbaa177da5878d1fce7ea Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Wed, 19 Mar 2025 10:06:42 +0800 Subject: [PATCH 10/87] delete cawangan since it have kodlaluan and id dah --- .../khazanah/pendahuluanserahanmain.blade.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index 0d744648..2a3e0c56 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -353,7 +353,7 @@ function funcbatal() { $('#denominasiHQModal').modal('hide'); - $('#pendahuluanserahanModal').modal('show'); + // $('#pendahuluanserahanModal').modal('show'); $("#terima_transaksi").prop('disabled', false); @@ -550,8 +550,8 @@ var channel = pusher.subscribe('autoserahan-notice'); channel.bind('autoserahan-event', function(data) { - console.log(data); - if(data.pengesahan === 'Lulus' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller) + console.log(data,approvalid,kodcaw,teller); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller) { Swal.fire({ icon: 'success', @@ -560,7 +560,7 @@ }).then(function(){ location.reload(); }); - }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller){ + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ Swal.fire({ icon: 'error', title: 'Auto Serahan Dibatalkan', @@ -631,8 +631,8 @@ var channel = pusher.subscribe('autoserahan-notice'); channel.bind('autoserahan-event', function(data) { - console.log(data); - if(data.pengesahan === 'Lulus' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller) + console.log(data,approvalid,teller,kodcaw); + if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller) { Swal.fire({ icon: 'success', @@ -641,7 +641,7 @@ }).then(function(){ location.reload(); }); - }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.cawangan == kodcaw && data.kodlaluan == teller){ + }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ Swal.fire({ icon: 'error', title: 'Auto Serahan Dibatalkan', From ae3b9cf7bc64b10397bba67b0757c41494c0b210 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Wed, 19 Mar 2025 10:35:03 +0800 Subject: [PATCH 11/87] update laporan --- resources/views/print/laporan_pendahuluanserahan.blade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/views/print/laporan_pendahuluanserahan.blade.php b/resources/views/print/laporan_pendahuluanserahan.blade.php index 2e457df2..1f3371dd 100644 --- a/resources/views/print/laporan_pendahuluanserahan.blade.php +++ b/resources/views/print/laporan_pendahuluanserahan.blade.php @@ -172,6 +172,7 @@ @php $reportNames = [ 'serahan' => 'LAPORAN SERAHAN HQ', + 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3', 'pendahuluan' => 'LAPORAN PENDAHULUAN HQ', 'online' => 'LAPORAN SERAHAN ONLINE HQ', 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3', From 988b04f817afc2a841015741158ff779f7ef0b8a Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Tue, 25 Mar 2025 00:54:18 +0800 Subject: [PATCH 12/87] added split autoserahan and modal biasa --- app/Http/Controllers/KhazanahController.php | 3 + .../views/components/auto-serah.blade.php | 2 +- .../khazanah/pendahuluanserahanmain.blade.php | 80 ++++++++++++++++--- resources/views/modal/autoserahan.blade.php | 49 ++++++++++++ 4 files changed, 124 insertions(+), 10 deletions(-) create mode 100644 resources/views/modal/autoserahan.blade.php diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index cd4c9d1c..cd7faf8b 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -13,6 +13,7 @@ use App\Events\NotifikasiKelulusan; use App\Events\NotifikasiUbahHapus; use App\Events\NotifikasiAGH; use App\Events\NotifikasiPetiBesi; +use App\Events\AutoSerahan; use App\User; use App\Cawangan; @@ -4375,6 +4376,8 @@ class KhazanahController extends Controller // Step 3: Check if both API v3 and API v2 were successful if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success' && $call_set_approval_v3['status'] === 'success') { + event(new AutoSerahan("Operasi",$call_approval_v3['id'],$request->arraysend['kodcaw'],$request->arraysend['teller'])); + return response()->json([ 'status' => 'success', 'message' => 'Approval process completed successfully', diff --git a/resources/views/components/auto-serah.blade.php b/resources/views/components/auto-serah.blade.php index 0a53f479..9e6537ee 100644 --- a/resources/views/components/auto-serah.blade.php +++ b/resources/views/components/auto-serah.blade.php @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index 2a3e0c56..fe54107d 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -3,6 +3,7 @@ @section('content') @include('modal.pendahuluanserahan') +@include('modal.autoserahan') @include('modal.denominasimodalpendahuluanserahan') @if(count($proses) > 0) @@ -232,6 +233,7 @@ $('#jenisserahan').val('auto'); $('input[name="radwang"][value="pendahuluan"]').prop('disabled', true); $('input[name="radwang"][value="serahan"]').prop('checked', true); + $('input[name="radwang"][value="serahan"]').prop('disabled', true); $('#keterangan').val('Serahan Kepada V3'); $('#keterangan').attr('readonly', true); $('#dtacct').val('1000/010'); @@ -568,16 +570,7 @@ }).then(function(){ location.reload(); }); - }else{ - Swal.fire({ - icon: 'error', - title: 'Auto Serahan Mengalami Ralat', - text: 'Auto Serahan tidak berjaya!' - }).then(function(){ - location.reload(); - }); } - }); } @@ -663,5 +656,74 @@ }); } + const getCurrentDate = () => { + const today = new Date(); + const day = String(today.getDate()).padStart(2, '0'); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const year = today.getFullYear(); + + return `${day}/${month}/${year}`; + }; + + function triggerValue(){ + let form = $('form[name="autoserah"]'); + form.find('[name="tarikh"]').val(getCurrentDate()); + } + + $('#autoSerahanModal').on('shown.bs.modal', function () { + $('input[name="denominasi"]').attr('style','display: block'); + $('.denominasi').attr('style','display: block'); + triggerValue(); + }); + + function terima_autoserah(){ + let form = $('form[name="autoserah"]'); + + let amaun = form.find('[name="amaun"]').val(); + let keterangan = form.find('[name="keterangan"]').val(); + let dtacct = form.find('[name="dtacct"]').val(); + let ktacct = form.find('[name="ktacct"]').val(); + + if(!amaun){ + $("[name='erroramaun']").show(); + $("[name='erroramaun']").text("*Isikan amaun dalam input!"); + $("[name='amaun']").addClass('is-invalid'); + boolamaun = true; + }else{ + $("[name='erroramaun']").hide(); + $("[name='amaun']").removeClass('is-invalid'); + boolamaun = false; + } + + if(!keterangan){ + $("[name='errorketerangan']").show(); + $("[name='errorketerangan']").text("*Isikan keterangan dalam input!"); + $("[name='keterangan']").addClass('is-invalid'); + boolketerangan = true; + }else{ + $("[name='errorketerangan']").hide(); + $("[name='keterangan']").removeClass('is-invalid'); + boolketerangan = false; + } + + // If all validations pass + if(boolamaun === false && boolketerangan === false) { + // Carry all validated values, including auth_user + + $('#amaundiminta').val(amaun); + $('#denominasiHQModal').modal('show'); + $('#autoSerahanModal').modal('hide'); + $('#jenisjenis').val('serahan'); + $('#jenisserahan').val('auto'); + + return true; + }else{ + $("#terima_transaksi_autoserah").prop('disabled', false); + event.preventDefault(); + return false; + } + } + + @endsection diff --git a/resources/views/modal/autoserahan.blade.php b/resources/views/modal/autoserahan.blade.php new file mode 100644 index 00000000..ca56f53f --- /dev/null +++ b/resources/views/modal/autoserahan.blade.php @@ -0,0 +1,49 @@ + + From 236bb932279c03bb4992c772c1beced9f53f2df5 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 7 Apr 2025 00:12:06 +0800 Subject: [PATCH 13/87] change wording in serahan v3/auto pendahuluan V2 --- .../khazanah/pendahuluanserahanmain.blade.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php index fe54107d..5b0a5963 100644 --- a/resources/views/khazanah/pendahuluanserahanmain.blade.php +++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php @@ -557,16 +557,16 @@ { Swal.fire({ icon: 'success', - title: 'Auto Serahan Berjaya', - text: 'Operasi berjaya meluluskan Auto Serahan!' + title: 'Serahan V3/Auto Pendahuluan V2 Berjaya', + text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!' }).then(function(){ location.reload(); }); }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ Swal.fire({ icon: 'error', - title: 'Auto Serahan Dibatalkan', - text: 'Operasi membatalkan Auto Serahan!' + title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan', + text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!' }).then(function(){ location.reload(); }); @@ -629,16 +629,16 @@ { Swal.fire({ icon: 'success', - title: 'Auto Serahan Berjaya', - text: 'Operasi berjaya meluluskan Auto Serahan!' + title: 'Serahan V3/Auto Pendahuluan V2 Berjaya', + text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!' }).then(function(){ location.reload(); }); }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){ Swal.fire({ icon: 'error', - title: 'Auto Serahan Dibatalkan', - text: 'Operasi membatalkan Auto Serahan!' + title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan', + text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!' }).then(function(){ location.reload(); }); From 18dc6d9bd88cf73343c38f8fd5a977986b43db95 Mon Sep 17 00:00:00 2001 From: aiman Date: Thu, 8 May 2025 16:32:25 +0800 Subject: [PATCH 14/87] Adjust putatan lama interface --- resources/views/layouts/app.blade.php | 96 +++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 13 deletions(-) diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index cfdcc626..f432ae17 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -8,7 +8,15 @@ - SISTEM AR-RAHN + + @if (isset($cawangan_info['kodcaw']) && $cawangan_info['kodcaw'] == '011227') + v2 Putatan Lama + @elseif (isset($cawangan_info['kodcaw']) && $cawangan_info['kodcaw'] == '011238') + v2 Putatan Baru + @else + SISTEM AR-RAHN + @endif + @@ -114,6 +122,10 @@ border-bottom:none; } + .text-gold { + color: gold !important; + } + @@ -131,21 +143,49 @@ @endphp
-
LAPORAN PENDAHULUAN/SERAHAN HQLAPORAN PENDAHULUAN/SERAHAN HQ{{ $displayJenisLaporan }} (arOSv2) {{ $gldetail['descpt'] }} {{ ($gldetail['pendahuluan'] == 0 && ($gldetail['ktacct'] == '7000/102' || $gldetail['ktacct'] == '7000/106')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['pendahuluan'],2) }} {{ ($gldetail['serahan'] == 0 && ($gldetail['dtacct'] == '1000/026' || $gldetail['dtacct'] == '1000/020' || $gldetail['dtacct'] == '1000/090')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['serahan'],2) }}
- User Image - User Image + User Image + User Image
+
+ + {{ $cawangan_info["details_caw"] }} (arOS V2) + +
UNTUK KEGUNAAN PEJABAT
diff --git a/resources/views/print/resittebus_ujrah.blade.php b/resources/views/print/resittebus_ujrah.blade.php index 341436ef..b75b4277 100644 --- a/resources/views/print/resittebus_ujrah.blade.php +++ b/resources/views/print/resittebus_ujrah.blade.php @@ -5,14 +5,14 @@ - + --}} @@ -464,14 +464,25 @@ }
-
- User Image - User Image + +
+ KOPKB Logo + ARRAHN Logo
-
+ + +
+ + {{ $cawangan_info["details_caw"] }} + +
+ + +
UNTUK KEGUNAAN PELANGGAN
+
@@ -694,6 +705,11 @@ class="center"> User Image
+
+ + {{ $cawangan_info["details_caw"] }} (arOS V2) + +
UNTUK KEGUNAAN PEJABAT
diff --git a/resources/views/print/resittebusautotawarruq.blade.php b/resources/views/print/resittebusautotawarruq.blade.php index 96e01fa6..545ef6cc 100644 --- a/resources/views/print/resittebusautotawarruq.blade.php +++ b/resources/views/print/resittebusautotawarruq.blade.php @@ -6,12 +6,12 @@ - + --}} - + --}} {{-- untuk kegunaan pelanggan --}} @@ -397,11 +397,11 @@
-

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

+

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

{{ $cawangan_detail['namacaw'] }}

{{ $cawangan_detail['alamat1'] }}

{{ $cawangan_detail['alamat2'] }}

-

{{ $cawangan_detail['notel'] }}

+

No Tel: {{ $cawangan_detail['notel'] }}

From 8bd1abc9865c1694c849ead3c6ed5c11fdc3ae74 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 1 Jun 2025 09:43:42 +0800 Subject: [PATCH 28/87] buka command script --- resources/views/print/sag_ujrah_3.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/print/sag_ujrah_3.blade.php b/resources/views/print/sag_ujrah_3.blade.php index ea01cfe7..d3d1f363 100644 --- a/resources/views/print/sag_ujrah_3.blade.php +++ b/resources/views/print/sag_ujrah_3.blade.php @@ -362,14 +362,14 @@ } - {{-- --}} + {{-- untuk kegunaan pelanggan --}} From a6ec0ac4fc4e992520074f240b6e3592e294ffdc Mon Sep 17 00:00:00 2001 From: BTMS2 Date: Tue, 3 Jun 2025 12:08:34 +0800 Subject: [PATCH 29/87] update passport --- resources/views/callcenter/index.blade.php | 54 +++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/resources/views/callcenter/index.blade.php b/resources/views/callcenter/index.blade.php index c707dc73..12212ccf 100644 --- a/resources/views/callcenter/index.blade.php +++ b/resources/views/callcenter/index.blade.php @@ -852,33 +852,33 @@ return false; } }else if(id_type=='passport'){ - if(nokp.length < 5){ - Swal.fire({ - icon: 'error', - title: 'Amaran!', - text: 'Sila Periksa Passport Pelanggan' - }); - event.preventDefault(); - return false; - } - if(nokp.indexOf(' ') > 0){ - Swal.fire({ - icon: 'error', - title: 'Amaran!', - text: 'Sila Masukkan Passport Tanpa Ruang \'Kosong\' \n e.g(AP1111111)' - }); - event.preventDefault(); - return false; - } - if(regex.test(nokp) == false){ - Swal.fire({ - icon: 'error', - title: 'Amaran!', - text: 'Sila Periksa Passport Pelanggan' - }); - event.preventDefault(); - return false; - } + // if(nokp.length < 5){ + // Swal.fire({ + // icon: 'error', + // title: 'Amaran!', + // text: 'Sila Periksa Passport Pelanggan' + // }); + // event.preventDefault(); + // return false; + // } + // if(nokp.indexOf(' ') > 0){ + // Swal.fire({ + // icon: 'error', + // title: 'Amaran!', + // text: 'Sila Masukkan Passport Tanpa Ruang \'Kosong\' \n e.g(AP1111111)' + // }); + // event.preventDefault(); + // return false; + // } + // if(regex.test(nokp) == false){ + // Swal.fire({ + // icon: 'error', + // title: 'Amaran!', + // text: 'Sila Periksa Passport Pelanggan' + // }); + // event.preventDefault(); + // return false; + // } } } From 187b851b5d09dccb1441c359f4059b40fd4cf8e2 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Thu, 12 Jun 2025 14:06:18 +0800 Subject: [PATCH 30/87] change wording di login page --- resources/views/auth/v2/login.blade.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/views/auth/v2/login.blade.php b/resources/views/auth/v2/login.blade.php index e63913e8..164d9d3a 100644 --- a/resources/views/auth/v2/login.blade.php +++ b/resources/views/auth/v2/login.blade.php @@ -81,8 +81,10 @@
-

arOS v2.2

- logo-arrahn +

+ Kaunter arOS v2.2 +

+ logo-arrahn

Adil . Telus . Mudah

From 8a3598fa245c36a8b0b9c6c4ece23640413cfc0c Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Tue, 17 Jun 2025 02:20:54 +0800 Subject: [PATCH 31/87] loading waiting for approval when refresh --- app/Http/Controllers/CustomersController.php | 6 ++- resources/views/customers/v2/info.blade.php | 4 +- resources/views/errors/alert.blade.php | 43 ++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 resources/views/errors/alert.blade.php diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index c5b978d0..3669c778 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -65,12 +65,16 @@ class CustomersController extends Controller $customer_page = ($cawangan_info['version'] == 'v1') ? 'customers.v1.info' : 'customers.v2.info'; + $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/admin/ansuran/getApproval',[ + 'kodcaw' => $auth_user['cawangan'], + 'teller' => $auth_user['name'], + ])->json(); if($request->tebus_auto_tawarruq_berjaya === 'true'){ $request->session()->flash('activate_tab', 'SAG_baru'); } - return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan')); + return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','ugama','getApprovalError')); } public function search(Request $request){ diff --git a/resources/views/customers/v2/info.blade.php b/resources/views/customers/v2/info.blade.php index f9baeeb6..79ac4c6c 100644 --- a/resources/views/customers/v2/info.blade.php +++ b/resources/views/customers/v2/info.blade.php @@ -9,6 +9,7 @@ @section('content') @include('modal.historytebus') @include('modal.wakil') +@include('errors.alert', ['errorapproval' => $getApprovalError ?? null])
@@ -264,7 +265,7 @@ - {{-- --}} +
@@ -2905,6 +2906,7 @@ title: 'Telah Disahkan', text: `Komen : ${data.komen}` }).then(function(){ + console.log("delete ansuran",tarikh,kodcaw,norujukan,tg_id); deleteFuncAnsuran(tarikh,kodcaw,norujukan,tg_id); return true; }); diff --git a/resources/views/errors/alert.blade.php b/resources/views/errors/alert.blade.php new file mode 100644 index 00000000..f4661b97 --- /dev/null +++ b/resources/views/errors/alert.blade.php @@ -0,0 +1,43 @@ +@if($errorapproval) + +@endif \ No newline at end of file From 00c4b9d55e2475d39cbfbef95ddebc26844f41b2 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 30 Jun 2025 13:40:53 +0800 Subject: [PATCH 32/87] hapus ansuran extended for audit trail and box comment --- app/Http/Controllers/GadaianController.php | 6 +- .../Controllers/HapusAnsuranController.php | 63 +++++++++++++++++++ app/Http/Controllers/KhazanahController.php | 12 ++-- app/Http/Controllers/OperasiController.php | 63 +++++++++++++------ resources/views/customers/v2/index.blade.php | 8 +++ resources/views/customers/v2/info.blade.php | 46 +++++++++++--- resources/views/khazanah/kelulusan.blade.php | 27 +++++--- resources/views/operasi/kelulusan.blade.php | 14 ++++- 8 files changed, 191 insertions(+), 48 deletions(-) create mode 100644 app/Http/Controllers/HapusAnsuranController.php diff --git a/app/Http/Controllers/GadaianController.php b/app/Http/Controllers/GadaianController.php index 1baecd67..eb6e6b81 100644 --- a/app/Http/Controllers/GadaianController.php +++ b/app/Http/Controllers/GadaianController.php @@ -857,7 +857,11 @@ class GadaianController extends Controller 'nilaimarhun' => $nilaimarhun, 'berat' => $berat, 'margin' => $percentpinj, - 'teller' => $auth_user['name'] + 'teller' => $auth_user['name'], + 'komen' => $request->komen, + 'status' => $request->status, + 'ansuran' => $request->ansuran, + 'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0, ])->json(); event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); diff --git a/app/Http/Controllers/HapusAnsuranController.php b/app/Http/Controllers/HapusAnsuranController.php new file mode 100644 index 00000000..7c481f78 --- /dev/null +++ b/app/Http/Controllers/HapusAnsuranController.php @@ -0,0 +1,63 @@ +middleware('auth'); + } + + public function createApproval(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + + $norujukan = $request->norujukan; + $komen = $request->komen; + $marg = $request->margin; + $ber = $request->berat; + $nm = $request->nilaimarhun; + $status = $request->status; + $jumpinjam = $request->jumpinjam; + $teller = $request->teller; + $ansuran = $request->ansuran; + + // Get the approval data + $approvalData = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/hapusansuran/create', [ + 'cawangan' => $auth_user['cawangan'], + "norujukan" => $norujukan, + "komen" => $komen, + "margin" => $marg, + "berat" => $ber, + "nilaimarhun" => $nm, + "status" => $status, + "jumpinjam" => $jumpinjam, + "teller" => $teller, + "ansuran" => $ansuran, + ]) + ->json(); + + if (isset($approvalData['status']) && $approvalData['status'] === 'success') { + Session::flash('success', 'Kelulusan berjaya dibuat.'); + return redirect()->route('operasi.kelulusan'); + } else { + Session::flash('error', 'Gagal membuat kelulusan. Sila cuba lagi.'); + return redirect()->back(); + } + + } + + +} diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 533ede14..a0f1b3af 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -575,15 +575,9 @@ class KhazanahController extends Controller { $auth_user = Auth::user(); - $api_url = config('api.url'); - $norujukan = $request->norujukan; $pelulus = $request->pelulus; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - - $getlulus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/'. $auth_user['cawangan'],['norujukan' => $norujukan])->json(); - if($request->khazanah != null) { if($request->batal != null) @@ -592,7 +586,8 @@ class KhazanahController extends Controller $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[ "pembatalan" => $request->batal, "komen" => $request->komenubahhapus, - "khazanah" => $request->khazanah + "khazanah" => $request->khazanah, + "recno" => isset($request->recno) ? $request->recno : null, ])->json(); if($updatelulus) @@ -602,7 +597,8 @@ class KhazanahController extends Controller }else{ $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[ - "khazanah" => $request->khazanah + "khazanah" => $request->khazanah, + "recno" => isset($request->recno) ? $request->recno : null, ])->json(); if($updatelulus) diff --git a/app/Http/Controllers/OperasiController.php b/app/Http/Controllers/OperasiController.php index 11a2e510..1b8872f8 100644 --- a/app/Http/Controllers/OperasiController.php +++ b/app/Http/Controllers/OperasiController.php @@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Hash; use Carbon\Carbon; +use Illuminate\Support\Facades\Log; class OperasiController extends Controller { @@ -40,6 +41,11 @@ class OperasiController extends Controller { array_push($arraykelulusan,["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $kel['teller'], 'siri' => $kel['siri'] , "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'],'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'),'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]); } + + foreach($lulus['kelulusanMohonid'] as $index=>$mohon) + { + array_push($arraykelulusan,["mohonid" => true,"ansuran" => $mohon['ansuran'],"cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $mohon['teller'], 'recno' => $mohon['recno'] , "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'],'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'),'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]); + } } @@ -80,16 +86,27 @@ class OperasiController extends Controller if($request->pembatalan == null) { - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ - "komen" => $request->komenkelulusan, - 'siri' => $request->siri - ])->json(); + if(!$request->taglulus){ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + "komen" => $request->komenkelulusan, + 'siri' => $request->siri + ])->json(); + + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + 'sahkan' => 1, + 'namaoperasi' => $request->namaoperasi, + 'siri' => $request->siri + ])->json(); + }else{ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + 'siri' => $request->siri, + "kodcaw" => $request->kodcaw, + "norujukan" => $request->norujukan, + 'namaoperasi' => $request->namaoperasi, + 'sahkan' => 1, + ])->json(); + } - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ - 'sahkan' => 1, - 'namaoperasi' => $request->namaoperasi, - 'siri' => $request->siri - ])->json(); if($updatelulus) { @@ -98,16 +115,26 @@ class OperasiController extends Controller } else { - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ - "komen" => $request->komenkelulusan, - 'siri' => $request->siri - ])->json(); + if(!$request->taglulus){ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + "komen" => $request->komenkelulusan, + 'siri' => $request->siri + ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ - 'sahkan' => 2, - 'namaoperasi' => $request->namaoperasi, - 'siri' => $request->siri - ])->json(); + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + 'sahkan' => 2, + 'namaoperasi' => $request->namaoperasi, + 'siri' => $request->siri + ])->json(); + }else{ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + 'siri' => $request->siri, + "kodcaw" => $request->kodcaw, + "norujukan" => $request->norujukan, + 'namaoperasi' => $request->namaoperasi, + 'sahkan' => 2, + ])->json(); + } if($updatelulus) { diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php index 10d2fcb3..9494037a 100644 --- a/resources/views/customers/v2/index.blade.php +++ b/resources/views/customers/v2/index.blade.php @@ -119,6 +119,10 @@
Agama
+ @php + $ugama = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/ugama')->json(); + $ugama = []; + @endphp
Bangsa
+ @php + $bangsa = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bangsa')->json(); + $bangsa = []; + @endphp
-
-
- @if($version == 'v1') - Penyelesaian Penuh - @else - Penyelesaian Penuh - @endif + + + @endsection From 11d4e975a1c8f4422f5729a36f8530d4b37ac475 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 6 Jul 2025 12:01:48 +0800 Subject: [PATCH 34/87] change alerts --- app/Http/Controllers/CustomersController.php | 4 +- app/Http/Controllers/KhazanahController.php | 12 ++++- resources/views/customers/v2/info.blade.php | 2 + resources/views/errors/alert.blade.php | 49 +++++++++++++------- 4 files changed, 46 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index 3669c778..b0643a68 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -65,7 +65,7 @@ class CustomersController extends Controller $customer_page = ($cawangan_info['version'] == 'v1') ? 'customers.v1.info' : 'customers.v2.info'; - $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/admin/ansuran/getApproval',[ + $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getApproval',[ 'kodcaw' => $auth_user['cawangan'], 'teller' => $auth_user['name'], ])->json(); @@ -74,7 +74,7 @@ class CustomersController extends Controller $request->session()->flash('activate_tab', 'SAG_baru'); } - return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','ugama','getApprovalError')); + return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','getApprovalError')); } public function search(Request $request){ diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index a0f1b3af..a9325d3a 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -592,7 +592,11 @@ class KhazanahController extends Controller if($updatelulus) { - event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller)); + if(isset($request->tagoperasi) && $request->tagoperasi == 1){ + event(new NotifikasiKelulusan($norujukan,"batal",$request->recno,$request->komenubahhapus,$request->teller)); + }else{ + event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller)); + } } }else{ @@ -603,7 +607,11 @@ class KhazanahController extends Controller if($updatelulus) { - event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller)); + if(isset($request->tagoperasi) && $request->tagoperasi == 1){ + event(new NotifikasiKelulusan($norujukan,"lulus",$request->recno,$request->komenubahhapus,$request->teller)); + }else{ + event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller)); + } } } } diff --git a/resources/views/customers/v2/info.blade.php b/resources/views/customers/v2/info.blade.php index ac086421..4ca5d46d 100644 --- a/resources/views/customers/v2/info.blade.php +++ b/resources/views/customers/v2/info.blade.php @@ -2838,6 +2838,8 @@ showCancelButton: true, confirmButtonText: 'Hantar', cancelButtonText: 'Batal', + allowOutsideClick: false, + allowEscapeKey: false, inputValidator: (value) => { if (!value) { return 'Sila masukkan komen!'; diff --git a/resources/views/errors/alert.blade.php b/resources/views/errors/alert.blade.php index f4661b97..b82784d5 100644 --- a/resources/views/errors/alert.blade.php +++ b/resources/views/errors/alert.blade.php @@ -1,17 +1,35 @@ @if($errorapproval) @endsection From ee12d0777e661fc7ed66abd5257df0f1b3110cd8 Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Sun, 3 Aug 2025 16:24:18 +0800 Subject: [PATCH 47/87] fix --- resources/views/callcenter/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/callcenter/index.blade.php b/resources/views/callcenter/index.blade.php index ebdfda89..1e856f70 100644 --- a/resources/views/callcenter/index.blade.php +++ b/resources/views/callcenter/index.blade.php @@ -866,7 +866,7 @@ return false; } } - // }else if(id_type=='passport'){ + }else if(id_type=='passport'){ // if(nokp.length < 5){ // Swal.fire({ // icon: 'error', @@ -894,7 +894,7 @@ // event.preventDefault(); // return false; // } - // } + } } @endsection From fdf7c8d359d39a6c4735b40f43e8c1c834b61558 Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Sun, 3 Aug 2025 17:05:28 +0800 Subject: [PATCH 48/87] update --- resources/views/callcenter/index.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/callcenter/index.blade.php b/resources/views/callcenter/index.blade.php index 1e856f70..6bbc117f 100644 --- a/resources/views/callcenter/index.blade.php +++ b/resources/views/callcenter/index.blade.php @@ -21,7 +21,7 @@
-
Pilih Cawangan Dan Masukkan nombor kad pengenalan
+
Pilih Cawangan Dan Nombor Kad Pengenalan
Atau Nama Pelanggan
From cb572f728d73b260c932c04acc40b9c655b77df1 Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Mon, 4 Aug 2025 12:52:01 +0800 Subject: [PATCH 49/87] update nama cawangan dalam carian nama arcc --- app/Http/Controllers/CallCenterController.php | 21 ++++++++++++++++--- .../views/callcenter/pilihpelanggan.blade.php | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/CallCenterController.php b/app/Http/Controllers/CallCenterController.php index 2a1fa5cd..b481ee6b 100644 --- a/app/Http/Controllers/CallCenterController.php +++ b/app/Http/Controllers/CallCenterController.php @@ -391,11 +391,26 @@ class CallCenterController extends Controller $customers = $response->json(); // Jika lebih dari satu pelanggan dijumpai - if (is_array($customers) && count($customers) > 1) { - Session::put('customer_list', $customers); - return redirect()->route('arcc.pilihpelanggan'); + if (is_array($customers) && count($customers) > 1) { + // Tambah nama cawangan untuk setiap pelanggan + foreach ($customers as &$customer) { + $kodcaw = $customer['kodcaw'] ?? null; + + if ($kodcaw) { + $cawangan = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $kodcaw) + ->json(); + + $customer['nama_cawangan'] = $cawangan['details_caw'] ?? $kodcaw; + } else { + $customer['nama_cawangan'] = '-'; + } } + Session::put('customer_list', $customers); + return redirect()->route('arcc.pilihpelanggan'); + } + // Jika satu pelanggan dijumpai $customer_info = $customers[0] ?? null; } else { diff --git a/resources/views/callcenter/pilihpelanggan.blade.php b/resources/views/callcenter/pilihpelanggan.blade.php index 4d5a2bca..8386d1ef 100644 --- a/resources/views/callcenter/pilihpelanggan.blade.php +++ b/resources/views/callcenter/pilihpelanggan.blade.php @@ -9,7 +9,7 @@ Nama No KP - Kod Cawangan + Nama Cawangan Tindakan @@ -25,7 +25,7 @@ } @endphp {{ $noic }} - {{ $customer['kodcaw'] }} + {{ $customer['nama_cawangan'] }} @csrf From 051bcdb91905c75c132c57597fbb7707aad5fd32 Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Mon, 4 Aug 2025 13:58:24 +0800 Subject: [PATCH 50/87] tambah loader --- resources/views/callcenter/index.blade.php | 49 ++++++++++++++++++- .../views/callcenter/pilihpelanggan.blade.php | 1 + 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/resources/views/callcenter/index.blade.php b/resources/views/callcenter/index.blade.php index 6bbc117f..8935e7c1 100644 --- a/resources/views/callcenter/index.blade.php +++ b/resources/views/callcenter/index.blade.php @@ -7,6 +7,33 @@ position: absolute; } +
@@ -22,7 +49,7 @@
Pilih Cawangan Dan Nombor Kad Pengenalan
Atau Nama Pelanggan
- +
@@ -66,6 +93,15 @@
+ + +
@if ($message = Session::get('success')) @@ -343,6 +379,17 @@
+ + + + + + +@endsection diff --git a/resources/views/callcenter/pilihpelanggan.blade.php b/resources/views/callcenter/pilihpelanggan.blade.php index ce7c6faa..17a7b320 100644 --- a/resources/views/callcenter/pilihpelanggan.blade.php +++ b/resources/views/callcenter/pilihpelanggan.blade.php @@ -2,8 +2,8 @@ @section('content')
- Kembali -

Senarai Pelanggan Dijumpai

+ Kembali +

Senarai Cawangan Dijumpai

@if(session('customer_list') && count(session('customer_list')) > 0) @@ -31,6 +31,7 @@ @csrf + @@ -42,6 +43,6 @@
Tiada pelanggan dijumpai.
@endif - Kembali + Kembali @endsection diff --git a/resources/views/callcenter/pilihpelanggannama.blade.php b/resources/views/callcenter/pilihpelanggannama.blade.php new file mode 100644 index 00000000..df895e18 --- /dev/null +++ b/resources/views/callcenter/pilihpelanggannama.blade.php @@ -0,0 +1,49 @@ +@extends('layouts.app_callcenter') + +@section('content') +
+ Kembali +

Senarai Nama Pelanggan Dijumpai

+ @if(session('customer_list') && count(session('customer_list')) > 0) +
+ + + + + + + + + + @foreach(session('customer_list') as $customer) + + + + + + + @endforeach + +
NamaNo KPTindakan
{{ $customer['nama'] }} @php + if($customer['kpbaru'] != null){ + $noic = $customer['kpbaru']; + }else{ + $noic = $customer['kplama']; + } + @endphp + {{ $noic }} +
+ @csrf + + + + +
+
+ @else +
Tiada pelanggan dijumpai.
+ @endif + + Kembali +
+@endsection diff --git a/resources/views/homepage/callcenter/home.blade.php b/resources/views/homepage/callcenter/home.blade.php index f2793bd0..a53eb166 100644 --- a/resources/views/homepage/callcenter/home.blade.php +++ b/resources/views/homepage/callcenter/home.blade.php @@ -2,27 +2,30 @@ @section('content')
-
-
- -@endsection \ No newline at end of file +@endsection diff --git a/routes/web.php b/routes/web.php index d6cffb12..af251bcb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -440,6 +440,12 @@ Route::get('/arcc/tanyaupah/{norujukan}',['as'=>'tanyaupah','uses' => 'CallCente Route::get('/pilihpelanggan',['as'=>'arcc.pilihpelanggan','uses' => 'CallCenterController@pilihPelanggan'])->middleware('auth','callcenter'); Route::post('/pilihpelanggan/proceed', ['as'=>'arcc.pilihpelanggan.proceed','uses' => 'CallCenterController@pilihPelangganProceed'])->middleware('auth','callcenter'); Route::get('/ajax/search-customer',['as'=>'arcc.ajaxSearchCustomer','uses' => 'CallCenterController@ajaxSearchCustomer'])->middleware('auth','callcenter'); +Route::get('/arcc/cariannama',['as'=>'arcc.cariannama','uses'=>'CallCenterController@cariannama'])->middleware('auth','callcenter'); +Route::get('/pilihpelanggannama',['as'=>'arcc.pilihpelanggannama','uses' => 'CallCenterController@pilihpelanggannama'])->middleware('auth','callcenter'); +Route::post('/pilihpelanggannamacaw', ['as'=>'arcc.pilihpelanggannamacaw','uses' => 'CallCenterController@pilihPelanggannamacaw'])->middleware('auth','callcenter'); +Route::get('/arcc/pelanggannew',['as'=>'arcc.pelanggannew','uses'=>'CallCenterController@pelanggannew'])->middleware('auth','callcenter'); +Route::get('/arcc/searchpelanggannama',['as'=>'arcc.searchpelanggannama','uses'=>'CallCenterController@searchnama'])->middleware('auth','callcenter'); +Route::get('/arcc/customer_info_nama',['as'=>'arcc.customer_info_nama','uses'=>'CallCenterController@infonama'])->middleware('auth','callcenter'); //taraf pc atau ppc Route::get('/cawangan/notisperingatan',['as'=>'laporan.notisperingatan','uses'=>'KhazanahController@notisperingatan'])->middleware('auth','khazanah'); From 3ad9cfab7d133710737e7ee57cee6dc4b6c43c25 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 17 Aug 2025 16:18:47 +0800 Subject: [PATCH 53/87] added notification in kelulusan --- resources/views/layouts/app_operasi.blade.php | 94 ++++++++++++------- 1 file changed, 62 insertions(+), 32 deletions(-) diff --git a/resources/views/layouts/app_operasi.blade.php b/resources/views/layouts/app_operasi.blade.php index ddda7341..32b86c29 100644 --- a/resources/views/layouts/app_operasi.blade.php +++ b/resources/views/layouts/app_operasi.blade.php @@ -126,37 +126,7 @@ var audio = new Audio("{{ asset('sound/3.wav') }}"); audio.muted = true; - // Enable pusher logging - don't include this in production - Pusher.logToConsole = false; - - var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { - cluster: 'ap1', - encrypted: true - }); - - var channel = pusher.subscribe('operasi-notify'); - channel.bind('operasi-event', function(data) { - let message = JSON.stringify(data); - - $('#bell').css("color", "red"); - $('#linkz').text(data.namateller + " Pohon Kelulusan"); - $("#linkz").attr("href", "{{ url('kelulusan') }}"); - - if(window.location.pathname === '/operasi/kelulusan') - { - location.reload(); - }else{ - audio.play(); - audio.muted = false; - var countlagu = 1; - audio.onended = function() { - if(countlagu <= 3){ - countlagu++; - this.play(); - } - } - } - const Toast = Swal.mixin({ + const Toast = Swal.mixin({ toast: true, position: 'top-end', showConfirmButton: false, @@ -166,7 +136,67 @@ toast.addEventListener('mouseenter', Swal.stopTimer) toast.addEventListener('mouseleave', Swal.resumeTimer) } - }) + }); + + // Enable pusher logging - don't include this in production + Pusher.logToConsole = false; + + var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + + var kelulusanhapus = pusher.subscribe('notice-kelulusan'); + kelulusanhapus.bind('my-kelulusan', function(data) { + if(data.tagoperasi == 1){ + let message = JSON.stringify(data); + + $('#bell').css("color", "red"); + $('#linkz').text(data.namateller + " Pohon Kelulusan Dihapuskan"); + $("#linkz").attr("href", "{{ url('kelulusan') }}"); + if(window.location.pathname === '/operasi/kelulusan') + location.reload(); + else{ + audio.play(); + audio.muted = false; + var countlagu = 1; + audio.onended = function() { + if(countlagu <= 3){ + countlagu++; + this.play(); + } + } + } + Toast.fire({ + icon: 'info', + title: 'Kelulusan Dipohon Sekarang!' + }); + } + }); + + + var channel = pusher.subscribe('operasi-notify'); + channel.bind('operasi-event', function(data) { + let message = JSON.stringify(data); + + $('#bell').css("color", "red"); + $('#linkz').text(data.namateller + " Pohon Kelulusan"); + $("#linkz").attr("href", "{{ url('kelulusan') }}"); + + if(window.location.pathname === '/operasi/kelulusan') + { + location.reload(); + }else{ + audio.play(); + audio.muted = false; + var countlagu = 1; + audio.onended = function() { + if(countlagu <= 3){ + countlagu++; + this.play(); + } + } + } Toast.fire({ icon: 'error', From e25cb855fbc3fdcf206c43c8bdc2698781d83a0c Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 17 Aug 2025 16:27:55 +0800 Subject: [PATCH 54/87] deleted endpoints in agama and bangsa for version2 --- resources/views/customers/v2/index.blade.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php index 9494037a..10d2fcb3 100644 --- a/resources/views/customers/v2/index.blade.php +++ b/resources/views/customers/v2/index.blade.php @@ -119,10 +119,6 @@
Agama
- @php - $ugama = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/ugama')->json(); - $ugama = []; - @endphp
Bangsa
- @php - $bangsa = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bangsa')->json(); - $bangsa = []; - @endphp
From cd0d93d8b724c9a5dc75e453c5a56bd9d97ada5d Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Sun, 17 Aug 2025 16:46:01 +0800 Subject: [PATCH 56/87] update latest --- app/Http/Controllers/CallCenterController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/CallCenterController.php b/app/Http/Controllers/CallCenterController.php index 1b90284d..fe63b240 100644 --- a/app/Http/Controllers/CallCenterController.php +++ b/app/Http/Controllers/CallCenterController.php @@ -453,7 +453,7 @@ class CallCenterController extends Controller return redirect()->route('arcc.pilihpelanggan'); } - return redirect()->route('arcc.pelanggan')->with('failed', 'Maaf, Tiada Data Pelanggan...'); + return redirect()->route('arcc.pelanggannew')->with('failed', 'Maaf, Tiada Data Pelanggan...'); } // ====================== From ade601a5aa9acc819822830376a7bbe1780a87e6 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sat, 23 Aug 2025 23:38:19 +0800 Subject: [PATCH 57/87] remove tempblock and enable panjar for semporna only --- resources/views/customers/v2/info.blade.php | 19 ------------------- .../views/homepage/khazanah/home.blade.php | 6 ++++-- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/resources/views/customers/v2/info.blade.php b/resources/views/customers/v2/info.blade.php index c3aed6d1..f925023f 100644 --- a/resources/views/customers/v2/info.blade.php +++ b/resources/views/customers/v2/info.blade.php @@ -623,13 +623,6 @@ var pinjaman = $(data).data("pinjaman"); var hargajualan = $(data).data("hargajualan"); - let array_tempblock = ['011237240808-0003','011237240719-0015','011237240806-0011','011237240828-0001', - '011237240904-0007','011237240904-0008','011237240904-0009','011237240719-0023','011237240719-0024', - '011237240719-0025','011237240618-0026','011237240719-0027','011237240719-0028','011237240618-0020', - '011237240719-0030','011237240618-0029','011237240731-0026','011237240912-0009', - ]; - - Swal.fire({ title: 'Memuatkan...', allowEscapeKey : false, @@ -639,18 +632,6 @@ } }); - if (array_tempblock.includes(norujukan)) { - Swal.close(); - setTimeout(() => { - Swal.fire({ - icon: 'error', - title: 'Amaran', - html: 'SAG - Kes Marhun Tiada Dalam Peti Besi' - }); - }, 100); - return false; - } - if(hargajualan == pinjaman){ Swal.fire({ icon: 'error', diff --git a/resources/views/homepage/khazanah/home.blade.php b/resources/views/homepage/khazanah/home.blade.php index edeccf34..5e806a8d 100644 --- a/resources/views/homepage/khazanah/home.blade.php +++ b/resources/views/homepage/khazanah/home.blade.php @@ -274,9 +274,11 @@ - {{--
+ @if(Auth::user()->cawangan == '011237') + --}} +
+ @endif
Aliran Tunai From 75527b3e9cb1eb94b23dc8ef35c3d4445135e7f6 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Mon, 25 Aug 2025 09:29:14 +0800 Subject: [PATCH 58/87] add nota arcc di maklumat pelanggan --- app/Http/Controllers/CustomersController.php | 1 + resources/views/callcenter/v2/info.blade.php | 280 ++++++++++++------- resources/views/customers/v2/info.blade.php | 16 ++ 3 files changed, 195 insertions(+), 102 deletions(-) diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index b0643a68..a156c2fd 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -227,6 +227,7 @@ class CustomersController extends Controller 'nota'=>$request->nota, 'kodkerja'=>$request->pekerjaan, 'nota_pekerjaan'=>$request->nota_pekerjaan, + 'notaarcc'=>$request->notaarcc, 'tujuangadai'=>$request->tujuan_gadai, ]); diff --git a/resources/views/callcenter/v2/info.blade.php b/resources/views/callcenter/v2/info.blade.php index ee8db6f4..92dd1a1e 100644 --- a/resources/views/callcenter/v2/info.blade.php +++ b/resources/views/callcenter/v2/info.blade.php @@ -119,15 +119,14 @@
-
+ {{--
-
+
--}}
-
-
@@ -156,7 +156,7 @@ @endphp SAG Baru - SAG Lama + SAG Lama
+
@@ -2531,6 +2542,7 @@ $('#nota_pekerjaan').attr('disabled', false); $('#noakaun').attr('readonly', false); $('#nota').attr('readonly', false); + // $('#nota_arcc').attr('readonly', false); $('#alamat').attr('readonly', false); $('#poskod').attr('readonly', false); @@ -2554,6 +2566,7 @@ $('#nota_pekerjaan').attr('disabled', true); $('#noakaun').attr('readonly', true); $('#nota').attr('readonly', true); + // $('#nota_arcc').attr('readonly', true); $('#alamat').attr('readonly', true); $('#poskod').attr('readonly', true); } @@ -2569,6 +2582,7 @@ var nota_pekerjaan = $('#nota_pekerjaan').val(); var noakaun = $('#noakaun').val(); var nota = $('#nota').val(); + // var nota_arcc = $('#nota_arcc').val(); var alamat = $('#alamat').val(); var poskod = $('#poskod').val(); @@ -2584,6 +2598,7 @@ "nota_pekerjaan":nota_pekerjaan, "noakaun":noakaun, 'nota':nota, + // 'nota_arcc':nota_arcc, 'alamat':alamat, 'poskod':poskod }, @@ -2669,6 +2684,7 @@ $('#kodkerja').attr('disabled', true); $('#nota_pekerjaan').attr('disabled', true); $('#nota').attr('readonly', true); + // $('#nota_arcc').attr('readonly', true); $('#alamat').attr('readonly', true); $('#poskod').attr('readonly', true); From 70879edd8ca711e15cbfdf7f787c9c3266b2eaba Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Wed, 27 Aug 2025 12:24:51 +0800 Subject: [PATCH 59/87] tambah baik laporan SA by sag --- app/Http/Controllers/KhazanahController.php | 23 +- .../excel/excel_stokauditkhasbysag.blade.php | 344 ++++++++++++++ .../pdf/pdf_stokauditkhasbysag.blade.php | 344 ++++++++++++++ .../laporan_stokauditkhasbysag.blade.php | 428 ++++++++++++++++++ 4 files changed, 1132 insertions(+), 7 deletions(-) create mode 100644 resources/views/excel/excel_stokauditkhasbysag.blade.php create mode 100644 resources/views/pdf/pdf_stokauditkhasbysag.blade.php create mode 100644 resources/views/print/laporan_stokauditkhasbysag.blade.php diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 916c9bcc..15b28183 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -4121,9 +4121,13 @@ class KhazanahController extends Controller if($request->radaktif === 'aktif') { - $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'], + // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'], + $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'], ['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); - return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all(); + // dd($stokaudit); + // return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + return view('print.laporan_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); } } @@ -4141,11 +4145,13 @@ class KhazanahController extends Controller $cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json(); $cawangan_detail=$cawangan[0]; - $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); - + // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); + $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); + $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all(); if($request->type == 'excel') { - return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + // return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + return view('excel.excel_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); } elseif($request->type == 'whatsapp') { @@ -4164,8 +4170,11 @@ class KhazanahController extends Controller } else { - $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); - return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); + $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json(); + $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all(); + // return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); + return view('pdf.pdf_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info')); } } diff --git a/resources/views/excel/excel_stokauditkhasbysag.blade.php b/resources/views/excel/excel_stokauditkhasbysag.blade.php new file mode 100644 index 00000000..76f545f3 --- /dev/null +++ b/resources/views/excel/excel_stokauditkhasbysag.blade.php @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
Laporan Stok Audit Tarikh Cetak: + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate) + @endphp +
+ + + + + + + + + + + + + + + + + + @php + $counter = 1; + $totalpinjaman = 0; + + // Sort ikut norujukan + $rekod = collect($stokaudit[0])->sortBy('norujukan')->values(); + @endphp + + @foreach ($rekod as $item) + @php + $status = $item['blasted'] == null ? 'Belum' : 'Selesai'; + $totalpinjaman += $item['pinjaman']; + @endphp + + + + + + + + + + + + + + + + @php $counter++; @endphp + @endforeach + + + + + + + + + +
BilNamaNo. KPNo. TelefonNorujukanTempohBeratNilai Marhun (RM)Pembiayaan Asal (RM)Baki Pembiayaan (RM)Keuntungan Belum Bayar (RM)
{{ $counter }}{{ $item['customer']['nama'] ?? '-' }}{{ $item['nokp'] }}{{ $item['customer']['telefon'] ?? '-' }}{{ $item['norujukan'] }}{{ $item['tempoh'] }}{{ $item['berat'] }}{{ number_format($item['nilaimarhun'], 2) }}{{ number_format($item['pinjaman'], 2) }}{{ number_format($item['bakipjm'], 2) }}{{ number_format($item['tunggakan'], 2) }}
Jumlah{{ number_format(collect($rekod)->sum('berat'), 2) }}{{ number_format(collect($rekod)->sum('nilaimarhun'), 2) }}{{ number_format(collect($rekod)->sum('pinjaman'), 2) }}{{ number_format(collect($rekod)->sum('bakipjm'), 2) }}{{ number_format(collect($rekod)->sum('tunggakan'), 2) }}
+ + + + + + + + diff --git a/resources/views/pdf/pdf_stokauditkhasbysag.blade.php b/resources/views/pdf/pdf_stokauditkhasbysag.blade.php new file mode 100644 index 00000000..749999ca --- /dev/null +++ b/resources/views/pdf/pdf_stokauditkhasbysag.blade.php @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
Laporan Stok Audit Khas Tempoh : {{$daritempoh}} hingga tempoh : {{$hinggatempoh}} Tarikh Cetak: + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo($formattedweddingdate) + @endphp +
+ + + + + + + + + + + + + + + + + @php + $counter = 1; + $totalpinjaman = 0; + + // Sort ikut norujukan + $rekod = collect($stokaudit[0])->sortBy('norujukan')->values(); + @endphp + + @foreach ($rekod as $item) + @php + $status = $item['blasted'] == null ? 'Belum' : 'Selesai'; + $totalpinjaman += $item['pinjaman']; + @endphp + + + + + + + + + + + + + + + @php $counter++; @endphp + @endforeach + + + + + + + + + +
BilNamaNo. KPNo. TelefonNorujukanTempohBeratNilai Marhun (RM)Pembiayaan Asal (RM)Baki Pembiayaan (RM)Keuntungan Belum Bayar (RM)
{{ $counter }}{{ $item['customer']['nama'] ?? '-' }}{{ $item['nokp'] }}{{ $item['customer']['telefon'] ?? '-' }}{{ $item['norujukan'] }}{{ $item['tempoh'] }}{{ $item['berat'] }}{{ number_format($item['nilaimarhun'], 2) }}{{ number_format($item['pinjaman'], 2) }}{{ number_format($item['bakipjm'], 2) }}{{ number_format($item['tunggakan'], 2) }}
Jumlah{{ number_format(collect($rekod)->sum('berat'), 2) }}{{ number_format(collect($rekod)->sum('nilaimarhun'), 2) }}{{ number_format(collect($rekod)->sum('pinjaman'), 2) }}{{ number_format(collect($rekod)->sum('bakipjm'), 2) }}{{ number_format(collect($rekod)->sum('tunggakan'), 2) }}
+ + + + + + + + + diff --git a/resources/views/print/laporan_stokauditkhasbysag.blade.php b/resources/views/print/laporan_stokauditkhasbysag.blade.php new file mode 100644 index 00000000..e5b53970 --- /dev/null +++ b/resources/views/print/laporan_stokauditkhasbysag.blade.php @@ -0,0 +1,428 @@ +@extends('layouts.app') + + + + + + + + + + + + + + + + + + + + + +@section('content') +
+
+
+
+ + + +
+ +
+ {{-- Blast Whatsapp & SMS --}} + @csrf + + + + + + + + + + + + + + + + +
Laporan Stok Audit Khas (Blast Whatsapp) Tarikh Cetak: + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
Dari Tempoh: {{$daritempoh}} hingga Tempoh: {{$hinggatempoh}}
+ +
+ + + + + + + + + + + + + + + + @php + $counter = 1; + $totalpinjaman = 0; + + // Sort ikut norujukan + $rekod = collect($stokaudit[0])->sortBy('norujukan')->values(); + @endphp + + @foreach ($rekod as $item) + @php + $status = $item['blasted'] == null ? 'Belum' : 'Selesai'; + $totalpinjaman += $item['pinjaman']; + @endphp + + + + + + + + + + + + + + + + @php $counter++; @endphp + @endforeach + + + + + + + + + +
BilNamaNo. KPNo. TelefonNorujukanTempohBeratNilai Marhun (RM)Pembiayaan Asal (RM)Baki Pembiayaan (RM)Keuntungan Belum Bayar (RM)
{{ $counter }}{{ $item['customer']['nama'] ?? '-' }}{{ $item['nokp'] }}{{ $item['customer']['telefon'] ?? '-' }}{{ $item['norujukan'] }}{{ $item['tempoh'] }}{{ $item['berat'] }}{{ number_format($item['nilaimarhun'], 2) }}{{ number_format($item['pinjaman'], 2) }}{{ number_format($item['bakipjm'], 2) }}{{ number_format($item['tunggakan'], 2) }}
Jumlah{{ number_format(collect($rekod)->sum('berat'), 2) }}{{ number_format(collect($rekod)->sum('nilaimarhun'), 2) }}{{ number_format(collect($rekod)->sum('pinjaman'), 2) }}{{ number_format(collect($rekod)->sum('bakipjm'), 2) }}{{ number_format(collect($rekod)->sum('tunggakan'), 2) }}
+ + + +
+
+{{-- + + + + + + + + + + + + + + +
.................................................................. ..................................................................
DI SEMAK DI SAHKAN
--}} +
+
+
+
+
+ + + +@endsection From bb8bcae8e82f66cea219bc5fc625e4912c4f6636 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:41:42 +0800 Subject: [PATCH 60/87] update all controller frontend for kadar anggota koperasi --- app/Events/NotifikasiAnggota.php | 47 ++ app/Http/Controllers/CustomersController.php | 450 +++++++++++---- app/Http/Controllers/GadaianController.php | 565 +++++++++++-------- app/Http/Controllers/OperasiController.php | 277 ++++++--- app/Imports/AnggotaImport.php | 24 + routes/web.php | 6 + 6 files changed, 941 insertions(+), 428 deletions(-) create mode 100644 app/Events/NotifikasiAnggota.php create mode 100644 app/Imports/AnggotaImport.php diff --git a/app/Events/NotifikasiAnggota.php b/app/Events/NotifikasiAnggota.php new file mode 100644 index 00000000..c08a055b --- /dev/null +++ b/app/Events/NotifikasiAnggota.php @@ -0,0 +1,47 @@ +nokp = $nokp; + $this->status = strtoupper($status); // pastikan huruf besar DILULUSKAN/DITOLAK + $this->komen = $komen; + $this->tagoperasi = $tagoperasi; + } + + public function broadcastOn() + { + return ['notice-anggota']; + } + + public function broadcastAs() + { + return 'my-anggota'; + } + + public function broadcastWith() + { + return [ + 'noic' => $this->nokp, + 'status' => $this->status, // ikut format API updateAnggota + 'komen' => $this->komen, + 'tagoperasi' => $this->tagoperasi, + ]; + } +} diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index a156c2fd..7857386e 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Auth; use Twilio\Rest\Client; use App\Komoditi; use App\Events\Dashboard\PelangganNotify; +use Illuminate\Support\Facades\Log; use Carbon\Carbon; @@ -24,7 +25,7 @@ class CustomersController extends Controller public function __construct() { $this->middleware('auth'); - $this->customerService = New CustomerService(); + $this->customerService = new CustomerService(); } /** * Display a listing of the resource. @@ -38,84 +39,246 @@ class CustomersController extends Controller $api_url = config('api.url'); $auth_user = Auth::user(); $idtype = 'nokp'; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json(); $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); $blacklist_search = false; - return view('customers.' . $cawangan_info['version'] . '.index',compact('search','blacklist_search','cawangan_info','bank','api_url','idtype','pekerjaan')); + return view('customers.' . $cawangan_info['version'] . '.index', compact('search', 'blacklist_search', 'cawangan_info', 'bank', 'api_url', 'idtype', 'pekerjaan')); } - public function info(Request $request){ + public function info(Request $request) + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json(); - // dd($customer_info); - $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); + // 🔹 Panggil maklumat cawangan + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + // 🔹 Panggil maklumat pelanggan (customer) + $customer_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customers/' . Session::get('noic')) + ->json(); + + // 🔹 Panggil maklumat pekerjaan + $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/pekerjaan') + ->json(); + $komoditi = Komoditi::first(); $min_komoditi = $komoditi['min_komoditi']; - $bakilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki')->json(); - $rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi')->json(); + // 🔹 Panggil baki lelong + $bakilelong = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki') + ->json(); + // 🔹 Panggil rugi lelong + $rugilelong = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi') + ->json(); + + // 🔹 Reset session sementara $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); - $customer_page = ($cawangan_info['version'] == 'v1') ? 'customers.v1.info' : 'customers.v2.info'; + $customer_page = ($cawangan_info['version'] == 'v1') + ? 'customers.v1.info' + : 'customers.v2.info'; - $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getApproval',[ - 'kodcaw' => $auth_user['cawangan'], - 'teller' => $auth_user['name'], - ])->json(); + // Logik papar butang "Assign sebagai Anggota" + $showAssignAnggotaBtn = false; + $noic = Session::get('noic'); - if($request->tebus_auto_tawarruq_berjaya === 'true'){ + if (!empty($customer_info)) { + + // 🔹 Panggil API anggota + $anggota_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customer/anggota', [ + 'noic' => $noic + ]) + ->json(); + + // 🔹 Semak jika ada data anggota dan belum di-tag sebagai anggota + $isAnggotaExist = isset($anggota_info) && !empty($anggota_info) && !isset($anggota_info['message']); + + if ($isAnggotaExist && isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 0) { + $showAssignAnggotaBtn = true; + } + } + + // Return ke view + $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/getApproval', [ + 'kodcaw' => $auth_user['cawangan'], + 'teller' => $auth_user['name'], + ]) + ->json(); + + if ($request->tebus_auto_tawarruq_berjaya === 'true') { $request->session()->flash('activate_tab', 'SAG_baru'); } - return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','getApprovalError')); + return view($customer_page, compact( + 'cawangan_info', + 'api_url', + 'customer_info', + 'bakilelong', + 'rugilelong', + 'min_komoditi', + 'pekerjaan', + 'getApprovalError', + 'showAssignAnggotaBtn' + )); } - public function search(Request $request){ - // dd($request->all()); + + public function search(Request $request) + { $noic = $request->noic; $idtype = $request->customerIDType; Session::put('noic', $noic); + $api_url = config('api.url'); $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json(); - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json(); - $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); - $blacklist = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customer/blacklist',[ - 'nokp' => $noic - ])->json(); - // if($customers_info){ - // $customer_info = $customers_info[0]; - // }else{ - // $customer_info = $customers_info; - // } + // Dapatkan maklumat asas + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + $bank = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bank') + ->json(); + + $customer_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customers/' . $noic) + ->json(); + + $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/pekerjaan') + ->json(); + + $blacklist = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customer/blacklist', ['nokp' => $noic]) + ->json(); + + // Reset session lama $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); + $blacklist_search = false; $search = true; - if($customer_info){ - if($blacklist){ + + // SEMAK STATUS ANGGOTA DAN PELANGGAN + $isAnggota = false; + $isPelanggan = false; + $isNewCustomer = false; + $showAssignAnggotaBtn = false; + $showDaftarPelangganBtn = false; + + // Semak dalam sistem anggota + $anggota_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get(config('api.url') . '/api/customer/anggota', [ + 'noic' => $noic + ]) + ->json(); + + // ✅ Semak betul-betul jika ada rekod anggota + if (!empty($anggota_info) && isset($anggota_info['data']) && !empty($anggota_info['data'])) { + $isAnggota = true; + } elseif (isset($anggota_info['noic']) && !empty($anggota_info['noic'])) { + $isAnggota = true; + } + + if ($customer_info && isset($customer_info['id'])) { + $isPelanggan = true; + } + + // ✅ Tentukan butang mana nak paparkan (logik diperbetulkan) + if ($isPelanggan && !$isAnggota) { + // Pelanggan dah berdaftar tapi bukan anggota koperasi + $showAssignAnggotaBtn = true; + } elseif ($isAnggota && !$isPelanggan) { + // Anggota koperasi tapi belum berdaftar sebagai pelanggan + $showDaftarPelangganBtn = true; + } elseif (!$isAnggota && !$isPelanggan) { + // Bukan anggota dan bukan pelanggan (pelanggan baru) + $showDaftarPelangganBtn = true; + $isNewCustomer = true; + } + + // 🔍 Debug log untuk semak nilai sebenar + Log::info('DEBUG CUSTOMER STATUS', [ + 'noic' => $noic, + 'isAnggota' => $isAnggota, + 'isPelanggan' => $isPelanggan, + 'isNewCustomer' => $isNewCustomer, + 'showAssignAnggotaBtn' => $showAssignAnggotaBtn, + 'showDaftarPelangganBtn' => $showDaftarPelangganBtn, + ]); + + // PROSES PAPARAN MENGIKUT HASIL CARIAN + if ($customer_info) { + // Ada maklumat pelanggan + if ($blacklist) { $blacklist_search = true; - return view('customers.' . $cawangan_info['version'] .'.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype')); - }else{ - Session::put('customer_info',$customer_info); - return redirect()->route('customer_info')->with( ['customer_info' => $customer_info,'cawangan_info'=>$cawangan_info,'api_url'=>$api_url]); + return view('customers.' . $cawangan_info['version'] . '.index', compact( + 'blacklist_search', + 'customer_info', + 'search', + 'noic', + 'cawangan_info', + 'bank', + 'api_url', + 'idtype', + 'isAnggota', + 'isPelanggan', + 'isNewCustomer', + 'showAssignAnggotaBtn', + 'showDaftarPelangganBtn', + 'auth_user' + )); + } else { + // Simpan dalam session & redirect ke paparan info pelanggan + Session::put('customer_info', $customer_info); + return redirect()->route('customer_info')->with([ + 'customer_info' => $customer_info, + 'cawangan_info' => $cawangan_info, + 'api_url' => $api_url, + 'isAnggota' => $isAnggota, + 'isPelanggan' => $isPelanggan, + 'isNewCustomer' => $isNewCustomer, + 'showAssignAnggotaBtn' => $showAssignAnggotaBtn, + 'showDaftarPelangganBtn' => $showDaftarPelangganBtn, + 'auth_user' => $auth_user + ]); } - }else{ - if($blacklist){ + } else { + // Tiada customer dalam sistem + if ($blacklist) { $blacklist_search = true; - return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan')); - }else{ - return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan')); } + + return view('customers.' . $cawangan_info['version'] . '.index', compact( + 'blacklist_search', + 'customer_info', + 'search', + 'noic', + 'cawangan_info', + 'bank', + 'api_url', + 'idtype', + 'pekerjaan', + 'isAnggota', + 'isPelanggan', + 'isNewCustomer', + 'showAssignAnggotaBtn', + 'showDaftarPelangganBtn', + 'auth_user' + )); } } @@ -123,9 +286,9 @@ class CustomersController extends Controller public function cari(Request $request) { $api_url = config('api.url'); - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $request->icno)->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $request->icno)->json(); - if(sizeof($customers_info) > 0) + if (sizeof($customers_info) > 0) return $customers_info; else return response(["no-data"], 200); @@ -149,60 +312,58 @@ class CustomersController extends Controller */ public function store(Request $request) { - if($request->idtype == 'nokp'){ + if ($request->idtype == 'nokp') { $nokpbaru = $request->noic; $nokplama = ''; - }elseif($request->idtype == 'passport'){ + } elseif ($request->idtype == 'passport') { $nokpbaru = ''; $nokplama = $request->noic; } - if($request->warganegara){ + if ($request->warganegara) { $warganegara = 'Y'; - }else{ + } else { $warganegara = 'N'; } - if($request->bumiputera){ + if ($request->bumiputera) { $bumiputera = 'Y'; - }else{ + } else { $bumiputera = 'N'; } - if($request->jantina == 'Lelaki'){ + if ($request->jantina == 'Lelaki') { $jantina = 'L'; - }elseif($request->jantina == 'Perempuan'){ + } elseif ($request->jantina == 'Perempuan') { $jantina = 'P'; } - $split_date = explode('/',$request->tarikh_lahir); + $split_date = explode('/', $request->tarikh_lahir); - $tarikh_lahir = $split_date[2].'-'.$split_date[1].'-'.$split_date[0]; + $tarikh_lahir = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0]; $tarikhlahir = Carbon::parse($tarikh_lahir); $auth_user = Auth::user(); $latest_customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/latest/' . $auth_user['cawangan'])->json(); - if($latest_customer == null){ + if ($latest_customer == null) { $nosiri_latest = 1; - } - else{ - $nosiri_latest = $latest_customer['nosiri']+1; + } else { + $nosiri_latest = $latest_customer['nosiri'] + 1; } $count = sprintf("%08d", $nosiri_latest); - $no_pelanggan = $request->bangsa . substr($request->noic,6,2).'-'.$count; + $no_pelanggan = $request->bangsa . substr($request->noic, 6, 2) . '-' . $count; $detail_poskod = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/poskod/' . $request->poskod)->json(); - if(empty($detail_poskod)){ + if (empty($detail_poskod)) { $detail_poskod = Http::withOptions(['verify' => config('app.api_verify')]) - ->post(config('api.url') . '/api/poskod', [ - 'poskod' => $request->poskod, - 'koddaerah' => $request->koddaerah, - 'kodnegeri' => $request->kodnegeri, - 'user' => auth()->user(), - ])->json(); - + ->post(config('api.url') . '/api/poskod', [ + 'poskod' => $request->poskod, + 'koddaerah' => $request->koddaerah, + 'kodnegeri' => $request->kodnegeri, + 'user' => auth()->user(), + ])->json(); } - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/'. $auth_user['cawangan'],[ + $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/' . $auth_user['cawangan'], [ 'kodcaw' => $auth_user['cawangan'], 'nopelanggan' => $no_pelanggan, 'nokpbaru' => $nokpbaru, @@ -224,61 +385,117 @@ class CustomersController extends Controller 'teller' => $auth_user['name'], 'telefon2' => $request->alternate_phone, 'nosiri' => $nosiri_latest, - 'nota'=>$request->nota, - 'kodkerja'=>$request->pekerjaan, - 'nota_pekerjaan'=>$request->nota_pekerjaan, - 'notaarcc'=>$request->notaarcc, - 'tujuangadai'=>$request->tujuan_gadai, + 'nota' => $request->nota, + 'kodkerja' => $request->pekerjaan, + 'nota_pekerjaan' => $request->nota_pekerjaan, + 'notaarcc' => $request->notaarcc, + 'tujuangadai' => $request->tujuan_gadai, ]); Session::put('customer_info', $customer_info); Session::put('noic', $request->noic); - event(new PelangganNotify('lulus',$auth_user['cawangan'])); - return redirect()->route('customer_info')->with( ['customer_info' => $customer_info] ); + event(new PelangganNotify('lulus', $auth_user['cawangan'])); + return redirect()->route('customer_info')->with(['customer_info' => $customer_info]); } - public function getOTP(Request $request){ + public function getOTP(Request $request) + { $auth_user = Auth::user(); $expired = Carbon::now(); $expired = new Carbon(); $expired = $expired->addHours(24); $currentDateTime = Carbon::now(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $nama_cawangan = $cawangan_info["details_caw"]; $nokp = $request->noic_otp; - $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/customers/'.$nokp)->json(); - $recipient = '6'.$customer['telefon']; + $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $nokp)->json(); + $recipient = '6' . $customer['telefon']; // $recipient = '60189025461'; //pembinaan token - function token($length) { + function token($length) + { $characters = array( - "A","B","C","D","E","F","G","H","J","K","L","M", - "N","P","Q","R","S","T","U","V","W","X","Y","Z", - "a","b","c","d","e","f","g","h","i","j","k","m", - "n","o","p","q","r","s","t","u","v","w","x","y","z", - "1","2","3","4","5","6","7","8","9"); + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "J", + "K", + "L", + "M", + "N", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ); if ($length < 0 || $length > count($characters)) return null; shuffle($characters); return implode("", array_slice($characters, 0, $length)); } - $otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp) ->json(); - $otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp) ->json(); + $otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp)->json(); + $otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp)->json(); - if (is_array($otp_token) || is_object($otp_token)){ - if($otp_token){ + if (is_array($otp_token) || is_object($otp_token)) { + if ($otp_token) { return response(['error' => "OTP Akaun Telah Di Jana"]); - }else{ - if (is_array($otp_token_used) || is_object($otp_token_used)){ - if($otp_token_used){ + } else { + if (is_array($otp_token_used) || is_object($otp_token_used)) { + if ($otp_token_used) { return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]); - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -286,12 +503,12 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -299,17 +516,17 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } } - }else{ - if (is_array($otp_token_used) || is_object($otp_token_used)){ - if($otp_token_used){ + } else { + if (is_array($otp_token_used) || is_object($otp_token_used)) { + if ($otp_token_used) { return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]); - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -317,12 +534,12 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -330,23 +547,36 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } } } public function sendWhatsAppMessage(string $message, string $recipient) { - $status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx',[ + $status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx', [ 'apiusername' => 'APIUK330HDAFO', 'apipassword' => 'APIUK330HDAFOUK330', 'senderid' => 'INFO', 'mobileno' => $recipient, - 'message'=> $message, - 'languagetype'=> 1 + 'message' => $message, + 'languagetype' => 1 ]); return ($status); } + public function assignAnggota(Request $request) + { + $noic = $request->noic; + + $response = Http::withOptions(['verify' => config('app.api_verify')]) + ->put(config('api.url') . '/api/customers/' . $noic . '/assign-anggota'); + + if ($response->successful()) { + return redirect()->back()->with('success', 'Pelanggan berjaya ditandakan sebagai anggota koperasi.'); + } else { + return redirect()->back()->with('error', 'Gagal mengemaskini status anggota. Sila cuba semula.'); + } + } } diff --git a/app/Http/Controllers/GadaianController.php b/app/Http/Controllers/GadaianController.php index eb6e6b81..63dc13b7 100644 --- a/app/Http/Controllers/GadaianController.php +++ b/app/Http/Controllers/GadaianController.php @@ -18,6 +18,8 @@ use Carbon\Carbon; use App\Http\Controllers\AliranTunaiController; use App\User; +use Illuminate\Support\Facades\Log; + class GadaianController extends Controller { public $AliranTunaiController; @@ -26,61 +28,62 @@ class GadaianController extends Controller public function __construct() { $this->middleware('auth'); - $this->customerService = New CustomerService(); - $this->AliranTunaiController = New AliranTunaiController(); + $this->customerService = new CustomerService(); + $this->AliranTunaiController = new AliranTunaiController(); } - public function index(Request $request){ + public function index(Request $request) + { $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); - $curent_year = substr($current->year,2,2); + $curent_year = substr($current->year, 2, 2); $curent_month = sprintf("%02d", $current->month); $current_day = sprintf("%02d", $current->day); $noic = $request->noic; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $noic)->json(); $customer_info = $customers_info; $limit_pinjaman_semasa = 0; $auth_user = Auth::user(); - if($request->session()->get('page_reload') == null){ - $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json(); - if($gadai_transaction){ + if ($request->session()->get('page_reload') == null) { + $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/' . $auth_user['cawangan'] . '/' . $current->toDateString())->json(); + if ($gadai_transaction) { $new_sirig = $gadai_transaction['sirig'] + 1; - }else{ + } else { $new_sirig = 1; } - $new_transaction = sprintf("%04d",$new_sirig); - $norujukan = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction; - Session::put('norujukan',$norujukan); - Session::put('nokp',$noic); - Session::put('nopelanggan',$customer_info['nopelanggan']); - Session::put('page_reload',true); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/gadai/'.$auth_user['cawangan'],[ + $new_transaction = sprintf("%04d", $new_sirig); + $norujukan = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' . $new_transaction; + Session::put('norujukan', $norujukan); + Session::put('nokp', $noic); + Session::put('nopelanggan', $customer_info['nopelanggan']); + Session::put('page_reload', true); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/gadai/' . $auth_user['cawangan'], [ 'norujukan' => $norujukan, 'nopelanggan' => $customer_info['nopelanggan'], 'nokp' => $noic, 'sirig' => $new_sirig ]); - }else{ + } else { $norujukan = Session::get('norujukan'); $nokp = Session::get('nokp'); $nopelanggan = Session::get('nopelanggan'); - $gadai_session = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/check/sag',['kodcaw'=>$auth_user['cawangan'],'norujukan'=>$norujukan,'nokp'=>$nokp])->json(); - if($gadai_session == null){ - $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json(); - if($gadai_transaction){ + $gadai_session = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/check/sag', ['kodcaw' => $auth_user['cawangan'], 'norujukan' => $norujukan, 'nokp' => $nokp])->json(); + if ($gadai_session == null) { + $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/' . $auth_user['cawangan'] . '/' . $current->toDateString())->json(); + if ($gadai_transaction) { $new_sirig = $gadai_transaction['sirig'] + 1; - }else{ + } else { $new_sirig = 1; } - $new_transaction = sprintf("%04d",$new_sirig); - $norujukan_baru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction; - Session::put('norujukan',$norujukan_baru); - Session::put('nokp',$nokp); - Session::put('nopelanggan',$nopelanggan); - Session::put('page_reload',true); - $gadai_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') .'/api/gadai/'.$auth_user['cawangan'],[ + $new_transaction = sprintf("%04d", $new_sirig); + $norujukan_baru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' . $new_transaction; + Session::put('norujukan', $norujukan_baru); + Session::put('nokp', $nokp); + Session::put('nopelanggan', $nopelanggan); + Session::put('page_reload', true); + $gadai_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/gadai/' . $auth_user['cawangan'], [ 'norujukan' => $norujukan_baru, 'nopelanggan' => $nopelanggan, 'nokp' => $nokp, @@ -91,57 +94,60 @@ class GadaianController extends Controller } - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - return view('gadaian.' . $cawangan_info['version'] . '.index',compact('customer_info','limit_pinjaman_semasa','cawangan_info','norujukan','api_url','current')); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + return view('gadaian.' . $cawangan_info['version'] . '.index', compact('customer_info', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url', 'current')); } - public function edit(Request $request,$norujukan){ + public function edit(Request $request, $norujukan) + { $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); - $curent_year = substr($current->year,2,2); + $curent_year = substr($current->year, 2, 2); $curent_month = sprintf("%02d", $current->month); $current_day = sprintf("%02d", $current->day); // dd($current_day); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); - if(sizeof($gadaiannorujukan) != 0) + if (sizeof($gadaiannorujukan) != 0) $gadaiannorujukan = $gadaiannorujukan[0][0]; $noic = $request->noic; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadaiannorujukan['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadaiannorujukan['nokp'])->json(); $customer_info = $customers_info; $limit_pinjaman_semasa = 0; $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - return view('gadaian.' . $cawangan_info['version'] . '.edit',compact('customer_info','gadaiannorujukan','limit_pinjaman_semasa','cawangan_info','norujukan','api_url')); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + return view('gadaian.' . $cawangan_info['version'] . '.edit', compact('customer_info', 'gadaiannorujukan', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url')); } - public function editmarhun(Request $request){ + public function editmarhun(Request $request) + { $api_url = config('api.url'); $auth_user = Auth::user(); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/edit/marhun/'. $auth_user['cawangan'] . '/' . $request->norujukan,[ + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/edit/marhun/' . $auth_user['cawangan'] . '/' . $request->norujukan, [ "recno" => $request->recno ])->json(); return $gadaiannorujukan; } - public function ubahmarhun(Request $request){ + public function ubahmarhun(Request $request) + { $api_url = config('api.url'); $auth_user = Auth::user(); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/ubah/marhun/'. $auth_user['cawangan'] . '/' . $request->norujukedit,[ + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/ubah/marhun/' . $auth_user['cawangan'] . '/' . $request->norujukedit, [ 'recno' => $request->recno, 'karat' => $request->sltkarat, 'berat' => $request->berat, @@ -153,15 +159,16 @@ class GadaianController extends Controller return redirect()->back(); } - public function store(Request $request){ + public function store(Request $request) + { $auth_user = Auth::user(); //$total_nilai_marhun = $request->total_nilai_marhun; //need to get total nilai marhun by api get from table marhun - $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/gadai/'. $auth_user['cawangan'] .'/'. $request->norujukan_gadai)->json(); + $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/gadai/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai)->json(); $total_nilai_marhun = $marhun; - $total_nilai_marhun = str_replace(',','',$total_nilai_marhun); + $total_nilai_marhun = str_replace(',', '', $total_nilai_marhun); $keuntungan_sebln = $request->keuntungan_sebulan; - $keuntungan_sebln = str_replace(',','',$keuntungan_sebln); + $keuntungan_sebln = str_replace(',', '', $keuntungan_sebln); $onepercent = $request->onepercent; $ujrah = $request->ujrah; @@ -171,7 +178,8 @@ class GadaianController extends Controller $keuntungan12bulan = $keuntungan_sebln * 12; $hargajualan = $request->pinjaman + $keuntungan12bulan; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $request->norujukan_gadai,[ + Log::info('DEBUG NOKP:' . $request->nokp); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [ 'kodcaw' => $auth_user['cawangan'], 'nilaimarhun' => round($total_nilai_marhun, 2), 'berat' => round($request->total_berat, 2), @@ -179,7 +187,7 @@ class GadaianController extends Controller 'kadarupah' => round($kadarupah, 2), 'marhun' => $request->marhun_detail, 'percentpinj' => $margin_pinjaman, - 'teller'=> $auth_user['name'], + 'teller' => $auth_user['name'], 'upah6' => $keuntungan6bulan, 'upah12' => $keuntungan12bulan, 'hargajualan' => $hargajualan, @@ -189,19 +197,20 @@ class GadaianController extends Controller 'ujrah' => $ujrah, 'onepercent' => $onepercent, 'margin_semasa' => $margin_pinjaman, + 'nokp' => $request->nokp, ])->json(); - $komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/transaksi',[ + $komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/komuditi/transaksi', [ 'unit_komuditi' => round($request->pinjaman, 2), 'norujukan' => $request->norujukan_gadai, 'kodcaw' => $auth_user['cawangan'], 'teller' => $auth_user['name'] ]); - $this->AliranTunaiController->alirantunaiGadai($request,$auth_user['name']); + $this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']); - event(new GadaiNotify('lulus',$auth_user['cawangan'])); + event(new GadaiNotify('lulus', $auth_user['cawangan'])); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); @@ -210,13 +219,14 @@ class GadaianController extends Controller return redirect()->route('customer_info'); } - public function editstore(Request $request){ + public function editstore(Request $request) + { $auth_user = Auth::user(); $total_nilai_marhun = $request->total_nilai_marhun; - $total_nilai_marhun = str_replace(',','',$total_nilai_marhun); + $total_nilai_marhun = str_replace(',', '', $total_nilai_marhun); $keuntungan_sebln = $request->keuntungan_sebulan; - $keuntungan_sebln = str_replace(',','',$keuntungan_sebln); + $keuntungan_sebln = str_replace(',', '', $keuntungan_sebln); $onepercent = $request->onepercent; $ujrah = $request->ujrah; @@ -226,7 +236,7 @@ class GadaianController extends Controller $keuntungan6bulan = $keuntungan_sebln * 6; $keuntungan12bulan = $keuntungan_sebln * 12; $hargajualan = $request->pinjaman + $keuntungan12bulan; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $request->norujukan_gadai,[ + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [ 'kodcaw' => $auth_user['cawangan'], 'nilaimarhun' => round($total_nilai_marhun, 2), 'berat' => round($request->total_berat, 2), @@ -234,7 +244,7 @@ class GadaianController extends Controller 'kadarupah' => round($kadarupah, 2), 'marhun' => $request->marhun_detail, 'percentpinj' => $margin_pinjaman, - 'teller'=> $auth_user['name'], + 'teller' => $auth_user['name'], 'upah6' => $keuntungan6bulan, 'upah12' => $keuntungan12bulan, 'hargajualan' => $hargajualan, @@ -245,29 +255,31 @@ class GadaianController extends Controller 'onepercent' => $onepercent, 'margin_semasa' => $margin_pinjaman, ])->json(); - $update_komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/update',[ + $update_komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/komuditi/update', [ 'unit_komuditi' => round($request->pinjaman, 2), 'norujukan' => $request->norujukan_gadai ])->json(); - event(new GadaiNotify('lulus',$auth_user['cawangan'])); + event(new GadaiNotify('lulus', $auth_user['cawangan'])); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); return redirect()->route('customer_info'); } - public function batal(Request $request){ + public function batal(Request $request) + { $norujukan = $request->norujukan; $auth_user = Auth::user(); - Http::withOptions(['verify' => config('app.api_verify')])->delete(config('api.url').'/api/gadai/batal/'. $auth_user['cawangan'] .'/' . $norujukan); + Http::withOptions(['verify' => config('app.api_verify')])->delete(config('api.url') . '/api/gadai/batal/' . $auth_user['cawangan'] . '/' . $norujukan); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); return redirect()->route('customer_info'); } - public function batalmarhun(Request $request){ + public function batalmarhun(Request $request) + { $norujukan = $request->norujukan; $auth_user = Auth::user(); @@ -278,74 +290,75 @@ class GadaianController extends Controller // return redirect()->route('customer_info'); } - public function cetakSAG(Request $request){ + public function cetakSAG(Request $request) + { $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/cetak/'.$auth_user['cawangan'].'/'.$request->norujukan_modal); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $request->norujukan_modal); return redirect()->route('home'); } - public function serahMarhun(Request $request){ + public function serahMarhun(Request $request) + { $auth_user = Auth::user(); $norujukan_serah = $request->norujukanpilih; - $arraynorujukan = explode(",",$norujukan_serah); + $arraynorujukan = explode(",", $norujukan_serah); - $results=array_search("",$arraynorujukan,true); - if($results !== false) { + $results = array_search("", $arraynorujukan, true); + if ($results !== false) { unset($arraynorujukan[$results]); } - foreach($arraynorujukan as $index=>$norujukan){ - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url'). '/api/gadai/norujukan/serah/'. $auth_user['cawangan'] .'/'. $norujukan); + foreach ($arraynorujukan as $index => $norujukan) { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/serah/' . $auth_user['cawangan'] . '/' . $norujukan); - if($gadai->failed()){ + if ($gadai->failed()) { break; } } - event(new SerahanPenilai($auth_user['cawangan'],"LULUS")); + event(new SerahanPenilai($auth_user['cawangan'], "LULUS")); return redirect()->route('home'); } - public function printSAG(Request $request){ + public function printSAG(Request $request) + { $norujukan = $request->norujukan_modal; $auth_user = Auth::user(); $auth_username = $auth_user['name']; $kodcaw = $auth_user['cawangan']; $api_url = config('api.url'); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' .$norujukan)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); $gadai_detail = $gadai[0]; - if(isset($request->jenisprint)) - { - - $cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/cetak/'.$auth_user['cawangan'].'/'.$norujukan,[ - 'penilai' => $auth_user['name'] - ]); + if (isset($request->jenisprint)) { + $cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $norujukan, [ + 'penilai' => $auth_user['name'] + ]); } - - $kakitangan = User::where([['role_harian','khazanah'],['cawangan',$kodcaw]])->first(); + + $kakitangan = User::where([['role_harian', 'khazanah'], ['cawangan', $kodcaw]])->first(); // dd($kakitangan); - - $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai_detail['nokp'])->json(); + + $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai_detail['nokp'])->json(); $customer_detail = $customer; - $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/marhun/'. $norujukan)->json(); + $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/' . $norujukan)->json(); $marhun_detail = $marhun[0]; - $mutu = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/marhun/mutu/sag',[ + $mutu = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/mutu/sag', [ 'kodcaw' => $auth_user['cawangan'], 'norujukan' => $norujukan ])->json(); // dd($mutu); - $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/detail/'. $auth_user['cawangan'])->json(); + $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/detail/' . $auth_user['cawangan'])->json(); $cawangan_detail = $cawangan[0]; @@ -357,17 +370,17 @@ class GadaianController extends Controller $pembayaran_segera = "https://pay.arrahn.com.my"; $komoditi = Http::withOptions(['verify' => config('app.api_verify')]) - ->get($api_url . '/api/komuditi/check') - ->json(); + ->get($api_url . '/api/komuditi/check') + ->json(); $product = Http::withOptions(['verify' => config('app.api_verify')]) - ->get($api_url . '/api/komuditi/description', ['kodproduk' => $komoditi['kodproduct']]) - ->json(); + ->get($api_url . '/api/komuditi/description', ['kodproduk' => $komoditi['kodproduct']]) + ->json(); $kuantiti = $gadai_detail['pinjaman'] / $komoditi['nilai']; if ($gadai_detail['tagbaru'] == 1) { - return view('print.sag_ujrah_3', compact('komoditi', 'product', 'kuantiti', 'gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kadar_ujrah','kakitangan')); + return view('print.sag_ujrah_3', compact('komoditi', 'product', 'kuantiti', 'gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kadar_ujrah', 'kakitangan')); } else { - return view('print.sag', compact('gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu','kakitangan')); + return view('print.sag', compact('gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kakitangan')); } } @@ -376,32 +389,32 @@ class GadaianController extends Controller $auth_user = Auth::user(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/id/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/id/' . $id)->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - if(sizeof($transaction) != 0) + if (sizeof($transaction) != 0) $transaction = $transaction[0]; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $transaction['norujukan'])->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $transaction['norujukan'])->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - if($gadai['tagbaru'] == 1) { - return view('print.resitansuran_ujrah',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + if ($gadai['tagbaru'] == 1) { + return view('print.resitansuran_ujrah', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); } else { - return view('print.resitansuran',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + return view('print.resitansuran', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); // return view('print.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); } } @@ -411,30 +424,30 @@ class GadaianController extends Controller $auth_user = Auth::user(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - if($gadai['tagbaru'] == 1) { - return view('print.resitansuran_ujrah',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + if ($gadai['tagbaru'] == 1) { + return view('print.resitansuran_ujrah', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); } else { - return view('print.resitansuran',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + return view('print.resitansuran', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); // return view('print.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); } } @@ -448,28 +461,28 @@ class GadaianController extends Controller // if(sizeof($transaction) != 0) // $transaction = $transaction[0]; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - return view('print.resitansuransebelum',compact('gadai','customers_info','wakil','penebusan')); + return view('print.resitansuransebelum', compact('gadai', 'customers_info', 'wakil', 'penebusan')); } public function resittebusseparuh($id) @@ -477,44 +490,43 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); - + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); - return view('print.resit.tebus_separuh',compact('totalrebate','khazanah_user','totalBayaranAnsuran','transaction_tebus','gadai','customers_info','penebusan','wakil')); + + return view('print.resit.tebus_separuh', compact('totalrebate', 'khazanah_user', 'totalBayaranAnsuran', 'transaction_tebus', 'gadai', 'customers_info', 'penebusan', 'wakil')); } public function resitautotawarruq($id) @@ -522,44 +534,43 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $transaction_keuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/transaksi_keuntungan_latest/'. $id)->json(); + $transaction_keuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaksi_keuntungan_latest/' . $id)->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - return view('print.resittebusautotawarruq',compact('transaction_tebus', 'transaction','gadai','customers_info','penebusan','wakil','totaltransaction','transaction_keuntungan', 'khazanah_user','cawangan_info')); + return view('print.resittebusautotawarruq', compact('transaction_tebus', 'transaction', 'gadai', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'transaction_keuntungan', 'khazanah_user', 'cawangan_info')); } public function resittebus($id) @@ -567,55 +578,54 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); // dd($wakil); $surat_wakil = []; - if(sizeof($wakil) != 0) { + if (sizeof($wakil) != 0) { $wakil = $wakil[0]; $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); } $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - if($gadai['tagbaru'] == 1) { - return view('print.resittebus_ujrah',compact('surat_wakil','totalrebate','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + if ($gadai['tagbaru'] == 1) { + return view('print.resittebus_ujrah', compact('surat_wakil', 'totalrebate', 'transaction_tebus', 'transaction', 'gadai', 'cawangan_info', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'totalBayaranAnsuran', 'khazanah_user')); } else { - return view('print.resittebus',compact('surat_wakil', 'transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + return view('print.resittebus', compact('surat_wakil', 'transaction_tebus', 'transaction', 'gadai', 'cawangan_info', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'totalBayaranAnsuran', 'khazanah_user')); } } @@ -624,38 +634,35 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'] ,[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; // dd($penebusan['nowakil']); - if($penebusan['nowakil'] != 0) - { - $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); + if ($penebusan['nowakil'] != 0) { + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - if(sizeof($wakil) != 0) - $wakil = $wakil[0]; - } - else - { + if (sizeof($wakil) != 0) + $wakil = $wakil[0]; + } else { $wakil = []; } - return view('print.resittebussebelum',compact('gadai','customers_info','penebusan','wakil')); + return view('print.resittebussebelum', compact('gadai', 'customers_info', 'penebusan', 'wakil')); } public function resitadvansur($id) @@ -663,32 +670,30 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $advansur = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/advansur/'. $auth_user['cawangan'] . '/'. $id)->json(); + $advansur = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/advansur/' . $auth_user['cawangan'] . '/' . $id)->json(); - if($advansur['nowakil'] != 0){ + if ($advansur['nowakil'] != 0) { $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $advansur['nowakil'])->json(); - if(sizeof($wakil) != 0){ + if (sizeof($wakil) != 0) { $wakil = $wakil[0]; } - } - else - { + } else { $wakil = []; } - return view('print.resitadvansur',compact('gadai','customers_info','advansur','wakil')); + return view('print.resitadvansur', compact('gadai', 'customers_info', 'advansur', 'wakil')); } public function resittambahpinjam($id) @@ -696,103 +701,93 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'] ,[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; // dd($penebusan['nowakil']); $surat_wakil = []; - if($penebusan['nowakil'] != 0) - { - $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); + if ($penebusan['nowakil'] != 0) { + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - if(sizeof($wakil) != 0){ - $wakil = $wakil[0]; - $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); - } - } - else - { + if (sizeof($wakil) != 0) { + $wakil = $wakil[0]; + $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); + } + } else { $wakil = []; } - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); - return view('print.resit.tambah_pinjaman',compact('surat_wakil','totalrebate','khazanah_user','totalBayaranAnsuran','transaction_tebus','gadai','customers_info','penebusan','wakil','cawangan_info')); + return view('print.resit.tambah_pinjaman', compact('surat_wakil', 'totalrebate', 'khazanah_user', 'totalBayaranAnsuran', 'transaction_tebus', 'gadai', 'customers_info', 'penebusan', 'wakil', 'cawangan_info')); } public function history(Request $request) { $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $request->norujukan)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $request->norujukan)->json(); - if(sizeof($gadai) > 0) - { + if (sizeof($gadai) > 0) { $history = $gadai[0][0]['historygadaian']; $dahtebus = $gadai[0][0]['sttebus']; $norujukan = $gadai[0][0]['norujukan']; - } $count = 0; $arrayhist = []; - while($history != "0" && $history != '' || $dahtebus == 'T') - { - if($history != "0" && $history != '') - { - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $history)->json(); - $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $auth_user['cawangan'],[ - "norujukan" => $history + while ($history != "0" && $history != '' || $dahtebus == 'T') { + if ($history != "0" && $history != '') { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $history)->json(); + $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ + "norujukan" => $history ])->json(); - if(sizeof($gadai) > 0) - { - if($history == $gadai[0][0]['historygadaian']) + if (sizeof($gadai) > 0) { + if ($history == $gadai[0][0]['historygadaian']) $history = 0; - else{ - array_push($arrayhist,["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0),"tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0),"hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $history,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); + else { + array_push($arrayhist, ["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0), "tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0), "norujukan" => $history, "jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0), "jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0), "t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); $history = $gadai[0][0]['historygadaian']; } } - $count++; - - } - else{ - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); - $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $auth_user['cawangan'],[ - "norujukan" => $norujukan + $count++; + } else { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); + $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ + "norujukan" => $norujukan ])->json(); - array_push($arrayhist,["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0),"tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''),"pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $norujukan,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); + array_push($arrayhist, ["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0), "tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0), "norujukan" => $norujukan, "jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0), "jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0), "t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); break; } } - return response()->json($arrayhist,200); + return response()->json($arrayhist, 200); } /// KELULUSAN/// @@ -804,18 +799,15 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/' . $auth_user['cawangan'],[ + $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/' . $auth_user['cawangan'], [ "norujukan" => $norujukan ])->json(); - if(sizeof($kelulusan) > 0) - { + if (sizeof($kelulusan) > 0) { $kelulusan = $kelulusan['benar']; - } - else - { + } else { $kelulusan = ''; } @@ -830,11 +822,11 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - return response()->json($updatelulus,200); + return response()->json($updatelulus, 200); } public function createkelulusan(Request $request) @@ -844,7 +836,7 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $gadai_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); + $gadai_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); $pinjaman = ($gadai_info[0][0]['pinjaman']) ? $gadai_info[0][0]['pinjaman'] : '-'; $nilaimarhun = ($gadai_info[0][0]['nilaimarhun']) ? $gadai_info[0][0]['nilaimarhun'] : '-'; @@ -864,11 +856,92 @@ class GadaianController extends Controller 'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0, ])->json(); - event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); - return response()->json($createlulus,201); + return response()->json($createlulus, 201); } + public function createkelulusanAnggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $verify_ssl = config('app.api_verify'); + + // 🔸 Validasi asas + $request->validate([ + 'norujukan' => 'required|string', + 'noic' => 'required|string', + 'komen' => 'required|string', + 'teller' => 'required|string', + ]); + + $norujukan = $request->norujukan; + $current = Carbon::now(); + + // 1️⃣ Dapatkan info cawangan + $cawangan_info = Http::withOptions(['verify' => $verify_ssl]) + ->get("{$api_url}/api/cawangan/{$auth_user->cawangan}") + ->json(); + + if (empty($cawangan_info)) { + return response()->json(['message' => 'Maklumat cawangan tidak ditemui.'], 404); + } + + // 2️⃣ Dapatkan siri terkini (supaya sistem tahu kelulusan ke berapa) + $getsiri = Http::withOptions(['verify' => $verify_ssl]) + ->get("{$api_url}/api/ListLatestLulus/{$auth_user->cawangan}/{$norujukan}") + ->json(); + + $siri = isset($getsiri['siri']) ? ((int) $getsiri['siri'] + 1) : 1; + + $createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateLulus/' . $auth_user['cawangan'] . '/' . $norujukan, [ + 'mohon' => $request->mohon, + 'teller' => $auth_user['name'], + 'komen' => $request->komen, + 'status' => $request->status, + 'ansuran' => $request->ansuran, + 'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0, + ])->json(); + + // 3️⃣ Hantar permohonan ke API utama + $payload = [ + 'komen' => $request->komen, + 'dategadai' => $current->toDateString(), + 'bilgadai' => 1, + 'siri' => $siri, + 'status' => 'TUNGGU KELULUSAN OPERASI', + 'teller' => $request->teller, + 'peloperasi' => 'operasi', + 'mohon' => 'Assign Anggota', + 'noic' => $request->noic, + 'jenistebus' => 'A', // “A” = anggota + 'tagoperasi' => 1, // 1 = tunggu kelulusan operasi + ]; + + $createLulus = Http::withOptions(['verify' => $verify_ssl]) + ->post("{$api_url}/api/CreateKelulusanAnggota/{$auth_user->cawangan}/{$norujukan}/roles/operasi", $payload) + ->json(); + + // 4️⃣ Jika API gagal + if (isset($createLulus['error']) || !$createLulus) { + return response()->json([ + 'message' => 'Gagal menghantar permohonan kelulusan operasi.', + 'error' => $createLulus['error'] ?? $createLulus + ], 500); + } + + // 5️⃣ Trigger event untuk notifikasi operasi + event(new StatusLiked($auth_user->cawangan, $auth_user->name)); + + // 6️⃣ Hantar respon berjaya + return response()->json([ + 'message' => 'Permohonan kelulusan operasi (Assign Anggota) berjaya dihantar.', + 'siri' => $siri, + 'api_response' => $createLulus, + ], 201); + } + + ///END KELULUSAN/// } diff --git a/app/Http/Controllers/OperasiController.php b/app/Http/Controllers/OperasiController.php index 1b8872f8..74189123 100644 --- a/app/Http/Controllers/OperasiController.php +++ b/app/Http/Controllers/OperasiController.php @@ -7,6 +7,7 @@ namespace App\Http\Controllers; use App\Events\OperasiNotice; use App\Events\StatusLiked; use App\Events\NotifikasiKelulusan; +use App\Events\NotifikasiAnggota; use App\Events\Dashboard\KomoditiNotify; use Illuminate\Support\Facades\Auth; @@ -25,31 +26,29 @@ class OperasiController extends Controller $this->middleware('auth'); } - public function kelulusan(Request $request){ + public function kelulusan(Request $request) + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasi/')->json(); $arraykelulusan = []; - foreach($kelulusan as $index=>$lulus) - { - foreach($lulus['kelulusanall'] as $index=>$kel) - { - array_push($arraykelulusan,["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $kel['teller'], 'siri' => $kel['siri'] , "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'],'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'),'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]); + foreach ($kelulusan as $index => $lulus) { + foreach ($lulus['kelulusanall'] as $index => $kel) { + array_push($arraykelulusan, ["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $kel['teller'], 'siri' => $kel['siri'], "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'), 'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]); } - foreach($lulus['kelulusanMohonid'] as $index=>$mohon) - { - array_push($arraykelulusan,["mohonid" => true,"ansuran" => $mohon['ansuran'],"cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $mohon['teller'], 'recno' => $mohon['recno'] , "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'],'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'),'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]); + foreach ($lulus['kelulusanMohonid'] as $index => $mohon) { + array_push($arraykelulusan, ["mohonid" => true, "ansuran" => $mohon['ansuran'], "cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $mohon['teller'], 'recno' => $mohon['recno'], "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'], 'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'), 'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]); } } - return view('operasi.kelulusan',compact('cawangan_info','api_url','arraykelulusan')); + return view('operasi.kelulusan', compact('cawangan_info', 'api_url', 'arraykelulusan')); } public function getkelulusan(Request $request) @@ -59,16 +58,13 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/SenaraiDahLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - if(sizeof($kelulusan) > 0) - { + if (sizeof($kelulusan) > 0) { $kelulusan = $kelulusan[0]['masalulus']; - } - else - { + } else { $kelulusan = ''; } @@ -84,21 +80,20 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - if($request->pembatalan == null) - { - if(!$request->taglulus){ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + if ($request->pembatalan == null) { + if (!$request->taglulus) { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ "komen" => $request->komenkelulusan, 'siri' => $request->siri ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [ 'sahkan' => 1, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri ])->json(); - }else{ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + } else { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [ 'siri' => $request->siri, "kodcaw" => $request->kodcaw, "norujukan" => $request->norujukan, @@ -108,26 +103,23 @@ class OperasiController extends Controller } - if($updatelulus) - { - event(new NotifikasiKelulusan($norujukan,"lulus",$request->siri,$request->komenkelulusan,$request->teller)); + if ($updatelulus) { + event(new NotifikasiKelulusan($norujukan, "lulus", $request->siri, $request->komenkelulusan, $request->teller)); } - } - else - { - if(!$request->taglulus){ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + } else { + if (!$request->taglulus) { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ "komen" => $request->komenkelulusan, 'siri' => $request->siri ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [ 'sahkan' => 2, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri ])->json(); - }else{ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + } else { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [ 'siri' => $request->siri, "kodcaw" => $request->kodcaw, "norujukan" => $request->norujukan, @@ -136,18 +128,100 @@ class OperasiController extends Controller ])->json(); } - if($updatelulus) - { - event(new NotifikasiKelulusan($norujukan,"batal",$request->siri,$request->komenkelulusan,$request->teller)); + if ($updatelulus) { + event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller)); } } - return response()->json($updatelulus,200); + return response()->json($updatelulus, 200); } + public function updatekelulusananggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + + // Data asas + $nokp = $request->nokp; + $kodcaw = $request->kodcaw; + $komen = $request->komenkelulusan; + $namaoperasi = $request->namaoperasi; + $taglulus = $request->taglulus; // contoh: 'Y' = lulus, 'N' = batal + + // 1️⃣ Tentukan status kelulusan + $status = ($taglulus == 'Y') ? 1 : 2; // 1 = Lulus, 2 = Batal/Tolak + + try { + // 2️⃣ Panggil API baru — ikut route baru dengan {kodcaw} + $endpoint = $api_url . '/api/UpdateKelulusanAnggota/' . $kodcaw; + + $payload = [ + 'nokp' => $nokp, + 'komenkelulusan' => $komen, + 'namaoperasi' => $namaoperasi, + 'sahkan' => $status + ]; + + Log::info('Menghantar permintaan ke API UpdateKelulusanAnggota', [ + 'endpoint' => $endpoint, + 'payload' => $payload + ]); + + $response = Http::withOptions(['verify' => config('app.api_verify')]) + ->put($endpoint, $payload); + + $updatelulus = $response->json(); + + // 3️⃣ Log hasil respon API + Log::info('Respon dari API UpdateKelulusanAnggota', [ + 'status' => $response->status(), + 'body' => $updatelulus + ]); + + // 4️⃣ Jika berjaya, cipta event notifikasi + if ($response->successful() && $updatelulus && isset($updatelulus['success']) && $updatelulus['success'] === true) { + // $jenis = ($status == 1) ? 'lulus' : 'batal'; + // event(new NotifikasiAnggota($nokp, $jenis, null, $komen, $namaoperasi)); + + $statusText = ($status == 1) ? 'DILULUSKAN' : 'DITOLAK'; + event(new NotifikasiAnggota($nokp, $statusText, $komen, $namaoperasi)); + + + Log::info('Event NotifikasiAnggota dispatched', [ + 'nokp' => $nokp, + 'komen' => $komen, + 'namaoperasi' => $namaoperasi + ]); + } else { + Log::warning('Gagal kemas kini kelulusan anggota', [ + 'nokp' => $nokp, + 'kodcaw' => $kodcaw, + 'response' => $updatelulus + ]); + } + + return response()->json($updatelulus, $response->status()); + } catch (\Exception $e) { + Log::error('Ralat UpdateKelulusanAnggota (frontend)', [ + 'message' => $e->getMessage(), + 'line' => $e->getLine() + ]); + + return response()->json([ + 'success' => false, + 'message' => 'Ralat semasa menghantar kelulusan anggota.', + 'error' => $e->getMessage() + ], 500); + } + } + + + + + public function createkelulusan(Request $request) { $auth_user = Auth::user(); @@ -158,14 +232,13 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/'. $auth_user['cawangan'] . '/' . $norujukan)->json(); + $getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - if(isset($getsiri['siri'])) - { + if (isset($getsiri['siri'])) { $siri = $getsiri['siri'] + 1; - }else{ + } else { $siri = 1; } @@ -185,57 +258,110 @@ class OperasiController extends Controller ])->json(); - event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); - return response()->json($siri,201); + return response()->json($siri, 201); + } + + + public function createkelulusanAnggota(Request $request) + { + try { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $current = Carbon::now(); + + Log::info('createkelulusanAnggota', $request->all()); + + // Dapatkan maklumat cawangan + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + // Generate siri baru + $getsiri = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/anggota') + ->json(); + + $siri = isset($getsiri['siri']) ? $getsiri['siri'] + 1 : 1; + + // Hantar ke API + $createlulus = Http::withOptions(['verify' => config('app.api_verify')]) + ->post($api_url . '/api/CreateKelulusanAnggota/' . $auth_user['cawangan'] . '/roles/operasi', [ + 'komen' => $request->komen, + 'date_mohon' => $current->toDateString(), + 'siri' => $siri, + 'nokp' => $request->nokp, + 'teller' => $request->teller, + 'peloperasi' => 'operasi' + ]) + ->json(); + + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); + + return response()->json([ + 'success' => true, + 'message' => 'Permohonan kelulusan anggota berjaya dihantar.', + 'siri' => $siri, + 'data' => $createlulus, + ], 201); + + Log::info('🛰️ API CreateKelulusanAnggota Response:', [ + 'status' => $response->status(), + 'body' => $response->body(), + ]); + } catch (\Throwable $th) { + Log::error('❌ createkelulusanAnggota error: ' . $th->getMessage()); + return response()->json([ + 'success' => false, + 'message' => $th->getMessage(), + ], 500); + } } public function mintakatalaluansemula(Request $request) { - if(Hash::check($request->passsemula, Auth::user()->password)) - { + if (Hash::check($request->passsemula, Auth::user()->password)) { return "True"; - } - else - { + } else { return "False"; } - } public function parameter() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - return view('operasi.parameter',compact('cawangan_info','api_url')); + return view('operasi.parameter', compact('cawangan_info', 'api_url')); } public function hargaemas() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $harga_emas = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/')->json(); - return view('operasi.hargaemas',compact('cawangan_info','api_url','harga_emas')); + return view('operasi.hargaemas', compact('cawangan_info', 'api_url', 'harga_emas')); } - public function margin(){ + public function margin() + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $margin_pembiayaan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/maxpinjaman')->json(); - return view('operasi.margin_pembiayaan',compact('cawangan_info','api_url','margin_pembiayaan')); + return view('operasi.margin_pembiayaan', compact('cawangan_info', 'api_url', 'margin_pembiayaan')); } public function kelulusanrekodlepas() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); //declare array baru $arraykelulusan = []; @@ -243,29 +369,36 @@ class OperasiController extends Controller $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json(); - foreach($kelulusan as $index=>$k) - { - foreach($k['kelulusanall'] as $index1=>$kel) - { - $komen = explode("|",$kel['komen']); + foreach ($kelulusan as $index => $k) { + foreach ($k['kelulusanall'] as $index1 => $kel) { + $komen = explode("|", $kel['komen']); - $results=array_search("",$komen,true); - if($results !== false) { + $results = array_search("", $komen, true); + if ($results !== false) { unset($komen[$results]); } - array_push($arraykelulusan,['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'),'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]); - + array_push($arraykelulusan, ['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'), 'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]); } } - return view('operasi.rekodtelahlulus',compact('cawangan_info','api_url','arraykelulusan')); - + return view('operasi.rekodtelahlulus', compact('cawangan_info', 'api_url', 'arraykelulusan')); } public function notifyKomoditi() { $auth_user = Auth::user(); - event(new KomoditiNotify('lulus',$auth_user['cawangan'])); + event(new KomoditiNotify('lulus', $auth_user['cawangan'])); + } + + public function kelulusananggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + + $arraykelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/list/approval/anggota')->json(); + + return view('operasi.kelulusan_anggota', compact('cawangan_info', 'api_url', 'arraykelulusan')); } } diff --git a/app/Imports/AnggotaImport.php b/app/Imports/AnggotaImport.php new file mode 100644 index 00000000..c5a12bb1 --- /dev/null +++ b/app/Imports/AnggotaImport.php @@ -0,0 +1,24 @@ + $row['noic'], + 'nama' => $row['nama'], + 'status' => $row['status'] ?? 'aktif', + ]); + } +} diff --git a/routes/web.php b/routes/web.php index af251bcb..3e35c0ae 100644 --- a/routes/web.php +++ b/routes/web.php @@ -110,6 +110,7 @@ Route::post('/createwakil',['as'=>'wakil.create','uses'=>'PenebusanController@cr Route::get('/firstwakil',['as'=>'wakil.first','uses'=>'PenebusanController@getfirstWakil'])->middleware('auth','teller'); Route::get('/history',['as'=>'gadai.history','uses'=>'GadaianController@history'])->middleware('auth','teller'); Route::get('/history/khazanah',['as'=>'gadai.history.khazanah','uses'=>'GadaianController@history'])->middleware('auth','khazanah'); +Route::post('/customer/assign-anggota', ['as' => 'customer.assignAnggota','uses' => 'CustomersController@assignAnggota'])->middleware('auth', 'teller'); //Kemaskini Upah Route::get('/kemaskiniupah',['as'=>'kemaskini.upah','uses'=>'AliranTunaiController@kemaskiniupah'])->middleware('auth','teller'); @@ -203,6 +204,8 @@ Route::post('/deletependahuluanserahan',['as'=>'khazanah.deletependser','uses'=> //Ubah dan Hapus Route::get('/getkelulu',['as'=>'teller.getkelulusan','uses'=>'GadaianController@getkelulusan'])->middleware('auth','teller'); Route::post('/createkelulu',['as'=>'teller.createkelulusan','uses'=>'GadaianController@createkelulusan'])->middleware('auth'); +Route::post('/createkeluluanggota',['as'=>'teller.createkelulusan-anggota','uses'=>'GadaianController@createkelulusanAnggota'])->middleware('auth'); + Route::put('/updatekelulu',['as'=>'teller.updatekelulusan','uses'=>'GadaianController@updatekelulusan'])->middleware('auth','khazanah'); @@ -334,9 +337,12 @@ Route::post('/barcodescanned',['as'=>'barcode.scanned','uses'=>'KhazanahControll //Operasi Route::get('/operasi/kelulusan','OperasiController@kelulusan')->name('operasi.kelulusan')->middleware('auth','operasi'); +Route::get('/operasi/kelulusan/anggota','OperasiController@kelulusanAnggota')->name('operasi.kelulusananggota')->middleware('auth','operasi'); Route::post('/operasi/createkelulusan',['as'=>'operasi.createkelulusan','uses'=>'OperasiController@createkelulusan'])->middleware('auth','teller'); +Route::post('/operasi/createkelulusan-anggota',['as'=>'operasi.createkelulusan-anggota','uses'=>'OperasiController@createkelulusanAnggota'])->middleware('auth','teller'); Route::get('/operasi/getkelulusan',['as'=>'operasi.getkelulusan','uses'=>'OperasiController@getkelulusan'])->middleware('auth','teller'); Route::put('/operasi/updatekelulusan',['as'=>'operasi.updatekelulusan','uses'=>'OperasiController@updatekelulusan'])->middleware('auth','operasi'); +Route::put('/operasi/updatekelulusananggota',['as'=>'operasi.updatekelulusananggota','uses'=>'OperasiController@updatekelulusananggota'])->middleware('auth','operasi'); Route::get('/operasi/parameter','OperasiController@parameter')->name('parameter')->middleware('auth','operasi'); Route::get('/operasi/hargaemas',['as'=>'operasi.hargaemas','uses'=>'OperasiController@hargaemas'])->middleware('auth','operasi'); Route::post('/operasi/hargaemas/update',['as'=>'hargaemas.update','uses'=>'OperasiController@updatehargaemas'])->middleware('auth','operasi'); From 31dc30ed608c7175e4b55fa3fb99d224917c52d7 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:46:37 +0800 Subject: [PATCH 61/87] update all blade views for kadar anggota koperasi --- resources/views/customers/v2/index.blade.php | 106 ++-- resources/views/customers/v2/info.blade.php | 328 +++++++++++- resources/views/gadaian/v2/index.blade.php | 6 + .../views/homepage/operasi/home.blade.php | 1 + .../views/operasi/kelulusan_anggota.blade.php | 480 ++++++++++++++++++ 5 files changed, 878 insertions(+), 43 deletions(-) create mode 100644 resources/views/operasi/kelulusan_anggota.blade.php diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php index 10d2fcb3..5bdfe898 100644 --- a/resources/views/customers/v2/index.blade.php +++ b/resources/views/customers/v2/index.blade.php @@ -71,12 +71,27 @@
@if($search == true && $blacklist_search == false) -
- -
- @endif +
+ + {{-- ✅ Jika anggota tapi belum daftar pelanggan --}} + @if(isset($showDaftarPelangganBtn) && $showDaftarPelangganBtn) + + @endif + + {{-- ✅ Jika pelanggan dah ada tapi belum anggota --}} + @if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn) +
+ @csrf + + +
+ @endif + +
+@endif +
@@ -478,42 +493,75 @@
+ +@endif
@@ -167,7 +339,7 @@ $activate_tab = request()->session()->pull('activate_tab', 'SAG_lama'); $activate_tab_SAG_baru = $activate_tab === 'SAG_baru' ? 'active' : ''; - $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false'; + $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false'; $activate_pane_SAG_baru = $activate_tab === 'SAG_baru' ? 'active show' : ''; $activate_tab_SAG_lama = $activate_tab === 'SAG_lama' ? 'active' : ''; @@ -403,16 +575,24 @@
@php - $poskod = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/poskod/'. $customer_info['poskod'])->json(); - // $data = $poskod; - // $poskod2 = array('koddaerah'=>'NIL','kodnegeri' => 'NIL'); - // dd($poskod,$poskod2,$data,$customer_info); - if(empty($poskod)){ - $poskod = array('koddaerah'=>'NIL','kodnegeri' => 'NIL'); - } - $daerah = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/daerah/' . $poskod['koddaerah'])->json(); - @endphp - + $poskod = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/poskod/' . $customer_info['poskod']) + ->json(); + + // Jika tiada data poskod atau tiada koddaerah + if (empty($poskod) || !isset($poskod['koddaerah'])) { + $poskod = ['koddaerah' => 'NIL', 'kodnegeri' => 'NIL']; + } + + $daerah = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/daerah/' . $poskod['koddaerah']) + ->json(); +@endphp + + +
@@ -2996,6 +3176,126 @@ }); } } + + async function assignAnggota(e){ + let noic = $(e).data('noic'); + + const swalWithBootstrapButtons = Swal.mixin({ + customClass: { + confirmButton: 'btn btn-success me-2', + cancelButton: 'btn btn-danger' + }, + buttonsStyling: false + }); + + try { + // 1️⃣ Sahkan tindakan + const confirm = await swalWithBootstrapButtons.fire({ + title: 'Mohon Kelulusan Operasi', + text: 'Adakah anda pasti mahu mohon kelulusan operasi untuk assign sebagai anggota?', + icon: 'question', + showCancelButton: true, + confirmButtonText: 'Ya, Hantar Mohon', + cancelButtonText: 'Batal', + reverseButtons: true + }); + + if (!confirm.isConfirmed) { + await Swal.fire('Dibatalkan', 'Tindakan tidak diteruskan.', 'info'); + return; + } + + console.log(confirm); + + // 2️⃣ Masukkan komen + const komenPrompt = await Swal.fire({ + title: 'Masukkan Komen', + input: 'text', + inputPlaceholder: 'Contoh: Layak sebagai anggota', + showCancelButton: true, + confirmButtonText: 'Hantar', + cancelButtonText: 'Batal', + inputValidator: (value) => !value && 'Sila masukkan komen!' + }); + + if (!komenPrompt.isConfirmed) { + await Swal.fire('Dibatalkan', 'Tiada komen dimasukkan.', 'info'); + return; + } + + const komen = komenPrompt.value; + + // 3️⃣ Papar popup loading + Swal.fire({ + title: 'Tunggu Pengesahan Operasi', + text: 'Permohonan sedang menunggu kelulusan operasi...', + icon: 'info', + allowOutsideClick: false, + allowEscapeKey: false, + showConfirmButton: false, + didOpen: () => Swal.showLoading() + }); + + // 4️⃣ Aktifkan listener Pusher terlebih dahulu + const pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + const channel = pusher.subscribe('notice-anggota'); + + channel.bind('my-anggota', function (data) { + // Padankan hanya berdasarkan noic + console.log(data,noic); + if (data.noic == noic) { + Swal.close(); // tutup loading + + if (data.status === 'DILULUSKAN') { + Swal.fire({ + icon: 'success', + title: 'Diluluskan oleh Operasi', + confirmButtonText: 'OK' + }).then(() => location.reload()); + } else if (data.status === 'DITOLAK') { + Swal.fire({ + icon: 'warning', + title: 'Permohonan Dibatalkan', + confirmButtonText: 'OK' + }); + } + } + }); + + // 5️⃣ Hantar permohonan ke backend + const response = await fetch("{{ route('operasi.createkelulusan-anggota') }}", { + method: 'POST', + headers: { + "Content-Type": "application/json", + "X-CSRF-TOKEN": "{{ csrf_token() }}" + }, + body: JSON.stringify({ + mohon: "Assign Anggota", + nokp: noic, + komen: komen, + teller: "{{ Auth::user()->name }}", + tagoperasi: 1 // tunggu kelulusan operasi + }) + }); + + const result = await response.json(); + if (!response.ok || !result) throw new Error(result.message || 'Ralat semasa menghantar permohonan.'); + + console.log(result); + + } catch (error) { + console.error('Ralat mohonKelulusanOperasiAnggota:', error); + Swal.fire({ + icon: 'error', + title: 'Ralat', + text: 'Gagal menghantar permohonan kelulusan operasi. Sila cuba semula.' + }); + } +} + +@endsection From 71990e75822d8f4bcbdd5ef71810f5cdd0612cbf Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:47:48 +0800 Subject: [PATCH 62/87] update new format sag from syariah --- resources/views/print/sag_ujrah_3.blade.php | 812 ++++++++++++-------- 1 file changed, 506 insertions(+), 306 deletions(-) diff --git a/resources/views/print/sag_ujrah_3.blade.php b/resources/views/print/sag_ujrah_3.blade.php index d3d1f363..291c9449 100644 --- a/resources/views/print/sag_ujrah_3.blade.php +++ b/resources/views/print/sag_ujrah_3.blade.php @@ -153,7 +153,7 @@ .tnc-table td, .tnc-table th { padding: 1.5px; - font-size: 10px; + font-size: 9px; vertical-align: top; text-align: justify; } @@ -397,11 +397,11 @@
-

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

+

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

{{ $cawangan_detail['namacaw'] }}

{{ $cawangan_detail['alamat1'] }}

{{ $cawangan_detail['alamat2'] }}

-

No Tel: {{ $cawangan_detail['notel'] }}

+

{{ $cawangan_detail['notel'] }}

@@ -410,11 +410,8 @@
-
- {!! QrCode::size(60)->generate($pembayaran_segera) !!} -

-
https://pay.arrahn.com.my
+ {{--
https://pay.arrahn.com.my
--}}
UNTUK KEGUNAAN PELANGGAN
@@ -437,7 +434,7 @@ '" alt="barcode" />'; @endphp - PEMBIAYAAN AR-RAHN TAWARRUQ DAN
PENYIMPANAN EMAS + PEMBIAYAAN AR-RAHN TAWARRUQ @php @@ -450,8 +447,6 @@ NAMA {{ $customer_detail['nama'] }} - - NO MYKAD / PASSPORT {{ $gadai_detail['nokp'] }} @@ -485,26 +480,27 @@ echo $customer_detail['poskod'] . ', ' . $namadaerah . ', ' . $negeri; @endphp - - + NO TELEFON {{ $customer_detail['telefon'] }} + TARIKH PEMBIAYAAN - + @php $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); $formattedweddingdate = $myDateTime->format('d-m-Y'); echo $formattedweddingdate; @endphp +
- + - - + + @@ -593,11 +589,11 @@ - + {{-- - + --}}
@@ -582,8 +578,8 @@ Nombor Sijil {{ $komoditi['no_sijil'] }} 4Kuantiti{{ number_format($kuantiti, 2) }}Kuantiti (Unit){{ number_format($kuantiti, 2) }} TAN
2harga kos {{ 'RM' . number_format($gadai_detail['pinjaman'], 2) }}
3 Unit {{ $product['unit'] }}
{{-- MAKLUMAT PEMBIAYAAN SECTION --}} @@ -612,7 +608,8 @@ HARGA JUALAN - RM{{ number_format($gadai_detail['hargajualan'], 2) }} + RM{{ number_format($gadai_detail['hargajualan'], 2) }} + @@ -632,13 +629,14 @@ - + - @@ -656,62 +654,20 @@ - + - - - - - - - - - - - - - - - - - - - - -
{{ $formatted_t_matang_1 }}
JUMLAH KEUNTUNGAN DAN LAIN-LAIN CAJ YANG PERLU DIBAYARJUMLAH KEUNTUNGAN (1%) DAN LAIN-LAIN CAJ YANG PERLU DIBAYAR RM{{ number_format($gadai_detail['bakiupah'] / 6, 2) }} RM{{ number_format($gadai_detail['bakiupah'], 2) }} RM{{ number_format($gadai_detail['bakiupah'], 2) }}
JUMLAH KEUNTUNGAN DAN LAIN-LAIN CAJ TERKUMPUL
SEPANJANG TEMPOH PEMBIAYAAN +
JUMLAH KEUNTUNGAN (1%) DAN LAIN-LAIN CAJ TERKUMPUL
SEPANJANG TEMPOH + PEMBIAYAAN
- RM{{ number_format($gadai_detail['bakiupah'], 2) }}TRANSAKSI PEMBIAYAAN AR-RAHN
AKAD JUALAN MURABAHAH (JUAL BELI SECARA TANGGUH)KONSEP TAWARRUQ
KoPKB dengan ini menjual dan Pelanggan dengan ini membeli - komoditi pada Harga Jualan dengan bayaran tangguh. Komoditi adalah sebagaimana - yang dinyatakan di - dalam nombor sijil - komoditi mengikut Jumlah Pembiayaan yang diberikan kepada Pelanggan. -
*Pelanggan dengan ini bersetuju untuk menerima komoditi yang telah - dijualkan - kepada Pelanggan seperti dinyatakan dalam SAG ini.
AKAD WAKALAH
Pelanggan :
Berkenaan pilihan pengambilan komoditi, sila tandakan (/) pada - salah satu - kotak dibawah (yang berkenaan):
Pelanggan dengan ini - melantik KoPKB sebagai wakil dan KoPKB dengan ini menerima perlantikan - tersebut untuk + + Kemudahan pembiayaan adalah di bawah prinsip syariah jual beli komoditi + Murabahah + (Tawarruq) di mana berdasarkan akujanji daripada pihak pelanggan, + KoPKB akan membeli komoditi daripada pihak pembekal komoditi dan seterusnya menjual komoditi - kepada pihak ketiga secara tunai yang bersamaan dengan - Jumlah Pembiayaan diberikan kepada Pelanggan. Pelanggan dengan ini mengaku janji untuk - menanggung rugi - KoPKB atas segala kerugian, kos, perbelanjaan atau kerosakan yang mungkin - dialami atau ditanggung oleh KoPKB akibat memenuhi fungsinya sebagai wakil Pelanggan; - Atau, -
- - - - - - @@ -720,23 +676,32 @@ + +
- Pelanggan bersetuju - mengambil komoditi tersebut dan menanggung segala kos dan caj yang berkaitan dan - dengan - mengambil komoditi tersebut, Jumlah Pembiayaan tidak akan dikreditkan ke dalam - akaun Pelanggan atau - dibayar tunai kepada Pelanggan. + kepada pelanggan berlandaskan kontrak Murabahah pada harga jualan + (kos komoditi beserta keuntungan) secara tangguh dan kemudian, sebagai ejen + (Wakalah) + pelanggan, + KoPKB menjualkannya kepada pembeli pihak ketiga dengan cara tunai.
Pelanggan bersetuju dan dengan ini menggadaikan Marhun sebagai cagaran kepada - Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain Caj Terkumpul mengikut - syarat-syarat pembiayaan dalam SAG ini. KoPKB dengan ini menerima gadaian Marhun + Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain Caj Terkumpul + mengikut + syarat-syarat pembiayaan dalam SAG ini. KoPKB dengan ini menerima gadaian Marhun tersebut.
+ + + + +
AKAD (SIMPAN MARHUN)
- Pelanggan dengan ini bersetuju marhun disimpan oleh KoPKB dan bersetuju membayar lain-lain caj + Pelanggan dengan ini bersetuju marhun disimpan oleh KoPKB dan bersetuju membayar + lain-lain caj sebagaimana jadual dibawah bagi setiap RM100.00 Jumlah Marhun Keseluruhan:
- +
@@ -758,66 +723,220 @@ +
NILAI MARHUN KESELURUHAN - RM{{ $kadar_ujrah[2]['kadarujrah'] }}/sebulan
+ + + +
+ {{-- tnc baru --}} +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{-- + + + + + + + + + + + + + + + + + + + + + + --}} +
+ TERMA DAN SYARAT SAG +
1.Pelanggan bersetuju:
a.Bahawa Marhun yang digadai adalah milik mutlaknya; atau Pelanggan + ialah wakil yang dilantik oleh pemilik Marhun melalui Surat Kuasa Wakil.
b.Menggadaikan Marhun seperti di dalam keterangan Marhun sebagai + cagaran kepada pembiayaan ini;
c.Bagi Marhun yang mempunyai batu permata, KoPKB akan mengasingkan + batu permata tersebut semasa penilaian emas dibuat atau Pelanggan diberi hak + untuk mengeluarkan sendiri batu permata di mana-mana kedai yang difikirkan patut + sebelum penilaian dilakukan;
d.KoPKB tidak bertanggungjawab atas apa-apa kerosakan yang terjadi + disebabkan pengasingan batu permata daripada Marhun;
e.Membayar Jumlah Pembiayaan termasuk Jumlah Keuntungan dan + Lain-Lain Caj Terkumpul yang diberi mengikut dalam tempoh seperti di SAG ini; +
f.Tertakluk kepada pembayaran penuh Jumlah Pembiayaan termasuk + Jumlah Keuntungan dan Lain-Lain Caj Terkumpul, Pelanggan perlu hadir sendiri + menyelesaikan Pembiayaan;
g.Sekiranya Penyelesaian Pembiayaan dilakukan melalui lantikan + wakil, Pelanggan perlu membawa dokumen berikut:
i.Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh Pelanggan asal; +
ii.SAG asal.
iii.Salinan Kad Pengenalan Pelanggan dan Kad Pengenalan wakil yang dilantik.
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di + mana pembiayaan dipohon dan diluluskan;
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ i. Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh + Pelanggan asal;
ii. SAG asal.
iii. Salinan Kad Pengenalan Pelanggan + dan Kad Pengenalan wakil yang + dilantik.
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di + mana pembiayaan dipohon dan diluluskan;
+ i. Pelanggan perlu memaklumkan kepada KoPKB sebarang kerosakan/kecacatan pada + Marhun (jika ada) sewaktu + Penyelesaian Pembiayaan. KoPKB tidak akan bertanggungjawab di atas sebarang + kerosakan/kecacatan Marhun selepas + daripada Penyelesaian Pembiayaan: +
j.Membenarkan KoPKB untuk mendedahkan apa-apa maklumat peribadi + atau + dokumen berkenaan Pembiayaan Marhun Pelanggan kepada mana-mana pihak + ketiga yang + difikirkan wajar termasuk tetapi tidak terhad kepada:
+ i. Anak syarikat KoPKB dan/atau mana-mana syarikat di bawah + kumpulan + KoPKB; dan
+ ii. Mana-mana syarikat atau institusi bagi tujuan pelaksanaan + konsep Syariah dan pembelian/penjualan komoditi;
{{-- SIGNATURE SECTION --}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA - @if ($gadai_detail['penilai'] == '') - {{ $auth_username }} - @else - {{ $gadai_detail['penilai'] }} - @endif - NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp - TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp - TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp -
+ {{-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif + NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
--}}
@@ -827,140 +946,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1078,31 +1063,6 @@ - - -
TERMA DAN SYARAT SAG
1.Pelanggan bersetuju: -
a.Bahawa Marhun yang digadai adalah milik mutlaknya; atau Pelanggan - ialah wakil - yang dilantik oleh pemilik Marhun melalui Surat Kuasa Wakil
b.Menggadaikan Marhun seperti di dalam keterangan Marhun - sebagai cagaran kepada pembiayaan ini;
c.Bagi Marhun yang mempunyai batu permata, KoPKB akan - mengasingkan batu permata tersebut semasa penilaian emas dibuat atau Pelanggan - diberi hak - untuk mengeluarkan sendiri batu permata di mana-mana kedai yang difikirkan patut - sebelum - penilaian dilakukan; -
d.KoPKB tidak bertanggungjawab atas apa-apa kerosakan yang terjadi - disebabkan pengasingan batu permata daripada Marhun; -
e.Membayar Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain - Caj Terkumpul yang diberi mengikut dalam - tempoh - seperti di SAG ini; -
f.Tertakluk kepada pembayaran penuh Jumlah Pembiayaan termasuk Jumlah - Keuntungan dan Lain-Lain Caj Terkumpul, Pelanggan perlu - hadir - sendiri menyelesaikan Pembiayaan; -
g.Sekiranya Penyelesaian Pembiayaan dilakukan melalui lantikan wakil, - Pelanggan perlu membawa dokumen berikut: -
i.Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh - Pelanggan - asal; -
ii.SAG asal. -
iii.Salinan Kad Pengenalan Pelanggan dan Kad Pengenalan wakil yang - dilantik. -
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di mana - pembiayaan dipohon dan diluluskan; -
i.Pelanggan perlu memaklumkan kepada KoPKB sebarang - kerosakan/kecacatan pada Marhun (jika ada) sewaktu - Penyelesaian Pembiayaan. KoPKB tidak akan bertanggungjawab di atas sebarang - kerosakan/kecacatan Marhun selepas - daripada Penyelesaian Pembiayaan: -
j.Membenarkan KoPKB untuk mendedahkan apa-apa maklumat peribadi - atau - dokumen berkenaan Pembiayaan Marhun Pelanggan kepada mana-mana pihak - ketiga yang - difikirkan wajar termasuk tetapi tidak terhad kepada: - -
i.Anak syarikat KoPKB dan/atau mana-mana syarikat di bawah kumpulan - KoPKB; dan -
ii.Mana-mana syarikat atau institusi bagi tujuan pelaksanaan - konsep Syariah dan pembelian/penjualan komoditi; -
k.
u.Memberikan hak mutlak kepada KoPKB, atas budi bicara KoPKB dan tanpa - notis lain kepada - Pelanggan, untuk menjual, menyerah, menovasi -
- - - -
- - - - - - - - - - + + sehingga tempoh matang) atau sehingga tempoh lanjutan (sekiranya layak) + - +
dan/atau memindah hak dan kepentingan - atas SAG ini, - menurut sebarang transaksi yang mungkin dimeterai oleh KoPKB dan jika notis perlu - diberikan kepada - Pelanggan menurut undang-undang, perengan (u) ini adalah notis yang diperlukan itu - dan memadai; -
v. Jika berlaku kehilangan SAG ini, KoPKB hanya boleh mengeluarkan salinan yang disahkan, @@ -1113,14 +1073,15 @@
w.v. SAG ini sah diperlakukan sepanjang tempoh matang (daripada tarikh pembiayaan - sehingga tempoh matang) atau sehingga tempoh lanjutan (sekiranya layak)
x.w. KoPKB berhak mengubah, mengubahsuai, menambah atau mengeluarkan terma dan syarat ini atau @@ -1137,6 +1098,9 @@
+ + + @@ -1200,11 +1164,9 @@ - + - +
IBRA'
(REBAT)
=BEZA MARGIN
-
MAKSIMUM MARGIN -
BAKI TEMPOH PEMBIAYAAN
XLAIN-LAIN CAJJUMLAH KEUNTUNGAN 1% DAN LAIN-LAIN CAJ YANG PERLU DIBAYAR

@@ -1240,12 +1202,18 @@ 5. + KoPKB tidak bertanggungjawab terhadap zakat ke atas emas yang + digadai dan zakat tersebut hendaklah dibayar oleh pelanggan sendiri. + + + + 6. Sekiranya Pelanggan mempunyai sebarang pertanyaan atau aduan, Pelanggan boleh menghubungi KoPKB sebagaimana berikut: - + @@ -1281,7 +1249,7 @@ arrahncareline@gmail.com
Koperasi Permodalan Kelantan Berhad
-
+ {{--



@@ -1293,12 +1261,243 @@ Pelanggan + --}} + + + + {{--
--}} + + + + + + +
+ + + + + + + +
Akujanji Untuk Membeli
+ Selaras dengan SAG, pelanggan dengan ini berakujanji untuk membeli komoditi yang + dinyatakan di dalam SAG daripada + KoPKB pada Harga Jualan yang disebut dalam SAG yang akan dibayar mengikut terma dan + syarat di dalam SAG. +
+
+ + + + + + + + + + + + +
Akad Wakalah
+ Berkenaan pilihan pengambilan komoditi, sila tandakan (/) pada salah satu kotak + dibawah (yang berkenaan): +
+ + Pelanggan dengan ini melantik KoPKB sebagai wakil dan KoPKB dengan ini + menerima perlantikan tersebut untuk menjual komoditi kepada pihak ketiga secara + tunai yang bersamaan dengan Jumlah Pembiayaan yang diberikan kepada + Pelanggan. Pelanggan dengan ini mengaku janji untuk menanggung rugi KoPKB + atas segala kerugian, kos, perbelanjaan atau kerosakan yang mungkin dialami atau + ditanggung oleh KoPKB akibat memenuhi fungsinya sebagai wakil Pelanggan; Atau, +
+ + Pelanggan bersetuju mengambil komoditi tersebut dan menanggung segala + kos dan caj yang berkaitan dan dengan mengambil komoditi tersebut, Jumlah + Pembiayaan tidak akan dikreditkan ke dalam akaun Pelanggan atau dibayar tunai + kepada Pelanggan. +
+ +
+ {{-- SIGNATURE SECTION --}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif + NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+
+ + + + +
+ + + + + + + +
KONTRAK JUALAN MURABAHAH (TARIKH MERUJUK KEPADA TARIKH + SIJIL KOMODITI)
+ Berdasarkan perjanjian di antara KoPKB dan Pelanggan di dalam Surat Akuan + Gadaian ‘SAG’, KoPKB dengan ini menjual dan Pelanggan dengan ini membeli + komoditi di dalam Maklumat Komoditi pada Harga Jualan merangkumi Nilai + Pembiayaan dan Jumlah Keuntungan dengan pembayaran secara tangguh tertakluk + kepada terma dan syarat di dalam SAG. + + Setelah pemeteriaan Kontrak Jualan Murabahah ini disempurnakan, liabiliti + dan hak pemilikan bermanfaat terhadap komoditi hendaklah dengan segera + diserahkan kepada pelanggan. + + Dengan ini, KoPKB bersetuju untuk menjual komoditi seperti di dalam Maklumat + Komoditi dengan Harga Jualan secara pembayaran tertangguh yang dinyatakan di + dalam SAG ini. + + Dengan ini, pelanggan bersetuju untuk membeli komoditi seperti di dalam + Maklumat Komoditi dengan Harga Jualan secara pembayaran tertangguh yang + dinyatakan di dalam SAG. +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + +
T/t KoPKB / Penjual:
+
+
+
Nama: + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif +
Tarikh: + @php + $myDateTime = DateTime::createFromFormat( + 'Y-m-d', + $gadai_detail['t_gadai'], + ); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+ + + + + + + + + + + + + + + +
T/t Pelanggan / Pembeli:
+
+
+
Nama: + {{ $customer_detail['nama'] }} +
Tarikh: + @php + $myDateTime = DateTime::createFromFormat( + 'Y-m-d', + $gadai_detail['t_gadai'], + ); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+ +
+
+
+ + {{-- new page --}}
{{-- HEADER SECTION --}} @@ -1319,8 +1518,8 @@
{{--
- {{ $jenisAT != 'AT' ? $jenisAT : '(PS)' }}{{ $gadai_detail['percentpinj'] }}% -
--}} + {{ $jenisAT != 'AT' ? $jenisAT : '(PS)' }}{{ $gadai_detail['percentpinj'] }}% +
--}}
UNTUK KEGUNAAN PEJABAT
@@ -1343,7 +1542,7 @@ '" alt="barcode" />'; @endphp - PEMBIAYAAN AR-RAHN TAWARRUQ DAN
PENYIMPANAN EMAS + PEMBIAYAAN AR-RAHN TAWARRUQ @php @@ -1541,7 +1740,8 @@ HARGA JUALAN - RM{{ number_format($gadai_detail['hargajualan'], 2) }} + RM{{ number_format($gadai_detail['hargajualan'], 2) }} + @@ -1641,7 +1841,7 @@ '" alt="barcode" />'; @endphp - {{--
{{ $gadai_detail['percentpinj'] }}%
--}} + {{--
{{ $gadai_detail['percentpinj'] }}%
--}}
@@ -1751,7 +1951,7 @@
From 80b8fd3a24858de559a82fb2e9a0fa25a5f4d2e7 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:18:16 +0800 Subject: [PATCH 63/87] enable panjar for kopkb --- resources/views/homepage/khazanah/home.blade.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/views/homepage/khazanah/home.blade.php b/resources/views/homepage/khazanah/home.blade.php index 5e806a8d..66578f88 100644 --- a/resources/views/homepage/khazanah/home.blade.php +++ b/resources/views/homepage/khazanah/home.blade.php @@ -274,11 +274,9 @@ - @if(Auth::user()->cawangan == '011237') - @endif
Aliran Tunai From 1e174a48b69eb74ddd3f90f2a85b5875e77221c5 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:20:12 +0800 Subject: [PATCH 64/87] enable route panjar --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 3e35c0ae..abc6fc7b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -186,7 +186,7 @@ Route::get('/capaian',['as'=>'khazanah.capaian','uses'=>'KhazanahController@capa Route::get('/alirantunai',['as'=>'khazanah.alirantunai','uses'=>'KhazanahController@alirantunai'])->middleware('auth','khazanah'); Route::get('/pelangganan',['as'=>'khazanah.pelangganan','uses'=>'KhazanahController@pelanggan'])->middleware('auth','khazanah'); Route::get('/bajet',['as'=>'khazanah.bajet','uses'=>'KhazanahController@bajet'])->middleware('auth','khazanah'); -//Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah'); +Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah'); Route::get('/getkelulusan',['as'=>'khazanah.getkelulusan','uses'=>'KhazanahController@getkelulusan'])->middleware('auth','teller'); Route::post('/createkelulusan',['as'=>'khazanah.createkelulusan','uses'=>'KhazanahController@createkelulusan'])->middleware('auth','teller'); Route::put('/updatekelulusan',['as'=>'khazanah.updatekelulusan','uses'=>'KhazanahController@updatekelulusan'])->middleware('auth','khazanah'); From cd9f83e21fe9442d2e39ae4f7edebd4c8cf5e557 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:30:36 +0800 Subject: [PATCH 65/87] enable i/duga biasa --- resources/views/khazanah/laporan/index.blade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/views/khazanah/laporan/index.blade.php b/resources/views/khazanah/laporan/index.blade.php index d3248985..35a33ede 100644 --- a/resources/views/khazanah/laporan/index.blade.php +++ b/resources/views/khazanah/laporan/index.blade.php @@ -189,6 +189,10 @@ Notis Peringatan
+ From 3456059db4aca45c4e78730cbf015aa2825c4f19 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:46:10 +0800 Subject: [PATCH 66/87] fix button assign anggota --- resources/views/customers/v2/info.blade.php | 5867 ++++++++++--------- 1 file changed, 3017 insertions(+), 2850 deletions(-) diff --git a/resources/views/customers/v2/info.blade.php b/resources/views/customers/v2/info.blade.php index 457bf7d6..523f34cc 100644 --- a/resources/views/customers/v2/info.blade.php +++ b/resources/views/customers/v2/info.blade.php @@ -1,379 +1,393 @@ @extends('layouts.app') @section('content') -@include('modal.historytebus') -@include('modal.wakil') -@include('errors.alert', ['errorapproval' => $getApprovalError ?? null]) -
-
-
-
- + @include('modal.historytebus') + @include('modal.wakil') + @include('errors.alert', ['errorapproval' => $getApprovalError ?? null]) +
+
+
+
+ -
-
-
-
- Nama -
-
- -
-
-
-
-
-
- No Kad Pengenalan -
-
- @php - if($customer_info['kpbaru'] != null){ - $noic = $customer_info['kpbaru']; - }else{ - $noic = $customer_info['kplama']; - } - @endphp - -
-
-
-
-
-
- Pembiayaan -
-
- @php - if($customer_info['kpbaru'] != null){ - $noic = $customer_info['kpbaru']; - }else{ - $noic = $customer_info['kplama']; - } - $outstanding_semasa = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/customers/'. $noic .'/outstandingsemasa/'.$cawangan_info['kodcaw'])->json(); - @endphp - -
-
- -
-
- Baki Limit Pembiayaan -
-
- @php - $limit_pinjaman_semasa = 300000 - $outstanding_semasa; - @endphp - -
-
- -
-
- Baki Lelong -
-
- -
-
- @if(isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 1) -
-
- Status +
+
+
+
+ Nama +
+
+ +
-
-
+
+
+
+ No Kad Pengenalan +
+
+ @php + if ($customer_info['kpbaru'] != null) { + $noic = $customer_info['kpbaru']; + } else { + $noic = $customer_info['kplama']; + } + @endphp + +
+
- @endif +
+
+
+ Pembiayaan +
+
+ @php + if ($customer_info['kpbaru'] != null) { + $noic = $customer_info['kpbaru']; + } else { + $noic = $customer_info['kplama']; + } + $outstanding_semasa = Http::withOptions(['verify' => config('app.api_verify')]) + ->get( + $api_url . + '/api/gadai/customers/' . + $noic . + '/outstandingsemasa/' . + $cawangan_info['kodcaw'], + ) + ->json(); + @endphp + +
+
+ +
+
+ Baki Limit Pembiayaan +
+
+ @php + $limit_pinjaman_semasa = 300000 - $outstanding_semasa; + @endphp + +
+
+ +
+
+ Baki Lelong +
+
+ +
+
+ @if (isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 1) +
+
+ Status +
+
+ +
+
+ @endif + +
+
+
+
+ No Telefon +
+
+ +
+
+ +
+
+ Nota +
+
+ +
+
+ +
+
+ Rugi Lelong +
+
+ +
+
+
+
+ +
+ + + + + + + + @if (isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn) +
+ +
+ + + @endif +
-
-
-
- No Telefon -
-
- -
-
-
-
- Nota -
-
- -
-
- -
-
- Rugi Lelong -
-
- -
-
-
-
+ - - +
+
+ + + +
+ +
+ - -@if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn && isset($kodcaw) && $kodcaw == 'X0301') - -
- -
- - -@endif -
- -
- -
- - - -
-
- - - -
- -
- - - - -
-
-
-
- {{$kakitangan['name']}} + {{ $kakitangan['name'] }} Tandatangan
- - - - - - - - - - - - - - -
BilNo RujukanTarikh PembiayaanTarikh MatangBaki Harga JualanBaki PembiayaanMarginTempohKeuntunganLelong
-
- + + + {{-- Sudah Tebus --}} + + + + + + + + + + + + +
BilNo RujukanTarikh Penyelesaian PembiayaanBaki PembiayaanMarginTempoh
+ + + + + + + + + + + + + + + + + +
BilNo RujukanTarikh LelongTarikh TuntutPembiayaanHarga JualJum Tuntut/BayarKeuntunganCaj LelongStatus TuntutanCetak
+ +
+ + + + +
+ - - {{-- Sudah Tebus --}} - - - - - - - - - - - - -
BilNo RujukanTarikh Penyelesaian PembiayaanBaki PembiayaanMarginTempoh
- - - - - - - - - - - - - - - - - -
BilNo RujukanTarikh LelongTarikh TuntutPembiayaanHarga JualJum Tuntut/BayarKeuntunganCaj LelongStatus TuntutanCetak
- -
- - - - -
- - - + - -