middleware('auth'); } 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(); $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($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')); } public function getkelulusan(Request $request) { $auth_user = Auth::user(); $api_url = config('api.url'); $norujukan = $request->norujukan; $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) { $kelulusan = $kelulusan[0]['masalulus']; } else { $kelulusan = ''; } return response($kelulusan); } public function updatekelulusan(Request $request) { $auth_user = Auth::user(); $api_url = config('api.url'); $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,[ "komen" => $request->komenkelulusan, 'siri' => $request->siri ])->json(); $updateData = [ 'sahkan' => 1, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri ]; if ($request->has('actions')) { $updateData['actions'] = $request->actions; } $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, $updateData)->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(); } 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,[ "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(); }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) { event(new NotifikasiKelulusan($norujukan,"batal",$request->siri,$request->komenkelulusan,$request->teller)); } } return response()->json($updatelulus,200); } public function createKelulusanByKhazanah(Request $request) { $auth_user = Auth::user(); $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); $norujukan = $request->norujukan; $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(); if(isset($getsiri['siri'])) { $siri = $getsiri['siri'] + 1; }else{ $siri = 1; } $createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateKelulusan/' . $auth_user['cawangan'] . '/' . $norujukan . '/roles/khazanah', [ 'komen' => $request->komen, 'dategadai' => $current->toDateString(), 'bilgadai' => 1, 'siri' => $siri, 'margin' => $request->margin, 'berat' => $request->berat, 'nilaimarhun' => $request->nilaimarhun, 'status' => $request->status, 'jumpinjam' => $request->jumpinjam, 'jenistebus' => "G", 'teller' => $request->teller, 'peloperasi' => "operasi", 'pelulus' => "operasi", 'actions' => "Mohon Pengesahan Pembayaran Pampasan" ])->json(); event(new OperasiNotice($auth_user['cawangan'],$auth_user['name'])); return response()->json($siri,201); } public function createkelulusan(Request $request) { $auth_user = Auth::user(); $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); $norujukan = $request->norujukan; $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(); if(isset($getsiri['siri'])) { $siri = $getsiri['siri'] + 1; }else{ $siri = 1; } $createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateKelulusan/' . $auth_user['cawangan'] . '/' . $norujukan . '/roles/operasi', [ 'komen' => $request->komen, 'dategadai' => $current->toDateString(), 'bilgadai' => 1, 'siri' => $siri, 'margin' => $request->margin, 'berat' => $request->berat, 'nilaimarhun' => $request->nilaimarhun, 'status' => $request->status, 'jumpinjam' => $request->jumpinjam, 'jenistebus' => "G", 'teller' => $request->teller, 'peloperasi' => "operasi" ])->json(); event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); return response()->json($siri,201); } public function mintakatalaluansemula(Request $request) { if(Hash::check($request->passsemula, Auth::user()->password)) { return "True"; } 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(); 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(); $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')); } 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(); $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')); } 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(); //declare array baru $arraykelulusan = []; $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']); $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'],]); } } return view('operasi.rekodtelahlulus',compact('cawangan_info','api_url','arraykelulusan')); } public function notifyKomoditi() { $auth_user = Auth::user(); event(new KomoditiNotify('lulus',$auth_user['cawangan'])); } public function marginmutu() { $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(); // Get MaxMutuEmas data from API $maxmutuemas = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/maxmutuemas')->json(); return view('operasi.marginmutu', compact('cawangan_info', 'api_url', 'maxmutuemas')); } public function editMarginMutu() { $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('operasi.edit_marginmutu', compact('cawangan_info', 'api_url')); } public function laporanAudit() { $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('homepage.operasi.laporan-audit', compact('cawangan_info', 'api_url')); } public function cetakLaporanAuditTrail(Request $request) { $api_url = config('api.url'); $auth_user = Auth::user(); $current = Carbon::now(); $current = new Carbon(); $tarikh_cetak = $current->toDateString(); if($request->dateaudit == null){ $date = $current->toDateString(); }else{ $split_date = explode('-', $request->dateaudit); $date = $split_date[0] . '-' . $split_date[1] . '-' . $split_date[2]; } if($request->dateaudit_till == null){ $date_till = $current->toDateString(); }else{ $split_date_till = explode('-', $request->dateaudit_till); $date_till = $split_date_till[0] . '-' . $split_date_till[1] . '-' . $split_date_till[2]; } $audittrail_raw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/reports/audittrail/operasi',['date' => $date,'date_till' => $date_till])->json(); if(!$audittrail_raw){ return redirect()->back()->with('errormessage', 'Tiada data pada tarikh tersebut.'); } // Transform the data to match view format $audittrail = []; foreach($audittrail_raw as $item) { $created_at = \Carbon\Carbon::parse($item['created_at']); // Format differences for display $differences_text = '-'; if (isset($item['differences']) && !empty($item['differences'])) { $diff_parts = []; foreach ($item['differences'] as $field => $changes) { $old = $changes['old'] ?? 'null'; $new = $changes['new'] ?? 'null'; $diff_parts[] = "{$field}: {$old} → {$new}"; } $differences_text = implode('; ', $diff_parts); } $audittrail[] = [ 'tarikh' => $created_at->format('d/m/Y'), 'masa' => $created_at->format('H:i:s'), 'users' => $item['users'], 'actions' => $item['actions'], 'differ' => $differences_text ]; } $cawangan_detail = [ 'kodcaw' => 'operasi', 'namacaw' => 'Operasi Ar-Rahn', 'alamat1' => 'Lot 107, Jalan Parit Dalam,', 'alamat2' => 'Seksyen 8', 'poskod' => '15000', 'bandar' => 'Kota Bahru', 'negeri' => 'Kelantan', 'notel' => '03-12345678', 'nofaks' => '03-12345678', ]; return view('print.laporan_audittrail_operasi', compact('audittrail','cawangan_detail','tarikh_cetak','date','date_till','api_url')); } }