From 2a0ffde01686847852bc50b977c255d89b1026e9 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Wed, 2 Sep 2026 11:55:28 +0800 Subject: [PATCH] resolve bugs laporan audit operasi --- app/Http/Controllers/OperasiController.php | 158 ++++++++++++++++++++- 1 file changed, 153 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/OperasiController.php b/app/Http/Controllers/OperasiController.php index 74189123..93a12505 100644 --- a/app/Http/Controllers/OperasiController.php +++ b/app/Http/Controllers/OperasiController.php @@ -87,13 +87,19 @@ class OperasiController extends Controller 'siri' => $request->siri ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [ + $updateData = [ 'sahkan' => 1, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri - ])->json(); - } else { - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [ + ]; + + 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, @@ -139,6 +145,49 @@ class OperasiController extends Controller 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 updatekelulusananggota(Request $request) { $auth_user = Auth::user(); @@ -149,7 +198,7 @@ class OperasiController extends Controller $kodcaw = $request->kodcaw; $komen = $request->komenkelulusan; $namaoperasi = $request->namaoperasi; - $taglulus = $request->taglulus; // contoh: 'Y' = lulus, 'N' = batal + $taglulus = $request->taglulus; // contoh: 'Y' = lulus, 'N' = batalmarginmutu() // 1️⃣ Tentukan status kelulusan $status = ($taglulus == 'Y') ? 1 : 2; // 1 = Lulus, 2 = Batal/Tolak @@ -401,4 +450,103 @@ class OperasiController extends Controller return view('operasi.kelulusan_anggota', compact('cawangan_info', 'api_url', 'arraykelulusan')); } + + 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')); + } + } -- 2.52.0