diff --git a/app/Helper.php b/app/Helper.php
index a43ca4f..386b6b5 100644
--- a/app/Helper.php
+++ b/app/Helper.php
@@ -1,20 +1,83 @@
format("d-m-Y");
}
+
+ public static function terbilangBm(int $number): string
+ {
+ $units = [
+ 0 => 'kosong',
+ 1 => 'satu',
+ 2 => 'dua',
+ 3 => 'tiga',
+ 4 => 'empat',
+ 5 => 'lima',
+ 6 => 'enam',
+ 7 => 'tujuh',
+ 8 => 'lapan',
+ 9 => 'sembilan',
+ 10 => 'sepuluh',
+ 11 => 'sebelas'
+ ];
+
+ if ($number < 0) return 'negatif ' . self::terbilangBm(abs($number));
+ if ($number < 12) return $units[$number];
+ if ($number < 20) return self::terbilangBm($number - 10) . ' belas';
+ if ($number < 100) {
+ $tens = intdiv($number, 10);
+ $rest = $number % 10;
+ return self::terbilangBm($tens) . ' puluh' . ($rest ? ' ' . self::terbilangBm($rest) : '');
+ }
+ if ($number < 200) return 'seratus' . ($number > 100 ? ' ' . self::terbilangBm($number - 100) : '');
+ if ($number < 1000) {
+ $hundreds = intdiv($number, 100);
+ $rest = $number % 100;
+ return self::terbilangBm($hundreds) . ' ratus' . ($rest ? ' ' . self::terbilangBm($rest) : '');
+ }
+ if ($number < 2000) return 'seribu' . ($number > 1000 ? ' ' . self::terbilangBm($number - 1000) : '');
+ if ($number < 1000000) {
+ $thousands = intdiv($number, 1000);
+ $rest = $number % 1000;
+ return self::terbilangBm($thousands) . ' ribu' . ($rest ? ' ' . self::terbilangBm($rest) : '');
+ }
+ if ($number < 1000000000) {
+ $millions = intdiv($number, 1000000);
+ $rest = $number % 1000000;
+ return self::terbilangBm($millions) . ' juta' . ($rest ? ' ' . self::terbilangBm($rest) : '');
+ }
+ return 'terlalu besar';
+ }
+
+ public static function ringgitTerbilang($amount, bool $tambahSahaja = true): string
+ {
+ $formatted = number_format((float)$amount, 2, '.', '');
+ [$ringgitStr, $senStr] = explode('.', $formatted);
+
+ $ringgit = (int)$ringgitStr;
+ $sen = (int)$senStr;
+
+ $parts = [];
+ $parts[] = self::terbilangBm($ringgit) . ' ringgit';
+
+ if ($sen > 0) {
+ $parts[] = 'dan ' . self::terbilangBm($sen) . ' sen';
+ } elseif ($tambahSahaja) {
+ $parts[] = 'sahaja';
+ }
+
+ return trim(preg_replace('/\s+/', ' ', implode(' ', $parts)));
+ }
}
diff --git a/app/Http/Controllers/AliranTunaiController.php b/app/Http/Controllers/AliranTunaiController.php
index 32acd64..06b0820 100644
--- a/app/Http/Controllers/AliranTunaiController.php
+++ b/app/Http/Controllers/AliranTunaiController.php
@@ -2,12 +2,14 @@
namespace App\Http\Controllers;
+use App\User;
+use App\Cawangan;
+use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Services\CustomerService;
-use Illuminate\Support\Facades\Session;
-use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Auth;
-use Carbon\Carbon;
+use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Facades\Session;
class AliranTunaiController extends Controller
@@ -599,7 +601,7 @@ class AliranTunaiController extends Controller
return response($updateTunai);
}
- public function LaporanAliranTunai($teller)
+ public function LaporanAliranTunai($teller, Request $request)
{
$auth_user = Auth::user();
$api_url = config('api.url');
@@ -611,8 +613,6 @@ class AliranTunaiController 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];
- $tarikh_cetak = $current->toDateString();
-
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$alirantunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetCurrentTunai/' . $auth_user['cawangan'],['kodlaluan' => $auth_user['name']])->json();
@@ -621,7 +621,67 @@ class AliranTunaiController extends Controller
$teller = $auth_user['name'];
- return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','alirantunai','teller'));
+ $bakiLelong = Http::withOptions(['verify' =>config('app.api_verify')])->get(config('api.url') . '/api/lelong/bakilelongbyteller/'.$auth_user['cawangan'],[
+ 'tarikh' => $request->datetimepicker1
+ ])->json();
+
+ return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','alirantunai','teller', 'bakiLelong'));
+ }
+
+ public function laporanAliranTunaiTeller()
+ {
+ $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();
+
+ return view('khazanah.laporan.alirantunai', compact('api_url', 'cawangan_info'));
+ }
+
+ public function cetakLaporanAliranTunaiTeller(Request $request)
+ {
+ $api_url = config('api_url');
+ $auth_user = Auth::user();
+
+ $current = Carbon::now();
+ $current = new Carbon();
+
+ $tarikh_cetak = $current->toDateString();
+ if($request->datetimepicker1 == null){
+ $tarikh = $current->toDateString();
+ }else{
+ $split_date = explode('-',$request->datetimepicker1);
+ $tarikh = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0];
+ }
+
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $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];
+
+ $addtunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getAddTunai/' . $auth_user['cawangan'] . '/kodlaluan/',['kodlaluan' => $auth_user['name']])->json();
+
+ $teller = $auth_user['name'];
+
+ $bakiLelong = Http::withOptions(['verify' =>config('app.api_verify')])->get(config('api.url') . '/api/lelong/bakilelongbyteller/'.$auth_user['cawangan'],[
+ 'tarikh' => $tarikh,
+ 'kodlaluan' => $auth_user['name']
+ ])->json();
+
+ $tunai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getTunaiByTarikh/',[
+ 'kodlaluan' => $auth_user['name'],
+ 'kodcaw' => $auth_user['cawangan'],
+ 'tarikh' => $tarikh
+ ])->json();
+
+ if(!$tunai)
+ {
+ return redirect()->back()->with('errormessage', 'Tiada data pada tarikh tersebut.');
+ }
+
+ $jumlahTambah = $tunai['tambah'] + $tunai['masuk'] + $bakiLelong['rugi_lelong'];
+ $jumlahTolak = $tunai['kurang'] + $tunai['keluar'] + $bakiLelong['baki_lelong'];
+
+ return view('aliran_tunai.laporan.laporanalirantunai',compact('tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail','addtunai','tunai','teller', 'bakiLelong', 'jumlahTambah', 'jumlahTolak'));
}
public function LaporanTunaiTeller(Request $request){
diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php
index e69b3a1..03e7252 100644
--- a/app/Http/Controllers/KhazanahController.php
+++ b/app/Http/Controllers/KhazanahController.php
@@ -4417,4 +4417,274 @@ class KhazanahController extends Controller
}
-}
+ public function pampasanDetail($id)
+ {
+ $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();
+
+ $gadai = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/gadai/norujukan/' . '011237' . '/' . $id)
+ ->json();
+
+ $gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
+
+ $customer_info = null;
+ if(isset($gadai_info['nokp'])) {
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
+ ->json();
+
+ $customer_info = null;
+ if (isset($gadai_info['nokp'])) {
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
+ ->json();
+
+ $customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
+ }
+
+
+ $barang_kes = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/palsu/laporan/', ['kodcaw' => $auth_user['cawangan']])
+ ->json();
+
+ // You may need to adjust the array index if the API returns an array of results
+ $gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
+ // $pampasan_info = is_array($pampasan) && isset($pampasan[0]) ? $pampasan[0] : $pampasan;
+
+ $barang_kes_collection = collect($barang_kes);
+ $barang_kes_info = $barang_kes_collection->where('norujukan', '=', $id)->first();
+
+ $customer_info = null;
+ if (isset($gadai_info['nokp'])) {
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
+ ->json();
+
+ $customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
+ }
+
+ $denominasi = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/DenominasiController/' . $auth_user['cawangan'])->json();
+
+ if (sizeof($denominasi) == 0) {
+ $denominasi = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/DenominasiCreate/' . $auth_user['cawangan'])->json();
+ } else {
+ $denominasi = $denominasi[0];
+ }
+
+ $pampasan = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/pampasan', ['kodcaw' => '011237', 'norujukan' => $id])
+ ->json()['data'][0];
+
+ $baucerno = $pampasan['baucerno'];
+ $nilaimarhun = $barang_kes_info['nilaimarhun'] ?? 0;
+ $pembiayaan = $barang_kes_info['pembiayaan'] ?? 0;
+ $untung = $barang_kes_info['untung'] ?? 0;
+
+
+ $jumlah_tebus = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/tebus/norujukan/' . $auth_user['cawangan'] . '/' . $id)
+ ->json()[0]['bakipjm'];
+
+ $jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
+
+ $jumlahPanjar = $jumlah_tebus + $jumlah_pampasan;
+
+ return view('khazanah.pampasan_detail', compact('gadai_info', 'barang_kes_info', 'cawangan_info', 'customer_info', 'baucerno', 'denominasi', 'jumlah_pampasan', 'jumlah_tebus', 'jumlahPanjar'));
+ }
+ }
+
+ public function initiatePampasan(Request $request)
+ {
+ $norujukan = $request->input('norujukan');
+ $teller = auth()->user()->name;
+ $kodcaw = auth()->user()->cawangan;
+ $baucerno = $this->generateBaucer($kodcaw);
+
+ $response = Http::post(config('api.url') . '/api/pampasan/initiatePampasan', [
+ 'norujukan' => $norujukan,
+ 'kodcaw' => $kodcaw,
+ 'teller' => $teller,
+ 'baucerno' => $baucerno,
+ ]);
+
+ if ($response->failed()) {
+ throw new \Exception("HTTP error! status: " . $response->status(), 1);
+ }
+
+ $result = $response->json();
+
+ // $jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
+ // $jumlahTebus = $pembiayaan + $untung;
+ // $jumlahPanjar = $jumlah_pampasan + $jumlahTebus;
+
+ //return view('khazanah.pampasan_detail', compact('gadai_info', 'pampasan_info', 'cawangan_info', 'customer_info','baucerno', 'denominasi','jumlah_pampasan', 'jumlahTebus', 'jumlahPanjar') );
+ return response()->json($result);
+ }
+
+ public function generateBaucer($kodcaw)
+ {
+ $data = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url').'/api/SenaraiPanjar/list/' . $kodcaw)
+ ->json();
+
+ $today = now();
+ $dd = $today->format('d');
+ $mm = $today->format('m');
+ $yy = $today->format('y');
+
+ $recno = $data['recno'] ?? 0;
+
+ $baucerno = 'B' . $yy . $mm . $dd . '-' . str_pad($recno, 4, '0', STR_PAD_LEFT);
+
+ return $baucerno;
+ }
+
+ public function terimaPampasan(Request $request)
+ {
+ $responsePampasan = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post(config('api.url') . '/api/pampasan/terimaPampasan',[
+ "norujukan" => $request->norujukan,
+ "kodcaw" => auth()->user()->cawangan,
+ "jumlah_pampasan" => $request->jumlahpampasan,
+ "teller" => auth()->user()->name,
+ "denominasi" => $request->denominasi,
+ ]
+ )->json();
+
+ $jumlahTebus = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/tebus/norujukan/' . auth()->user()->cawangan .'/'.$request->norujukan)->json()[0]['bakipjm'];
+ $bayaranPanjar = $request->jumlahpampasan + $jumlahTebus;
+
+
+ $responsePanjar = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post(
+ config('api.url') . '/api/panjar/createpanjar/' . auth()->user()->cawangan,
+ array_merge(
+ [
+ 'tarikhbil' => now()->format('Y-m-d'),
+ 'jenismodal' => 'belanjaam',
+ 'deskripsi' => 'BAYARAN PAMPASAN ' . '(' . $request->norujukan . ')',
+ 'bayaran' => $bayaranPanjar,
+ 'kodlaluan' => auth()->user()->name,
+ 'baucer' => $responsePampasan['data']['baucerno'],
+ 'tuntutan' => auth()->user()->name
+ ],
+ $request->denominasi
+
+ )
+ )->json();
+
+ if ($responsePampasan['success'] == true) {
+ return redirect()->route('pampasan.resit', ["pampasan" => $responsePampasan['data']]);
+ } else
+ return redirect()->route('khazanah.panjar')->with('pampasaninformation', ['status' => 'error', 'message' => 'Baki perubatan tidak mencukupi.']);
+ }
+
+ public function resitPampasan(Request $request)
+ {
+ $pampasan = $request->pampasan;
+ $kodcaw = $pampasan['kodcaw'];
+ $norujukan = $pampasan['norujukan'] ?? null;
+
+ if ($norujukan) {
+ $gadai_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/gadai/norujukan/' . $kodcaw . '/' . $norujukan)
+ ->json();
+
+ $gadai_info = is_array($gadai_info) && isset($gadai_info[0]) ? $gadai_info[0] : $gadai_info;
+
+ $customer_info = null;
+ if (isset($gadai_info['nokp'])) {
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
+ ->json();
+
+ $customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
+ }
+
+ $pampasan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/palsu/laporan/', ['kodcaw' => $kodcaw])
+ ->json();
+
+ $norujukan = $norujukan;
+
+ $pampasan_info = collect($pampasan_info)->firstWhere('norujukan', $norujukan);
+
+ $nilaimarhun = $pampasan_info['nilaimarhun'] ?? 0;
+ $pembiayaan = $pampasan_info['pembiayaan'] ?? 0;
+ $untung = $pampasan_info['untung'] ?? 0;
+
+ $jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
+
+ $status = Http::withOptions(['verify' => config('app.api_verify')])
+ ->put(config('api.url') . '/api/pampasan/updateStatusPampasan', ['kodcaw' => $kodcaw, 'norujukan' => $norujukan])
+ ->json();
+
+ // dd($pampasan_info, $nilaimarhun, $pembiayaan, $untung, $jumlah_pampasan);
+
+ // dd($norujukan);
+
+ return view('print.resit.resitpampasan', compact(
+ 'pampasan',
+ 'gadai_info',
+ 'customer_info',
+ 'pampasan_info',
+ 'nilaimarhun',
+ 'pembiayaan',
+ 'untung',
+ 'jumlah_pampasan',
+ 'status'
+ ));
+ }
+ }
+
+ public function suratPampasan(Request $request, $norujukan)
+ {
+ $auth_user = Auth::user();
+
+ $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/' . '011237' . '/' . $norujukan)
+ ->json();
+
+ $gadai_info = is_array($gadai) && isset($gadai[0]) ? $gadai[0] : $gadai;
+
+ $customer_info = null;
+ if(isset($gadai_info['nokp'])) {
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/customers/' . $gadai_info['nokp'])
+ ->json();
+
+ $customer_info = is_array($customer) && isset($customer[0]) ? $customer[0] : $customer;
+ }
+
+ $pampasan = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/palsu/laporan/' , ['kodcaw'=>'011237'])
+ ->json();
+
+ $pampasan_collection = collect($pampasan);
+
+ $pampasan_info = $pampasan_collection->where('norujukan', '=', $norujukan)->first();
+
+
+ if (!$pampasan_info) {
+ abort(404, 'Maklumat pampasan tidak dijumpai untuk no rujukan tersebut.');
+ }
+
+ $nilaimarhun = $pampasan_info['nilaimarhun'] ?? 0;
+ $pembiayaan = $pampasan_info['pembiayaan'] ?? 0;
+ $untung = $pampasan_info['untung'] ?? 0;
+
+ $jumlah_pampasan = $nilaimarhun - $pembiayaan - $untung;
+ $jumlah = $pampasan_info['jumlah_pampasan'] ?? 0;
+ $jumlah_pampasan_terbilang = Helper::ringgitTerbilang($jumlah_pampasan);
+
+ return view('print.surat_pampasan', compact('cawangan_info', 'gadai', 'gadai_info', 'customer_info', 'pampasan', 'pampasan_info','jumlah_pampasan_terbilang', 'jumlah_pampasan'));
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php
index 0f2f558..eb861af 100644
--- a/app/Http/Controllers/LelongController.php
+++ b/app/Http/Controllers/LelongController.php
@@ -99,6 +99,15 @@ class LelongController extends Controller
public function transaksituntutbaki(Request $request){
$auth_user = Auth::user();
+
+ $aliranTunaiController = new AliranTunaiController();
+ $checkCashBox = $aliranTunaiController->periksaAliranTunai($request);
+
+ if($checkCashBox->getContent() !== 'sama')
+ {
+ return response('kemaskini', 200);
+ }
+
$lelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/TuntutBaki/resit/' . $auth_user['cawangan'] . '/' . $request->norujukan)->json();
if($lelong)
@@ -106,6 +115,18 @@ class LelongController extends Controller
return response('Berjaya');
}
+ $getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $request->teller])->json();
+
+ $keluar = $getTunai2['keluar'];
+ $baki = $getTunai2['baki'];
+ $masuk = $getTunai2['masuk'];
+
+ $bakiakhir = $baki;
+
+ if(($bakiakhir < $request->jumlah) && $request->jenis == 'T'){
+ return response('Baki tidak mencukupi', 200);
+ }
+
$tuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/Tuntutbakisimpan/' . $auth_user['cawangan'], [
'batchno' => $request->batchno,
'jenis' => $request->jenis,
@@ -122,14 +143,6 @@ class LelongController extends Controller
$updatetuntutbaki = Http::withOptions(['verify' => config('app.api_verify')])->put( config('api.url').'/api/tuntutbakiupdate/' . $auth_user['cawangan'] . '/' . $request->norujukan);
- $getTunai2=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/GetCurrentTunai/'.$auth_user['cawangan'],['kodlaluan' => $request->teller])->json();
-
- $keluar = $getTunai2['keluar'];
- $baki = $getTunai2['baki'];
- $masuk = $getTunai2['masuk'];
-
- $bakiakhir = $baki;
-
if($request->jenis == 'T')
{
$bakiakhir -= $request->jumlah;
diff --git a/app/Http/Controllers/PenebusanController.php b/app/Http/Controllers/PenebusanController.php
index 652b7e7..32ef7f7 100644
--- a/app/Http/Controllers/PenebusanController.php
+++ b/app/Http/Controllers/PenebusanController.php
@@ -46,7 +46,10 @@ class PenebusanController extends Controller
$nilaihargasemasa = $this->tukaranhargaemas($norujukan);
$pertambahpinjaman = 0.80;
- return view('penebusan.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman'));
+
+ $pampasan = $this->getPampasanByNorujukan($norujukan);
+
+ return view('penebusan.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman', 'pampasan'));
}
public function tebuspenuh(Request $request)
@@ -786,4 +789,26 @@ class PenebusanController extends Controller
return view($view, compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa'));
}
+ public function getPampasanByNorujukan($norujukan)
+ {
+ $auth_user = Auth::user();
+
+ $pampasanListResponse = Http::get(config('api.url'). '/api/palsu/laporan', [
+ 'kodcaw' => $auth_user['cawangan'],
+ 'status' => 'all',
+ ]);
+
+ if($pampasanListResponse->failed()){
+ throw new \Exception("Something wrong with API", 1);
+ }
+
+ $pampasanList = array_filter($pampasanListResponse->json(), function($pampasan) use($norujukan){
+ return $pampasan['norujukan'] == $norujukan;
+ });
+
+ $pampasan = sizeof($pampasanList) == 0 ? null : array_pop($pampasanList);
+
+ return $pampasan;
+ }
+
}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 37bb7be..7356ee1 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -72,5 +72,6 @@ class Kernel extends HttpKernel
'admin' => 'App\Http\Middleware\Admin',
'audit' => 'App\Http\Middleware\Audit',
'masteradmin' => 'App\Http\Middleware\Masteradmin',
+ 'role' => 'App\Http\Middleware\RoleAccess',
];
}
diff --git a/app/Http/Middleware/RoleAccess.php b/app/Http/Middleware/RoleAccess.php
new file mode 100644
index 0000000..74c33c9
--- /dev/null
+++ b/app/Http/Middleware/RoleAccess.php
@@ -0,0 +1,71 @@
+roles;
+ $userRoleHarian = $user->role_harian ?? null;
+
+ // Check each allowed role
+ foreach ($roles as $role) {
+ switch ($role) {
+ case 'teller':
+ if ($userRoleHarian == 'teller' || $userRole == 'teller') {
+ return $next($request);
+ }
+ break;
+
+ case 'khazanah':
+ if ($userRole == 'pc' || $userRole == 'ppc') {
+ return $next($request);
+ }
+ break;
+
+ case 'admin':
+ if ($userRole == 'admin') {
+ return $next($request);
+ }
+ break;
+
+ case 'penilai':
+ if ($userRole == 'penilai') {
+ return $next($request);
+ }
+ break;
+
+ case 'operasi':
+ if ($userRole == 'operasi') {
+ return $next($request);
+ }
+ break;
+
+ case 'audit':
+ if ($userRole == 'audit') {
+ return $next($request);
+ }
+ break;
+ }
+ }
+
+ // If no roles matched, deny access
+ abort(403, 'Access denied. Required roles: ' . implode(', ', $roles));
+ }
+}
\ No newline at end of file
diff --git a/resources/js/app.js b/resources/js/app.js
new file mode 100644
index 0000000..2dee074
--- /dev/null
+++ b/resources/js/app.js
@@ -0,0 +1,30 @@
+/**
+ * First we will load all of this project's JavaScript dependencies which
+ * includes Vue and other libraries. It is a great starting point when
+ * building robust, powerful web applications using Vue and Laravel.
+ */
+
+require('./bootstrap');
+
+window.Vue = require('vue');
+
+/**
+ * The following block of code may be used to automatically register your
+ * Vue components. It will recursively scan this directory for the Vue
+ * components and automatically register them with their "basename".
+ *
+ * Eg. ./components/ExampleComponent.vue ->
+ */
+
+// const files = require.context('./', true, /\.vue$/i)
+// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
+
+/**
+ * Next, we will create a fresh Vue application instance and attach it to
+ * the page. Then, you may begin adding components to this application
+ * or customize the JavaScript scaffolding to fit your unique needs.
+ */
+
+const app = new Vue({
+ el: '#app',
+});
\ No newline at end of file
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
index 937d7b9..61a0929 100644
--- a/resources/js/bootstrap.js
+++ b/resources/js/bootstrap.js
@@ -35,7 +35,7 @@ window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
- key: '26b0ec2f297f94b7aa9b',
- cluster: 'ap1',
- forceTLS: true
+ key: process.env.MIX_PUSHER_APP_KEY,
+ cluster: process.env.MIX_PUSHER_APP_CLUSTER,
+ forceTLS: false
});
diff --git a/resources/views/aliran_tunai/index.blade.php b/resources/views/aliran_tunai/index.blade.php
index d1ebd87..9459d54 100644
--- a/resources/views/aliran_tunai/index.blade.php
+++ b/resources/views/aliran_tunai/index.blade.php
@@ -558,15 +558,12 @@
function cetaklaporanalirantunai()
{
- let teller = "{{ Auth::user()->name }}";
-
- let urlroute = '{{ route("laporan.alirantunai", ":id") }}';
- urlroute = urlroute.replace(':id', teller);
-
- window.open(urlroute, '_blank');
-
+ let urlroute = '{{ route("laporan.alirantunai") }}';
+
+ window.location.href = urlroute;
}
+
function cetakserahankeseluruhan()
{
let urlroute = '{{ route("laporan.serahanteller") }}';
diff --git a/resources/views/aliran_tunai/laporan/laporanalirantunai.blade.php b/resources/views/aliran_tunai/laporan/laporanalirantunai.blade.php
index c977e37..2334ec2 100644
--- a/resources/views/aliran_tunai/laporan/laporanalirantunai.blade.php
+++ b/resources/views/aliran_tunai/laporan/laporanalirantunai.blade.php
@@ -1,211 +1,298 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Baki Awal
- RM {{ number_format($alirantunai['bakiawal'], 2) }}
-
-
-
-
Pendahuluan
- RM {{ number_format($alirantunai['tambah'], 2) }}
-
-
-
-
Penyelesaian Pem.
- RM {{ number_format($alirantunai['masuk'], 2) }}
-
-
-
-
-
-
Baki Tunai Semasa
- RM {{ number_format($alirantunai['baki'], 2) }}
-
-
-
-
Serahan
- RM {{ number_format($alirantunai['kurang'], 2) }}
-
-
-
-
Pembiayaan
- RM {{ number_format($alirantunai['keluar'], 2) }}
-
-
-
-
-
-
-
-
-
- | TARIKH |
- DEBIT (RM) |
- KREDIT (RM) |
- NOTA |
-
- @php $totaltambah = 0; $totalkurang = 0; @endphp
- @foreach($addtunai as $index=>$ad)
- @php $totaltambah += $ad['tambah']; $totalkurang += $ad['kurang']; @endphp
-
- | {{ $ad['tarikh'] }} |
- {{ number_format($ad['tambah'],2) }} |
- {{ number_format($ad['kurang'],2) }} |
- {{ $ad['nota'] }} |
-
- @endforeach
-
- | JUMLAH |
- {{ number_format($totaltambah,2) }} |
- {{ number_format($totalkurang,2) }} |
- |
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php
index 5bdfe89..896014e 100644
--- a/resources/views/customers/v2/index.blade.php
+++ b/resources/views/customers/v2/index.blade.php
@@ -102,7 +102,7 @@
Daftar Pelanggan