From 72c85b288511c9f8ea5be1bd3818bac1fa02ed50 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 5 Oct 2025 12:39:57 +0800 Subject: [PATCH 01/19] function barang kes di admin v2 --- app/Http/Controllers/BarangkesController.php | 56 +++++ resources/js/app.js | 10 +- resources/js/components/Searchbarangkes.vue | 197 ++++++++++++++++++ resources/js/pages/Detailssag.vue | 194 +++++++++++++++++ resources/views/barangkes/barangkes.blade.php | 18 ++ resources/views/layouts/sidebar.blade.php | 13 +- .../views/pelanggan/detailssag.blade.php | 21 ++ routes/web.php | 5 + 8 files changed, 511 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/BarangkesController.php create mode 100644 resources/js/components/Searchbarangkes.vue create mode 100644 resources/js/pages/Detailssag.vue create mode 100644 resources/views/barangkes/barangkes.blade.php create mode 100644 resources/views/pelanggan/detailssag.blade.php diff --git a/app/Http/Controllers/BarangkesController.php b/app/Http/Controllers/BarangkesController.php new file mode 100644 index 0000000..1eac054 --- /dev/null +++ b/app/Http/Controllers/BarangkesController.php @@ -0,0 +1,56 @@ +json(); + // dd($customer_info); + // ambil gadai info (by kodcaw + norujukan dari route) + // $gadai = null; + if (!empty($customer_info['kodcaw']) && !empty($norujukan)) { + $gadai = Http::get($api_url . '/api/gadai/norujukan/' + . $customer_info['kodcaw'] . '/' . $norujukan)->json(); + } + + $gadai = Http::get($api_url . '/api/gadai/norujukan/' . $request->kodcaw . '/' . $request->norujukan)->json(); + $gadai = $gadai[0]; + + return view('pelanggan.detailssag', compact('api_url', 'auth_user', 'customer_info', 'gadai')); +} + + public function store(Request $request, $id){ + + $api_url = config('api.url'); + $customer_info = Http::get($api_url . '/admin/Customers/' . $id)->json(); + // $auth_user = Auth::user(); + // dd($customer_info); + + return view('pelanggan.detailssag', ['customer' => $customer_info,'kodcaw' => $request->query('kodcaw'),'norujukan' => $request->query('norujukan'), + ]); + + } + +} diff --git a/resources/js/app.js b/resources/js/app.js index b7436e0..031ddcd 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -215,14 +215,20 @@ Vue.component('tunai-component', require('./components/Tunai.vue').default) Vue.component('petibesi-component', require('./components/Petibesi.vue').default) Vue.component('cawangan-component', require('./components/Cawangan.vue').default) Vue.component('modal-component', require('./components/util/Modal.vue').default) -Vue.component('searchpelanggan-component', require('./components/Searchpelanggan.vue').default) +Vue.component('searchpelanggan-component', require('./components/Searchpelanggan.vue').default) //refer sini nnti + +Vue.component('searchbarangkes-component', require('./components/Searchbarangkes.vue').default) //refer sini nnti copy nnti buat utk sag + Vue.component('laporanakaun-component', require('./Akaun/Laporan.vue').default) Vue.component('online-component', require('./Online/Online.vue').default) Vue.component('noticelelong-component', require('./pages/NotisLelong.vue').default) Vue.component('noticelelong2-component', require('./pages/NotisLelongFasa2.vue').default) Vue.component('kelulusan-component', require('./Kelulusan/TableKelulusan.vue').default) -Vue.component('details-pelanggan', require('./pages/Detailspelanggan.vue').default) +Vue.component('details-pelanggan', require('./pages/Detailspelanggan.vue').default) // refer sini jugak nnti utk sag searching + +Vue.component('details-sag', require('./pages/Detailssag.vue').default) // refer sini jugak nnnti utk sag searching + Vue.component('blacklist-pelanggan', require('./pages/Blacklist.vue').default) Vue.component('harian-component', require('./components/Analisa/Harian.vue').default) diff --git a/resources/js/components/Searchbarangkes.vue b/resources/js/components/Searchbarangkes.vue new file mode 100644 index 0000000..acab1cb --- /dev/null +++ b/resources/js/components/Searchbarangkes.vue @@ -0,0 +1,197 @@ + + + diff --git a/resources/js/pages/Detailssag.vue b/resources/js/pages/Detailssag.vue new file mode 100644 index 0000000..6db243b --- /dev/null +++ b/resources/js/pages/Detailssag.vue @@ -0,0 +1,194 @@ + + + + \ No newline at end of file diff --git a/resources/views/barangkes/barangkes.blade.php b/resources/views/barangkes/barangkes.blade.php new file mode 100644 index 0000000..352c9f8 --- /dev/null +++ b/resources/views/barangkes/barangkes.blade.php @@ -0,0 +1,18 @@ +@extends('layouts.app') + +@section('content') + +
+
+ +
+ + + + + +
+
+ @include('layouts.footer') +
+@endsection diff --git a/resources/views/layouts/sidebar.blade.php b/resources/views/layouts/sidebar.blade.php index 1c0d5e1..5357de1 100644 --- a/resources/views/layouts/sidebar.blade.php +++ b/resources/views/layouts/sidebar.blade.php @@ -179,7 +179,18 @@ - + +
  • +
    + + + + Barang Kes +
    +
  • +
  • diff --git a/resources/views/pelanggan/detailssag.blade.php b/resources/views/pelanggan/detailssag.blade.php new file mode 100644 index 0000000..9625940 --- /dev/null +++ b/resources/views/pelanggan/detailssag.blade.php @@ -0,0 +1,21 @@ +@extends('layouts.app') + +@section('content') + +
    +
    + +
    + + + + + {{-- --}} + +
    +
    + @include('layouts.footer') + +
    +@endsection + diff --git a/routes/web.php b/routes/web.php index 64f861c..a96b91a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -66,6 +66,11 @@ Route::get('pelanggan',['as'=>'pelanggan','uses'=>'App\Http\Controllers\Pelangga Route::get('/pelanggan/{id}',['as'=>'pelanggan.detailspelanggan','uses'=>'App\Http\Controllers\PelangganController@DetailsPelanggan'])->middleware(['roleChecker:admin,null,null,null,callcenter']); Route::get('/blacklist',['as'=>'blacklist','uses'=>'App\Http\Controllers\PelangganController@DetailsBlacklist'])->middleware(['roleChecker:null,null,operasi,null,callcenter']); +//barangkes +Route::get('barangkes', ['as' => 'barangkes','uses' => 'App\Http\Controllers\BarangKesController@AdminBarangKes'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); +Route::get('/barangkes/{id}',['as'=>'pelanggan.detailssag','uses'=>'App\Http\Controllers\BarangkesController@Detailssag'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); +Route::post('/barangkes/store/{id}',['as'=>'barangkes.store','uses' => 'App\Http\Controllers\BarangkesController@store'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); + //Carian Pelanggan ARCC Route::get('pelanggan_arcc',['as'=>'pelanggan_arcc','uses'=>'App\Http\Controllers\PelangganController@AdminPelanggan'])->middleware(['roleChecker:admin,null,null,null,callcenter']); From 7d951f96a24d3130d9a81a18209c53b5446e3320 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 5 Oct 2025 15:56:25 +0800 Subject: [PATCH 02/19] baiki class di controller dan web --- app/Http/Controllers/BarangkesController.php | 2 +- routes/web.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/BarangkesController.php b/app/Http/Controllers/BarangkesController.php index 1eac054..69d8ea1 100644 --- a/app/Http/Controllers/BarangkesController.php +++ b/app/Http/Controllers/BarangkesController.php @@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Http; use Carbon\Carbon; -class BarangKesController extends Controller +class BarangkesController extends Controller { // lebih kurg mcm index public function AdminBarangKes(Request $request) diff --git a/routes/web.php b/routes/web.php index a96b91a..c815605 100644 --- a/routes/web.php +++ b/routes/web.php @@ -67,7 +67,7 @@ Route::get('/pelanggan/{id}',['as'=>'pelanggan.detailspelanggan','uses'=>'App\Ht Route::get('/blacklist',['as'=>'blacklist','uses'=>'App\Http\Controllers\PelangganController@DetailsBlacklist'])->middleware(['roleChecker:null,null,operasi,null,callcenter']); //barangkes -Route::get('barangkes', ['as' => 'barangkes','uses' => 'App\Http\Controllers\BarangKesController@AdminBarangKes'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); +Route::get('barangkes', ['as' => 'barangkes','uses' => 'App\Http\Controllers\BarangkesController@AdminBarangKes'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); Route::get('/barangkes/{id}',['as'=>'pelanggan.detailssag','uses'=>'App\Http\Controllers\BarangkesController@Detailssag'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); Route::post('/barangkes/store/{id}',['as'=>'barangkes.store','uses' => 'App\Http\Controllers\BarangkesController@store'])->middleware(['roleChecker:admin,null,operasi,null,callcenter']); From 8f61f419561043a3b7d13ba256a0fa2bc943e529 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 12 Oct 2025 11:33:08 +0800 Subject: [PATCH 03/19] add radio button utk report barangkes --- app/Http/Controllers/AkaunController.php | 12 +- resources/js/Akaun/Barangkes.vue | 305 +++++++++++------- .../views/akaun/laporan_brgkes.blade.php | 33 +- 3 files changed, 225 insertions(+), 125 deletions(-) diff --git a/app/Http/Controllers/AkaunController.php b/app/Http/Controllers/AkaunController.php index 32e8b26..12c1345 100644 --- a/app/Http/Controllers/AkaunController.php +++ b/app/Http/Controllers/AkaunController.php @@ -1939,9 +1939,9 @@ public function cetakLaporanAnsuranRangeDate(Request $request){ $hingga_date = $request->datehingga; } - $barangkes = Http::get($request->hostname . '/api/barangkes/laporan/', ['kodcaw' => $request->kodcaw,'alasan' => $request->sltalasan,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date])->json(); - - $palsu = Http::get($request->hostname . '/api/palsu/laporan/', ['kodcaw' => $request->kodcaw,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date])->json(); + $status = $request->status ?? 'all'; + // $barangkes = Http::get($request->hostname . '/api/barangkes/laporan/', ['kodcaw' => $request->kodcaw,'alasan' => $request->sltalasan,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date, 'status' => $status,])->json(); + $palsu = Http::get($request->hostname . '/api/palsu/laporan/', ['kodcaw' => $request->kodcaw,'tarikh_mula' => $mula_date,'tarikh_akhir' => $hingga_date, 'status' => $status,])->json(); if (!is_array($palsu)) { $palsu = []; // utk nak tengok data tubik ke dok @@ -1957,14 +1957,14 @@ public function cetakLaporanAnsuranRangeDate(Request $request){ { if($request->jenis == 'pdf') { - $pdf = PDF::loadView('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'))->setPaper('a4', 'potrait'); + $pdf = PDF::loadView('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','status'))->setPaper('a4', 'potrait'); return $pdf->download('laporan_brgkes' . $request->kodcaw .'_'. $mula_date .'_'. $hingga_date . '.pdf'); }else{ - return view('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url')); + return view('akaun.laporan_brgkes', compact('hostname','palsu','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','status')); } } - return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu')); + return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu','palsu')); } diff --git a/resources/js/Akaun/Barangkes.vue b/resources/js/Akaun/Barangkes.vue index 00cb8c7..38e070d 100644 --- a/resources/js/Akaun/Barangkes.vue +++ b/resources/js/Akaun/Barangkes.vue @@ -1,120 +1,189 @@ - - \ No newline at end of file +
    +
    + +
    + + + + + Laporan Barang Kes + +
    + + +
    +
    + + +
    +
    + + + + + + Mula + + + Hingga + +
    +
    + + +
    + +
    + + + +
    +
    + + +
    + + +
    + +
    +
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/resources/views/akaun/laporan_brgkes.blade.php b/resources/views/akaun/laporan_brgkes.blade.php index bf5b4ce..b39a2ad 100644 --- a/resources/views/akaun/laporan_brgkes.blade.php +++ b/resources/views/akaun/laporan_brgkes.blade.php @@ -246,7 +246,7 @@ @endforeach --}} - +{{--
    @@ -274,6 +274,37 @@ @endforeach +
    Bil Tarikh{{ number_format($item['untungcajlain'], 2) }}
    --}} + + + + + + + + + + + + + +@php $bil = 1; @endphp + +@foreach($palsu as $item) + + + + + + + + + + + + +@endforeach +
    BilTarikhNo RujukanNotaPembiayaan (RM)Nilai Marhun (RM)JBGUntung (RM)1% (RM)Caj Lain (RM)
    {{ $bil++ }}{{ $item['tarikh'] }}{{ $item['norujukan'] }}{{ $item['nota'] }}{{ number_format($item['pembiayaan'], 2) }}{{ number_format($item['nilaimarhun'], 2) }}{{ number_format($item['jbg'], 2) }}{{ number_format($item['untung'], 2) }}{{ number_format($item['untungonepercent'], 2) }}{{ number_format($item['untungcajlain'], 2) }}


    From 33538445a92d3ea2982a87b74d843caec110ae91 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Tue, 14 Oct 2025 10:44:58 +0800 Subject: [PATCH 04/19] add searching di laporan --- app/Http/Controllers/AkaunController.php | 2 +- resources/js/Akaun/Home.vue | 313 ++++++++--------------- 2 files changed, 112 insertions(+), 203 deletions(-) diff --git a/app/Http/Controllers/AkaunController.php b/app/Http/Controllers/AkaunController.php index 12c1345..02fa01d 100644 --- a/app/Http/Controllers/AkaunController.php +++ b/app/Http/Controllers/AkaunController.php @@ -1964,7 +1964,7 @@ public function cetakLaporanAnsuranRangeDate(Request $request){ } } - return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu','palsu')); + return view('akaun.laporan_brgkes', compact('hostname','cawangan_detail','mula_date','hingga_date','tarikh_cetak','api_url','palsu','status')); } diff --git a/resources/js/Akaun/Home.vue b/resources/js/Akaun/Home.vue index 1d1514d..547b9eb 100644 --- a/resources/js/Akaun/Home.vue +++ b/resources/js/Akaun/Home.vue @@ -1,205 +1,114 @@ - - + + + + + + \ No newline at end of file From c7a8f8103973b97d644e86097c9cd8a81c7eda82 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Wed, 29 Oct 2025 10:29:14 +0800 Subject: [PATCH 05/19] adjust sikit --- resources/js/components/Searchbarangkes.vue | 330 ++++++++-------- resources/js/pages/Detailssag.vue | 401 ++++++++++++-------- 2 files changed, 398 insertions(+), 333 deletions(-) diff --git a/resources/js/components/Searchbarangkes.vue b/resources/js/components/Searchbarangkes.vue index acab1cb..f158631 100644 --- a/resources/js/components/Searchbarangkes.vue +++ b/resources/js/components/Searchbarangkes.vue @@ -1,197 +1,189 @@ diff --git a/resources/js/pages/Detailssag.vue b/resources/js/pages/Detailssag.vue index 6db243b..36d8f32 100644 --- a/resources/js/pages/Detailssag.vue +++ b/resources/js/pages/Detailssag.vue @@ -1,144 +1,223 @@ - - - \ No newline at end of file +} + From 72a08fa0222ec8b36a623ddde5b1dfb20076237d Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Sun, 2 Nov 2025 09:30:27 +0800 Subject: [PATCH 06/19] fix upcoming years for akru bulan --- resources/js/Akaun/AkruBulan.vue | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/resources/js/Akaun/AkruBulan.vue b/resources/js/Akaun/AkruBulan.vue index f3cc1eb..033f62d 100644 --- a/resources/js/Akaun/AkruBulan.vue +++ b/resources/js/Akaun/AkruBulan.vue @@ -20,8 +20,7 @@
    + +
    + @if (sizeof($wakil) != 0) + + + + + + + + + + + + + + +
    Maklumat Pelanggan
    Nama:{{ $customers_info['nama'] }}
    No K/P: + @php + if ($customers_info['kpbaru'] == '') { + echo $customers_info['kplama']; + } else { + echo $customers_info['kpbaru']; + } + @endphp +
    + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Baki Pembiayaan: RM {{ number_format($gadai['bakipjm'], 2) }}
    Keuntungan: RM {{ number_format($transaction_tebus['onepercent'], 2) }}
    (-) Rebat Untung: RM + {{ number_format(($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet']), 2) }} +
    Lain-Lain Caj: RM {{ number_format($transaction_tebus['ujrah'], 2) }}
    (-) Rebat Lain-Lain Caj: RM + {{ number_format(($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 2) }}
    Jumlah Bayaran: RM + {{ number_format($transaction_tebus['duit_masuk'], 2) }}
    +
    + + + + +
    Marhun: {{ $gadai['marhun'] }}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    .................................................... .................................................... ....................................................
    Teller{{ sizeof($wakil) != 0 ? 'Wakil' : 'Pelanggan' }}Khazanah
    {{ Auth::user()->name }}{{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }} {{ $khazanah_user->name }}
    +
    + + + +
    +
    + User Image + User Image +
    +
    + + {{ $cawangan_info["details_caw"] }} (arOS V2) + +
    +
    + UNTUK KEGUNAAN PEJABAT +
    +
    +
    +
    +
    T
    + + + @if (sizeof($wakil) != 0) + + + + + + + + + + + + + + + + + + + + + + + + + + + + @php + $masa_bayaran = strtotime($transaction_tebus['tarikh_bayaran']); + $masa = date('H:i:s', $masa_bayaran); + @endphp + + + + + + + + + + + + + + + + + + @else + + + + + + + + + + + + + + + + + + + + + + + + + @php + $masa_bayaran = strtotime($transaction_tebus['tarikh_bayaran']); + $masa = date('H:i:s', $masa_bayaran); + @endphp + + + + + + + + + + + @endif +
    Nama Wakil:{{ $wakil['nama'] }} No SAG: {{ $gadai['norujukan'] }}
    No K/P Wakil:{{ $wakil['nokp'] }} Tarikh Bayar: @php + $time = new DateTime($penebusan['t_tebus']); + $date = $time->format('d/m/Y'); + echo $date; + @endphp
    No Telefon:{{ $wakil['telefon'] }} Masa Bayaran : {{ $masa }}
    Alamat :{{ $wakil['alamat1'] }} Tempoh Simpan: {{ $gadai['tempoh'] }}
    No Wakil:{{ sizeof($surat_wakil) == 0 ? '-' : $surat_wakil['no_surat'] }}
    Nama: {{ $customers_info['nama'] }} No SAG: {{ $gadai['norujukan'] }}
    No K/P : @php + if ($customers_info['kpbaru'] == '') { + echo $customers_info['kplama']; + } else { + echo $customers_info['kpbaru']; + } + @endphp Tarikh Bayar: @php + $time = new DateTime($penebusan['t_tebus']); + $date = $time->format('d/m/Y'); + echo $date; + @endphp
    Masa Bayaran: {{ $masa }}
    Tempoh Simpan: {{ $gadai['tempoh'] }}
    +
    + + +
    + @if (sizeof($wakil) != 0) + + + + + + + + + + + + + + +
    Maklumat Pelanggan
    Nama:{{ $customers_info['nama'] }}
    No K/P: + @php + if ($customers_info['kpbaru'] == '') { + echo $customers_info['kplama']; + } else { + echo $customers_info['kpbaru']; + } + @endphp +
    + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Baki Pembiayaan: RM {{ number_format($gadai['bakipjm'], 2) }}
    Keuntungan: RM {{ number_format($transaction_tebus['onepercent'], 2) }}
    (-) Rebat Untung: RM + {{ number_format(($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet']), 2) }} +
    Lain-Lain Caj: RM {{ number_format($transaction_tebus['ujrah'], 2) }}
    (-) Rebat Lain-Lain Caj: RM + {{ number_format($($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 2) }}
    Jumlah Bayaran: RM + {{ number_format($transaction_tebus['duit_masuk'], 2) }}
    +
    + + + + + +
    Marhun: {{ $gadai['marhun'] }}
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    .................................................... .................................................... ....................................................
    Teller{{ sizeof($wakil) != 0 ? 'Wakil' : 'Pelanggan' }}Khazanah
    {{ $transaction_tebus['teller'] }}{{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }}{{ $khazanah_user->name }}
    + + + + + + + + + + + + + +
    Duit Pelanggan: RM {{ number_format($transaction_tebus['duitpelanggan'], 2) }}
    Jumlah Perlu Dibayar: RM {{ number_format($transaction_tebus['duit_masuk'], 2) }}
    Baki: RM {{ number_format($transaction_tebus['bakipelanggan'], 2) }}
    + + + + + + + + + + +
    .................................................... .................................................... .................................................... ....................................................
    + From bfe6a35abce27108d5588d6090ab9d5a2cf8a09e Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Mon, 24 Nov 2025 10:01:32 +0800 Subject: [PATCH 08/19] fix semula nama teller --- resources/views/resit/resittebus_ujrah.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/resit/resittebus_ujrah.blade.php b/resources/views/resit/resittebus_ujrah.blade.php index 31d2539..845c742 100644 --- a/resources/views/resit/resittebus_ujrah.blade.php +++ b/resources/views/resit/resittebus_ujrah.blade.php @@ -915,7 +915,7 @@ - {{ $transaction_tebus['teller'] }} + {{ Auth::user()->name }} {{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }} From a65055ca751cd2822d5b2dd1d015f6bc7ae9ae8e Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Tue, 25 Nov 2025 09:25:44 +0800 Subject: [PATCH 09/19] resit ansuran --- app/Http/Controllers/ResitController.php | 19 +- .../views/resit/resitansuran_ujrah.blade.php | 705 ++++++++++++++++++ 2 files changed, 720 insertions(+), 4 deletions(-) create mode 100644 resources/views/resit/resitansuran_ujrah.blade.php diff --git a/app/Http/Controllers/ResitController.php b/app/Http/Controllers/ResitController.php index 75cbe3a..00a22d1 100644 --- a/app/Http/Controllers/ResitController.php +++ b/app/Http/Controllers/ResitController.php @@ -18,11 +18,13 @@ class ResitController extends Controller public function resit($id) { - + $auth_user = Auth::user(); $totaltransaction = 0; $transaction = Http::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(); + if(sizeof($transaction) != 0) $transaction = $transaction[0]; @@ -33,7 +35,14 @@ class ResitController extends Controller $customers_info = Http::get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); - return view('resit.resitansuran',compact('transaction','gadai','customers_info')); + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); + + if($gadai['tagbaru'] == 1){ + return view('resit.resitansuran_ujrah',compact('transaction','gadai','customers_info')); + + }else{ + return view('resit.resitansuran',compact('transaction','gadai','customers_info')); + } } public function resittebusseparuh($id) @@ -151,10 +160,12 @@ class ResitController extends Controller $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); - $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); + // $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); + $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'] ?? 'dummy_cawangan')->select('name')->first() ?? (object) ['name' => 'Dummy User']; + if($gadai['tagbaru'] == 1){ - return view('print.resittebus_ujrah',compact('surat_wakil','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + return view('resit.resittebus_ujrah',compact('surat_wakil','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); }else{ return view('resit.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); diff --git a/resources/views/resit/resitansuran_ujrah.blade.php b/resources/views/resit/resitansuran_ujrah.blade.php new file mode 100644 index 0000000..1fbf275 --- /dev/null +++ b/resources/views/resit/resitansuran_ujrah.blade.php @@ -0,0 +1,705 @@ + + + + + + + + + + + + + + +
    + +
    + KOPKB Logo + ARRAHN Logo +
    + + +
    + + {{ $cawangan_info["details_caw"] }} + +
    + + +
    + UNTUK KEGUNAAN PELANGGAN +
    +
    +
    +
    +
    A
    + + + + + + + + + + + + + + + + + + + + + + + + + + @php + $masa_bayaran = strtotime($transaction['tarikh_bayaran']); + $masa = date('H:i:s', $masa_bayaran); + @endphp + + +
    Nama: {{ $customers_info['nama'] }} No SAG: {{ $transaction['norujukan'] }}
    No K/P : @php + if ($customers_info['kpbaru'] == '') { + echo $customers_info['kplama']; + } else { + echo $customers_info['kpbaru']; + } + @endphp Tarikh Bayar: @php + $time = new DateTime($transaction['created_at']); + $date = $time->format('d/m/Y'); + echo $date; + @endphp
    Masa Bayaran: {{ $masa }}
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + @php + $jumlah_perlu_dibayar = $transaction['bayaran_pembiayaan'] + $transaction['bayaran_keuntungan'] + $transaction['ujrah']; + @endphp + + +
    Ansuran Pembiayaan: RM {{ number_format($transaction['bayaran_pembiayaan'], 2) }}
    Keuntungan: RM {{ number_format($transaction['onepercent'], 2) }}
    Lain-Lain Caj: RM {{ number_format($transaction['ujrah'], 2) }}
    Jumlah Bayaran: RM {{ number_format($transaction['duit_masuk'], 2) }}
    + {{-- + + + +
    Marhun: {{ $gadai['marhun'] }}
    --}} +
    + + + + + + + + + + + + + + + + + + +
    .................................................... ....................................................
    PelangganTeller
    {{ $customers_info['nama'] }}{{ Auth::user()->name }}
    +
    + + +
    +
    + User Image + User Image +
    +
    + + {{ $cawangan_info["details_caw"] }} (arOS V2) + +
    +
    + UNTUK KEGUNAAN PEJABAT +
    +
    +
    +
    +
    A
    + + + + + + + + + + + + + + + + + + + + + + + + + + + @php + $masa_bayaran = strtotime($transaction['tarikh_bayaran']); + $masa = date('H:i:s', $masa_bayaran); + @endphp + + +
    Nama: {{ $customers_info['nama'] }} No SAG: {{ $transaction['norujukan'] }}
    No K/P : @php + if ($customers_info['kpbaru'] == '') { + echo $customers_info['kplama']; + } else { + echo $customers_info['kpbaru']; + } + @endphp Tarikh Bayar: @php + $time = new DateTime($transaction['created_at']); + $date = $time->format('d/m/Y'); + echo $date; + @endphp
    Masa Bayaran: {{ $masa }}
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + @php + $jumlah_perlu_dibayar = $transaction['bayaran_pembiayaan'] + $transaction['bayaran_keuntungan'] + $transaction['ujrah']; + @endphp + + +
    Ansuran Pembiayaan: RM {{ number_format($transaction['bayaran_pembiayaan'], 2) }}
    Keuntungan: RM {{ number_format($transaction['onepercent'], 2) }}
    Lain-Lain Caj: RM {{ number_format($transaction['ujrah'], 2) }}
    Jumlah Bayaran: RM {{ number_format($transaction['duit_masuk'], 2) }}
    + {{-- + + + +
    Marhun: {{ $gadai['marhun'] }}
    --}} +
    + + + + + + + + + + + + + + + + + + +
    .................................................... ....................................................
    PelangganTeller
    {{ $customers_info['nama'] }}{{ Auth::user()->name }}
    + + + + + + + + + + + + + +
    Duit Pelanggan: RM {{ number_format($transaction['duitpelanggan'], 2) }}
    Jumlah Perlu Dibayar: RM {{ number_format($transaction['duit_masuk'], 2) }}
    Baki: RM {{ number_format($transaction['bakipelanggan'], 2) }}
    + + + + + + + + + + +
    .................................................... .................................................... .................................................... ....................................................
    + From e65650b7255e22d43e8f9e879e2be49795c2e309 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Tue, 25 Nov 2025 09:29:37 +0800 Subject: [PATCH 10/19] remove api khazanah --- app/Http/Controllers/ResitController.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/Http/Controllers/ResitController.php b/app/Http/Controllers/ResitController.php index 00a22d1..0472600 100644 --- a/app/Http/Controllers/ResitController.php +++ b/app/Http/Controllers/ResitController.php @@ -160,9 +160,7 @@ class ResitController extends Controller $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); - // $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'] ?? 'dummy_cawangan')->select('name')->first() ?? (object) ['name' => 'Dummy User']; - + $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); if($gadai['tagbaru'] == 1){ return view('resit.resittebus_ujrah',compact('surat_wakil','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); From 3f60ac89d90428839074640899e7e64449cedf28 Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Wed, 26 Nov 2025 15:54:26 +0800 Subject: [PATCH 11/19] Bug fixes were applied to receipt A and T for both non-ujrah and ujrah --- app/Http/Controllers/ResitController.php | 15 ++++--- resources/views/resit/resitansuran.blade.php | 17 ++++--- .../views/resit/resitansuran_ujrah.blade.php | 10 ++--- resources/views/resit/resittebus.blade.php | 4 +- .../views/resit/resittebus_ujrah.blade.php | 45 +++++++++---------- 5 files changed, 43 insertions(+), 48 deletions(-) diff --git a/app/Http/Controllers/ResitController.php b/app/Http/Controllers/ResitController.php index 0472600..de1a507 100644 --- a/app/Http/Controllers/ResitController.php +++ b/app/Http/Controllers/ResitController.php @@ -23,8 +23,6 @@ class ResitController extends Controller $transaction = Http::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(); - if(sizeof($transaction) != 0) $transaction = $transaction[0]; @@ -35,13 +33,15 @@ class ResitController extends Controller $customers_info = Http::get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $gadai['kodcaw'])->json(); + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); if($gadai['tagbaru'] == 1){ - return view('resit.resitansuran_ujrah',compact('transaction','gadai','customers_info')); + return view('resit.resitansuran_ujrah',compact('transaction','gadai','customers_info','cawangan_info','wakil')); }else{ - return view('resit.resitansuran',compact('transaction','gadai','customers_info')); + return view('resit.resitansuran',compact('transaction','gadai','customers_info','cawangan_info','wakil')); } } @@ -136,6 +136,8 @@ class ResitController extends Controller $transaction = Http::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(); + foreach($transaction as $trans) { $totaltransaction += $trans['duit_masuk']; @@ -152,6 +154,7 @@ class ResitController extends Controller $totalBayaranAnsuran = Http::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(); $surat_wakil = []; if(sizeof($wakil) != 0) { $wakil = $wakil[0]; @@ -163,10 +166,10 @@ class ResitController extends Controller $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); if($gadai['tagbaru'] == 1){ - return view('resit.resittebus_ujrah',compact('surat_wakil','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + return view('resit.resittebus_ujrah',compact('transaction','transaction_tebus','totalrebate','khazanah_user','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); }else{ - return view('resit.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); + return view('resit.resittebus',compact('transaction','transaction_tebus','totalrebate','khazanah_user','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); } } diff --git a/resources/views/resit/resitansuran.blade.php b/resources/views/resit/resitansuran.blade.php index cea6591..05b7010 100644 --- a/resources/views/resit/resitansuran.blade.php +++ b/resources/views/resit/resitansuran.blade.php @@ -440,14 +440,13 @@ hr.new5 { -DiSemak - - Cagaran Di Keluarkan - - Cagaran Diterima - - Ar-Rahn
    {{ Auth::user()->name }} - + DiSemak + + Cagaran Di Keluarkan + + Cagaran Diterima + + Ar-Rahn
    {{ optional(Auth::user())->name ?? '' }} @@ -549,7 +548,7 @@ hr.new5 { Cagaran Diterima - Ar-Rahn
    {{ Auth::user()->name }} + Ar-Rahn
    {{ optional(Auth::user())->name ?? '' }} diff --git a/resources/views/resit/resitansuran_ujrah.blade.php b/resources/views/resit/resitansuran_ujrah.blade.php index 1fbf275..6994440 100644 --- a/resources/views/resit/resitansuran_ujrah.blade.php +++ b/resources/views/resit/resitansuran_ujrah.blade.php @@ -546,12 +546,11 @@ Teller - - + {{-- {{ $customers_info['nama'] }} {{ Auth::user()->name }} - + --}}
    @@ -670,12 +669,11 @@ Teller - - + {{-- {{ $customers_info['nama'] }} {{ Auth::user()->name }} - + --}} diff --git a/resources/views/resit/resittebus.blade.php b/resources/views/resit/resittebus.blade.php index 9030924..aa53475 100644 --- a/resources/views/resit/resittebus.blade.php +++ b/resources/views/resit/resittebus.blade.php @@ -473,7 +473,7 @@ hr.new5 { - + @@ -575,7 +575,7 @@ hr.new5 { - + diff --git a/resources/views/resit/resittebus_ujrah.blade.php b/resources/views/resit/resittebus_ujrah.blade.php index 845c742..9b2a1bc 100644 --- a/resources/views/resit/resittebus_ujrah.blade.php +++ b/resources/views/resit/resittebus_ujrah.blade.php @@ -629,22 +629,22 @@ - + - + + {{ number_format($totalrebate['ujrah'], 2) }} @@ -683,17 +683,14 @@ - - + {{-- --}} + {{-- --}} - - - - - - - - + {{-- --}} + {{-- --}} + {{-- --}} + {{-- --}} {{-- --}} + {{-- --}}
    Cagaran Diterima Ar-Rahn
    {{ Auth::user()->name }}
    Ar-Rahn
    {{ optional(Auth::user())->name ?? '' }}
    Cagaran Diterima Ar-Rahn
    {{ Auth::user()->name }}
    Ar-Rahn
    {{ optional(Auth::user())->name ?? '' }}
    Keuntungan: RM {{ number_format($transaction_tebus['onepercent'], 2) }}: RM {{ number_format($penebusan['onepercent'], 2) }}
    (-) Rebat Untung : RM - {{ number_format(($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet']), 2) }} + {{ number_format($totalrebate['onepercent'], 2) }}
    Lain-Lain Caj: RM {{ number_format($transaction_tebus['ujrah'], 2) }} : RM {{ number_format($penebusan['ujrah'], 2) }}
    (-) Rebat Lain-Lain Caj : RM - {{ number_format(($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 2) }}
    Khazanah
    {{ Auth::user()->name }}
    {{ Auth::user()->name }}{{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }} {{ $khazanah_user->name }}
    {{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }} {{ $khazanah_user->name }}{{ $khazanah_user->name ?? '' }}

    @@ -859,22 +856,22 @@ Keuntungan - : RM {{ number_format($transaction_tebus['onepercent'], 2) }} + : RM {{ number_format($penebusan['onepercent'], 2) }} (-) Rebat Untung : RM - {{ number_format(($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet']), 2) }} + {{ number_format($totalrebate['onepercent'], 2) }} Lain-Lain Caj - : RM {{ number_format($transaction_tebus['ujrah'], 2) }} + : RM {{ number_format($penebusan['ujrah'], 2) }} (-) Rebat Lain-Lain Caj : RM - {{ number_format($($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 2) }} + {{ number_format($totalrebate['ujrah'], 2) }} @@ -914,16 +911,14 @@ Khazanah - + {{-- {{ Auth::user()->name }} {{ sizeof($wakil) != 0 ? $wakil['nama'] : $customers_info['nama'] }} - - {{ $khazanah_user->name }} - - - - + --}} + {{-- {{ $khazanah_user->name }} --}} + {{-- {{ $khazanah_user->name ?? '-' }} + --}} From 105bd7bcda04ac1928e46e011798bc0484a1778d Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Wed, 26 Nov 2025 16:30:39 +0800 Subject: [PATCH 12/19] changes images --- resources/views/resit/resitansuran_ujrah.blade.php | 5 ++--- resources/views/resit/resittebus_ujrah.blade.php | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/resources/views/resit/resitansuran_ujrah.blade.php b/resources/views/resit/resitansuran_ujrah.blade.php index 6994440..d8de948 100644 --- a/resources/views/resit/resitansuran_ujrah.blade.php +++ b/resources/views/resit/resitansuran_ujrah.blade.php @@ -432,7 +432,7 @@
    - KOPKB Logo + KOPKB Logo ARRAHN Logo
    @@ -557,8 +557,7 @@
    - User Image + User Image User Image
    diff --git a/resources/views/resit/resittebus_ujrah.blade.php b/resources/views/resit/resittebus_ujrah.blade.php index 9b2a1bc..17dbd6d 100644 --- a/resources/views/resit/resittebus_ujrah.blade.php +++ b/resources/views/resit/resittebus_ujrah.blade.php @@ -466,7 +466,7 @@
    - KOPKB Logo + KOPKB Logo ARRAHN Logo
    @@ -698,8 +698,7 @@
    - User Image + User Image User Image
    From 58b5bc015f6272f8aab395e690ae94e71aa9453d Mon Sep 17 00:00:00 2001 From: Cyclone Date: Sat, 29 Nov 2025 22:12:39 +0800 Subject: [PATCH 13/19] added account-statements for specific norujukan --- .../AccountStatementController.php | 66 ++++ resources/views/accounts-statements.blade.php | 373 ++++++++++++++++++ routes/web.php | 55 +++ 3 files changed, 494 insertions(+) create mode 100644 app/Http/Controllers/AccountStatementController.php create mode 100644 resources/views/accounts-statements.blade.php diff --git a/app/Http/Controllers/AccountStatementController.php b/app/Http/Controllers/AccountStatementController.php new file mode 100644 index 0000000..a8a1685 --- /dev/null +++ b/app/Http/Controllers/AccountStatementController.php @@ -0,0 +1,66 @@ +json()[0][0]; + $transaction = Http::get(config('api.url').'/portal/transaksipelanggan',['norujukan' => 'KB2240919-0004'])->json(); + $cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $gadaian['kodcaw'])->json()[0]; + $customer = Http::get(config('api.url') . '/api/customers/' . $gadaian['nokp'])->json(); + $poskod = Http::get(config('api.url') . '/api/poskod/' . $customer['poskod'])->json(); + + $accountHolder = [ + 'name' => $customer['nama'], + 'address' => $customer['alamat1'] . '
    ' . $customer['alamat2'], + 'city_state_zip' => $customer['poskod'] . ', ' . $poskod['daerah']['namadaerah'] . ', ' . $poskod['negeri']['negeri'], + ]; + + + $bankDetails = [ + 'name' => 'PERMODALAN KELANTAN BERHAD', + 'address' => $cawangan['alamat1'] . '
    ' . $cawangan['alamat2'], + 'email' => 'firstcitizensbank@domain.com', + 'branch' => $cawangan['namacaw'], + ]; + + + // Calculate total pages (e.g., 10 transactions per page + one row for header/footer on page 1) + // This is a rough estimate; the Blade file will handle the actual print pagination using CSS. + + $transaction_count = count(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'A')); + $totalPages = ceil($transaction_count / 10); + + $ansuranTransaction = array_values(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'A')); + $originLoan = $gadaian['pinjaman']; + $bakipinjaman = $originLoan; + $ansuranTransaction = array_map(function($trans) use(&$bakipinjaman) { + $bakipinjaman -= $trans['bayaran_pembiayaan']; + return array_merge($trans, ['bakipinjaman' => $bakipinjaman]); + }, $ansuranTransaction); + + $tebusTransaction = array_values(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'T'))[0]; + + + + return view('accounts-statements', compact('tebusTransaction','ansuranTransaction','transaction_count','gadaian','transaction','accountHolder', 'bankDetails')); + } + + /** + * Helper function to format currency. + * In a real app, this would be a Blade helper or filter. + * We'll format it directly in the view for simplicity in this example. + */ +} \ No newline at end of file diff --git a/resources/views/accounts-statements.blade.php b/resources/views/accounts-statements.blade.php new file mode 100644 index 0000000..8c4907d --- /dev/null +++ b/resources/views/accounts-statements.blade.php @@ -0,0 +1,373 @@ + + + + + + + Bank Statement - {{ $bankDetails['name'] }} + + + + + + + + @php + // Helper function to format currency for the template + function formatCurrency($amount) + { + return is_numeric($amount) ? 'RM ' . number_format($amount, 2) : '-'; + } + @endphp + +
    + + +
    +
    +

    {{ $bankDetails['name'] }} +

    +

    {!! $bankDetails['address'] !!}

    +
    +
    +
    {{ $gadaian['norujukan'] }}
    +
    + IC: + {{ $gadaian['nokp'] }} + + Tarikh Pembiayaan: + {{ $gadaian['t_gadai'] }} + + Tempoh Pembiayaan: + {{ $gadaian['tempoh'] }} +
    +
    +
    + + +
    + +
    +

    {{ $accountHolder['name'] }}

    +

    {!! $accountHolder['address'] !!}

    +

    {{ $accountHolder['city_state_zip'] }}

    +
    + +
    +

    {{ $bankDetails['branch'] }}

    +

    Page 1 of 1

    +
    +
    + + +
    +

    Ringkasan Pembiayaan

    +
    + +
    +
    Pembiayaan:
    +
    {{ formatCurrency($gadaian['pinjaman']) }} +
    +
    +
    +
    Nilai Marhun:
    +
    {{ formatCurrency($gadaian['nilaimarhun']) }}
    +
    +
    +
    +
    1 Percent:
    +
    {{ formatCurrency($gadaian['ujrah']) }}
    +
    Ujrah:
    +
    {{ formatCurrency($gadaian['onepercent']) }}
    +
    +
    +
    Keuntungan:
    +
    {{ formatCurrency($gadaian['ujrah'] + $gadaian['onepercent']) }}
    +
    + +
    + + +
    +
    Harga Jualan:
    +
    {{ formatCurrency($gadaian['hargajualan']) }}
    +
    +
    +
    Jumlah Transaksi:
    +
    {{ $transaction_count }}
    +
    +
    +
    Harga Tebus:
    +
    {{ formatCurrency($tebusTransaction['duit_masuk']) }} +
    +
    +
    +
    + + +
    +

    Transaksi

    + + + + + + + + + + + + + + + + @php $totalUpah = 0; $totalBayaran = 0; $totalPembiayaan = 0; $totalRebet = 0; @endphp + @foreach ($ansuranTransaction as $transaction) + + + + + + + + + + + @php $totalUpah += $transaction['bayaran_keuntungan']; $totalBayaran += $transaction['duit_masuk']; $totalPembiayaan += $transaction['bayaran_pembiayaan']; $totalRebet += ($transaction['bayaran_keuntungan'] - $transaction['keuntungan_rebet']);@endphp + @endforeach + + + + + + + + + + +
    TarikhDeskripsiTempohBayaranUpahPembiayaanRebetBaki
    {{ date('d/m/Y', strtotime($transaction['created_at'])) }}{{ ($transaction['teller'] == 'Online') ? 'Bayaran Online' : 'Bayaran Kaunter' }} + {{ $transaction['beza_tempoh'] }} + + @if ($transaction['duit_masuk']) + {{ formatCurrency($transaction['duit_masuk']) }} + @else + - + @endif + + @if ($transaction['bayaran_keuntungan']) + {{ formatCurrency($transaction['bayaran_keuntungan']) }} + @else + - + @endif + + @if ($transaction['bayaran_pembiayaan']) + {{ formatCurrency($transaction['bayaran_pembiayaan']) }} + @else + - + @endif + + {{ formatCurrency($transaction['bayaran_keuntungan'] - $transaction['keuntungan_rebet']) }} + + {{ formatCurrency($transaction['bakipinjaman']) }} +
    Jumlah: + {{ formatCurrency($totalBayaran) }} + {{ formatCurrency($totalUpah) }} + {{ formatCurrency($totalPembiayaan) }} + {{ formatCurrency($totalRebet) }} +
    +
    + +
    +
    +

    + SEMAKAN TERAKHIR

    +
    + +
    +
    +
    JUMLAH
    + + {{-- Beginning Balance --}} +
    Baki Pembiayaan
    +
    + {{ formatCurrency($tebusTransaction['bayaran_pembiayaan']) }} +
    + + {{-- Deposits and Additions --}} +
    Keuntungan 1%
    +
    + {{ formatCurrency($tebusTransaction['onepercent']) }} +
    + + {{-- ATM & Debit Card Withdrawals --}} +
    Rebet Keuntungan 1%
    +
    + {{ formatCurrency($tebusTransaction['onepercent'] - $tebusTransaction['onepercent_rebet']) }} +
    + + {{-- Deposits and Additions --}} +
    Ujrah
    +
    + {{ formatCurrency($tebusTransaction['ujrah']) }} +
    + + {{-- ATM & Debit Card Withdrawals --}} +
    Rebet Ujrah
    +
    + {{ formatCurrency($tebusTransaction['ujrah'] - $tebusTransaction['ujrah_rebet']) }} +
    + + {{-- +
    Ujrah
    +
    + + -122.50 +
    --}} + + {{-- Separator Line (Visual emphasis for Ending Balance calculation) --}} +
    + + {{-- Ending Balance --}} +
    Jumlah Bayaran
    +
    + {{ formatCurrency($tebusTransaction['duit_masuk']) }} +
    +
    +
    + + +
    +

    Ini ialah penyata akaun yang dijana secara automatik. Sila hubungi kami untuk sebarang percanggahan

    +
    +
    + + +
    + +
    + + + + diff --git a/routes/web.php b/routes/web.php index c815605..e201a0e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,6 +6,7 @@ use App\Http\Controllers\OnlineTransactionController; use App\Http\Controllers\OnlineTransactionGadaianController; use App\Http\Controllers\OnlineTransactionLogController; use App\Http\Controllers\OnlineTransactionTrailController; +use App\Http\Controllers\AccountStatementController; use App\Http\Controllers\AutoSerahanController; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Http; @@ -200,6 +201,60 @@ Route::get('/autoserahan/reject', [AutoSerahanController::class,'reject'])->nam Route::get('/autoserahan/list', [AutoSerahanController::class,'getList'])->name('autoserahan.get'); Route::get('/autoserahan/rekod', [AutoSerahanController::class,'record'])->name('autoserahan.rekod'); +//Account Statements + +Route::get('/autoserahan/rekod', [AutoSerahanController::class,'record'])->name('autoserahan.rekod'); + +Route::get('/accounts/statements', [AccountStatementController::class,'showStatement'])->name('accountstatement.rekod'); +// Route::get('/accounts', function () { + + + +// $accountHolder = [ +// 'name' => 'John Smith', +// 'address' => '2450 Courage St, STE 108', +// 'city_state_zip' => 'Brownsville, TX 78521', +// ]; + +// $bankDetails = [ +// 'name' => 'PERMODALAN KELANTAN BERHAD', +// 'address' => '231 Valley Farms Street Santa Monica, CA 90403', +// 'email' => 'firstcitizensbank@domain.com', +// 'branch' => 'Main Branch - Santa Monica', +// 'account_number' => '111-234-567-890', +// 'statement_date' => '10/31/2025', +// 'period_covered' => '10/01/2025 to 10/31/2025', +// ]; + +// $summary = [ +// 'opening_balance' => 175800.00, +// 'total_credit' => 510000.00, +// 'total_debit' => 94000.00, +// 'closing_balance' => 591800.00, +// 'account_type' => 'Current Account', +// 'transaction_count' => 8, +// ]; + +// $transactions = [ +// // Note: The PDF format has Debit/Credit columns reversed in some tools, +// // but standard accounting puts Credits first. We'll follow the PDF logic +// // where amounts are placed under the correct column (Credit or Debit). +// ['date' => '10/02/2025', 'description' => 'Payment - Credit Card', 'credit' => null, 'debit' => 5400.00, 'balance' => 170400.00], +// ['date' => '10/03/2025', 'description' => 'Payment - Insurance', 'credit' => null, 'debit' => 3000.00, 'balance' => 167400.00], +// ['date' => '10/05/2025', 'description' => 'Account Transfer In', 'credit' => 500000.00, 'debit' => null, 'balance' => 667400.00], +// ['date' => '10/10/2025', 'description' => 'Cheque Deposit', 'credit' => 10000.00, 'debit' => null, 'balance' => 677400.00], +// ['date' => '10/15/2025', 'description' => 'Payment - Electricity', 'credit' => null, 'debit' => 1500.00, 'balance' => 675900.00], +// ['date' => '10/20/2025', 'description' => 'Payment - Water Utility', 'credit' => null, 'debit' => 600.00, 'balance' => 675300.00], +// ['date' => '10/25/2025', 'description' => 'Payment - Car Loan', 'credit' => null, 'debit' => 3500.00, 'balance' => 671800.00], +// ['date' => '10/30/2025', 'description' => 'Account Transfer Out', 'credit' => null, 'debit' => 80000.00, 'balance' => 591800.00], +// ]; + + + +// return view('accounts-statements', compact('accountHolder', 'bankDetails', 'summary', 'transactions')); +// }); + + Route::get('{any}', function () { return view('home'); })->where('any','.*'); From 18c7c2ddc8a8ae629d01fd6df098a4169bfa8a7a Mon Sep 17 00:00:00 2001 From: Ain Izazi Date: Sun, 30 Nov 2025 11:02:54 +0800 Subject: [PATCH 14/19] fix utk kiraan resit --- app/Http/Controllers/ResitController.php | 4 +++- resources/views/resit/resittebus_ujrah.blade.php | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/ResitController.php b/app/Http/Controllers/ResitController.php index de1a507..9482f08 100644 --- a/app/Http/Controllers/ResitController.php +++ b/app/Http/Controllers/ResitController.php @@ -154,7 +154,8 @@ class ResitController extends Controller $totalBayaranAnsuran = Http::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(); + $surat_wakil = []; if(sizeof($wakil) != 0) { $wakil = $wakil[0]; @@ -162,6 +163,7 @@ class ResitController extends Controller } $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $totalrebate = ['ujrah' => ($transaction_tebus['ujrah'] - $transaction_tebus['ujrah_rebet']), 'onepercent' => ($transaction_tebus['onepercent'] - $transaction_tebus['onepercent_rebet'])]; $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); diff --git a/resources/views/resit/resittebus_ujrah.blade.php b/resources/views/resit/resittebus_ujrah.blade.php index 17dbd6d..0df9d07 100644 --- a/resources/views/resit/resittebus_ujrah.blade.php +++ b/resources/views/resit/resittebus_ujrah.blade.php @@ -629,7 +629,7 @@ Keuntungan - : RM {{ number_format($penebusan['onepercent'], 2) }} + : RM {{ number_format($transaction_tebus['onepercent'], 2) }} (-) Rebat Untung @@ -639,7 +639,7 @@ Lain-Lain Caj - : RM {{ number_format($penebusan['ujrah'], 2) }} + : RM {{ number_format($transaction_tebus['ujrah'], 2) }} (-) Rebat Lain-Lain Caj @@ -855,7 +855,7 @@ Keuntungan - : RM {{ number_format($penebusan['onepercent'], 2) }} + : RM {{ number_format($transaction_tebus['onepercent'], 2) }} (-) Rebat Untung @@ -865,7 +865,7 @@ Lain-Lain Caj - : RM {{ number_format($penebusan['ujrah'], 2) }} + : RM {{ number_format($transaction_tebus['ujrah'], 2) }} (-) Rebat Lain-Lain Caj From 22205c4f4c7b0c92518d5452915e121425b67504 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 1 Dec 2025 19:49:00 +0800 Subject: [PATCH 15/19] fix A4 printed cut out and added gadaian --- .../AccountStatementController.php | 15 +- resources/views/accounts-statements.blade.php | 266 +++++++++++++----- 2 files changed, 200 insertions(+), 81 deletions(-) diff --git a/app/Http/Controllers/AccountStatementController.php b/app/Http/Controllers/AccountStatementController.php index a8a1685..f081da1 100644 --- a/app/Http/Controllers/AccountStatementController.php +++ b/app/Http/Controllers/AccountStatementController.php @@ -14,10 +14,8 @@ class AccountStatementController extends Controller */ public function showStatement(Request $request) { - - - $gadaian = Http::get(config('api.url').'/api/gadai/norujukan/'.'KB2240919-0004')->json()[0][0]; - $transaction = Http::get(config('api.url').'/portal/transaksipelanggan',['norujukan' => 'KB2240919-0004'])->json(); + $gadaian = Http::get(config('api.url').'/api/gadai/norujukan/'.$request->norujukan)->json()[0][0]; + $transaction = Http::get(config('api.url').'/portal/transaksipelanggan',['norujukan' => $request->norujukan])->json(); $cawangan=Http::get(config('api.url').'/api/cawangan/detail/'. $gadaian['kodcaw'])->json()[0]; $customer = Http::get(config('api.url') . '/api/customers/' . $gadaian['nokp'])->json(); $poskod = Http::get(config('api.url') . '/api/poskod/' . $customer['poskod'])->json(); @@ -28,17 +26,12 @@ class AccountStatementController extends Controller 'city_state_zip' => $customer['poskod'] . ', ' . $poskod['daerah']['namadaerah'] . ', ' . $poskod['negeri']['negeri'], ]; - $bankDetails = [ - 'name' => 'PERMODALAN KELANTAN BERHAD', + 'name' => $cawangan['cawangan'], 'address' => $cawangan['alamat1'] . '
    ' . $cawangan['alamat2'], - 'email' => 'firstcitizensbank@domain.com', 'branch' => $cawangan['namacaw'], ]; - - // Calculate total pages (e.g., 10 transactions per page + one row for header/footer on page 1) - // This is a rough estimate; the Blade file will handle the actual print pagination using CSS. $transaction_count = count(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'A')); $totalPages = ceil($transaction_count / 10); @@ -53,8 +46,6 @@ class AccountStatementController extends Controller $tebusTransaction = array_values(array_filter($transaction, fn($trans) => $trans['trans_type'] == 'T'))[0]; - - return view('accounts-statements', compact('tebusTransaction','ansuranTransaction','transaction_count','gadaian','transaction','accountHolder', 'bankDetails')); } diff --git a/resources/views/accounts-statements.blade.php b/resources/views/accounts-statements.blade.php index 8c4907d..9a71036 100644 --- a/resources/views/accounts-statements.blade.php +++ b/resources/views/accounts-statements.blade.php @@ -4,7 +4,7 @@ - Bank Statement - {{ $bankDetails['name'] }} + Account Statements - {{ $bankDetails['name'] }}