From a38b09d1a8727de892da6485a1fe4c14cc0d67cf Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 11 Apr 2025 11:04:11 +0700 Subject: [PATCH] feat(laporan-admin-kredit): tambahkan fitur edit dan update laporan admin kredit - Menambahkan metode edit untuk menampilkan formulir pengeditan laporan admin kredit. - Menambahkan metode update untuk memvalidasi dan memperbarui laporan admin kredit. - Memperbarui rute untuk mendukung pengeditan dan pembaruan laporan admin kredit. - Menambahkan breadcrumb untuk navigasi ke halaman edit laporan admin kredit. - Memperbarui tampilan index untuk menambahkan tombol aksi edit. --- .../LaporanAdminKreditController.php | 57 ++++++++++-- .../views/laporan_admin_kredit/form.blade.php | 92 +++++++++++++++++++ .../laporan_admin_kredit/index.blade.php | 14 +++ routes/breadcrumbs.php | 6 ++ routes/web.php | 3 + 5 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 resources/views/laporan_admin_kredit/form.blade.php diff --git a/app/Http/Controllers/LaporanAdminKreditController.php b/app/Http/Controllers/LaporanAdminKreditController.php index d62ce28..f9adfca 100644 --- a/app/Http/Controllers/LaporanAdminKreditController.php +++ b/app/Http/Controllers/LaporanAdminKreditController.php @@ -5,9 +5,9 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; + use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\LaporanAdminKreditExport; use Modules\Lpj\Models\LaporanAdminKredit; - use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Models\Permohonan; class LaporanAdminKreditController extends Controller @@ -19,10 +19,15 @@ */ public function index() { - $permohonan = Permohonan::with(['documents.jenisJaminan','penilaian._user_penilai','penilai','documents.detail.jenisLegalitasJaminan'])->where(['status'=>'done'])->get(); - foreach($permohonan as $_permohonan){ + $permohonan = Permohonan::with([ + 'documents.jenisJaminan', + 'penilaian._user_penilai', + 'penilai', + 'documents.detail.jenisLegalitasJaminan' + ])->where(['status' => 'done'])->get(); + foreach ($permohonan as $_permohonan) { $npw = 0; - if(isset($_permohonan->penilai->lpj)){ + if (isset($_permohonan->penilai->lpj)) { $npw = json_decode($_permohonan->penilai->lpj, true); $npw = $npw['total_nilai_pasar_wajar'] ?? 0; } @@ -48,7 +53,7 @@ LaporanAdminKredit::updateOrCreate([ 'debiture_id' => $_permohonan->debiture_id, - ],$dataAdk); + ], $dataAdk); } @@ -71,7 +76,7 @@ // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { - $search = $request->get('search'); + $search = $request->get('search'); $search_ = json_decode($search); if (isset($search_->search)) { @@ -137,4 +142,44 @@ { return Excel::download(new LaporanAdminKreditExport, 'laporan_admin_kredit.xlsx'); } + + public function edit($id) + { + $laporanAdminKredit = LaporanAdminKredit::with('debiture.branch')->find($id); + return view('lpj::laporan_admin_kredit.form', compact('laporanAdminKredit')); + } + + public function update(Request $request, $id) + { + $request->validate([ + 'kode_register_t24' => 'nullable', + 'cif' => 'required', + ]); + + try { + $laporanAdminKredit = LaporanAdminKredit::find($id); + + // Update only the editable fields + $laporanAdminKredit->update([ + 'kode_register_t24' => $request->kode_register_t24, + 'updated_by' => Auth::id(), + ]); + + // Update CIF in the debiture table if needed + if ($laporanAdminKredit->debiture) { + $laporanAdminKredit->debiture->update([ + 'cif' => $request->cif, + 'updated_by' => Auth::id(), + ]); + } + + return redirect() + ->route('laporan-admin-kredit.index') + ->with('success', 'Laporan Admin Kredit updated successfully'); + } catch (Exception $e) { + return redirect() + ->route('laporan-admin-kredit.edit', $id) + ->with('error', 'Failed to update Laporan Admin Kredit'); + } + } } diff --git a/resources/views/laporan_admin_kredit/form.blade.php b/resources/views/laporan_admin_kredit/form.blade.php new file mode 100644 index 0000000..9150b39 --- /dev/null +++ b/resources/views/laporan_admin_kredit/form.blade.php @@ -0,0 +1,92 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('laporan-admin-kredit-edit', $laporanAdminKredit) }} +@endsection + +@section('content') +
+
+
+

+ Edit Laporan Admin Kredit +

+
+
+
+ @csrf + @method('PUT') + +
+ +
+ + +
+ +
+ + +
+ + +
+ +
{{ $laporanAdminKredit->debiture ? $laporanAdminKredit->debiture->name : '' }}
+
+ +
+ +
{{ $laporanAdminKredit->debiture ? $laporanAdminKredit->debiture->branch->name : '' }}
+
+ +
+ +
{{ $laporanAdminKredit->jenis_agunan }}
+
+ +
+ +
{{ $laporanAdminKredit->bukti_kepemilikan }}
+
+ +
+ +
{{ $laporanAdminKredit->alamat_agunan }}
+
+ +
+ +
{{ $laporanAdminKredit->nama_pemilik }}
+
+ +
+ +
{{ \Carbon\Carbon::parse($laporanAdminKredit->tanggal_kunjungan)->format('d-m-Y') }}
+
+ +
+ +
{{ number_format($laporanAdminKredit->nilai_pasar_wajar, 0, ',', '.') }}
+
+ +
+ +
{{ number_format($laporanAdminKredit->nilai_likuidasi, 0, ',', '.') }}
+
+ +
+ +
{{ $laporanAdminKredit->nama_penilai }}
+
+
+ +
+ Cancel + +
+
+
+
+
+@endsection diff --git a/resources/views/laporan_admin_kredit/index.blade.php b/resources/views/laporan_admin_kredit/index.blade.php index f54455a..6eed162 100644 --- a/resources/views/laporan_admin_kredit/index.blade.php +++ b/resources/views/laporan_admin_kredit/index.blade.php @@ -93,6 +93,10 @@ Nama Penilai + + Actions + + @@ -191,6 +195,16 @@ }, nama_penilai: { title: 'Nama Penilai', + }, + actions: { + title: 'Action', + render: (item, data) => { + return `
+ + + +
`; + }, } } }; diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 715c088..9fc2ce3 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -719,6 +719,12 @@ Breadcrumbs::for('laporan-admin-kredit', function ($trail) { $trail->push('Laporan Admin Kredit', route('laporan-admin-kredit.index')); }); + // Laporan Admin Kredit Edit + Breadcrumbs::for('laporan-admin-kredit-edit', function (BreadcrumbTrail $trail, $laporanAdminKredit) { + $trail->parent('laporan-admin-kredit'); + $trail->push('Edit', route('laporan-admin-kredit.edit', $laporanAdminKredit->id)); + }); + Breadcrumbs::for('bank-data', function ($trail) { $trail->push('Bank Data', route('bank-data.index')); }); diff --git a/routes/web.php b/routes/web.php index ae35e61..8d079e5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -669,6 +669,9 @@ Route::middleware(['auth'])->group(function () { Route::get('/', [LaporanAdminKreditController::class, 'index'])->name('index'); Route::get('datatables', [LaporanAdminKreditController::class, 'dataForDatatables'])->name('datatables'); Route::get('export', [LaporanAdminKreditController::class, 'export'])->name('export'); + + Route::get('{id}/edit', [LaporanAdminKreditController::class,'edit'])->name('edit'); + Route::put('{id}', [LaporanAdminKreditController::class,'update'])->name('update'); }); Route::name('bank-data.')->prefix('bank-data')->group(function () {