diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index b457413..660176e 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -123,7 +123,7 @@ class LaporanController extends Controller $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','jenisFasilitasKredit', 'documents.inspeksi','penilai','documents.detail'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','jenisFasilitasKredit', 'documents.inspeksi','penilai','documents.detail','noc'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $size); diff --git a/app/Http/Controllers/NocController.php b/app/Http/Controllers/NocController.php index 891e9ea..48f685b 100644 --- a/app/Http/Controllers/NocController.php +++ b/app/Http/Controllers/NocController.php @@ -100,6 +100,27 @@ public function update(NocRequest $request, PersetujuanPenawaran $persetujuanPenawaran) { $validated = $request->validated(); + + if($request->get('is_memo')){ + + $memo = Noc::find($request->get('is_memo')); + + $folderPath = 'noc/' . request()->get('persetujuan_penawaran_id') . '/memo_penyelesaian/'; + + if ($request->hasFile('memo_penyelesaian')) { + $memo->memo_penyelesaian = $request->file('memo_penyelesaian')->store( + $folderPath, + 'public', + ); + } + + $memo->catatan_noc = $validated['catatan_noc']; + $memo->save(); + + + return redirect() + ->route('laporan.index')->with('success', 'Memo Penyelesaian updated successfully'); + } $dataNoc = [ 'nominal_penyelesaian' => $validated['nominal_penyelesaian'], 'tanggal_penyelesaian' => $validated['tanggal_penyelesaian'] ?? date('Y-m-d'), @@ -142,7 +163,11 @@ /** * Display the specified resource. */ - public function show($id) {} + public function show(Request $request) { + $noc = Noc::find($request->get('id')); + + return view('lpj::noc.memo', compact('noc')); + } /** * Show the form for editing the specified resource. @@ -216,10 +241,13 @@ $persetujuanPenawaran->noc->tanggal_pembayaran ?? $persetujuanPenawaran->noc?->created_at, true, ), - 'nominal_bayar' => currencyFormat( - $persetujuanPenawaran->noc->nominal_bayar ?? $persetujuanPenawaran->nominal_bayar ?? 0, + 'nominal_bayar' => currencyFormat($persetujuanPenawaran->nominal_bayar ?? 0, + ), + 'nominal_diterima' => currencyFormat( + $persetujuanPenawaran->noc->nominal_bayar ?? 0, ), 'bukti_ksl' => $persetujuanPenawaran->noc->bukti_ksl ?? $persetujuanPenawaran->bukti_ksl ?? null, + 'bukti_bayar' => $persetujuanPenawaran->bukti_bayar ?? null, 'memo_penyelesaian' => $persetujuanPenawaran->noc->memo_penyelesaian ?? $persetujuanPenawaran->memo_penyelesaian ?? null, 'nominal_penyelesaian' => currencyFormat( $persetujuanPenawaran->noc->nominal_penyelesaian ?? $persetujuanPenawaran->nominal_penyelesaian ?? 0, diff --git a/resources/views/laporan/index.blade.php b/resources/views/laporan/index.blade.php index 9e1d2ee..85193ec 100644 --- a/resources/views/laporan/index.blade.php +++ b/resources/views/laporan/index.blade.php @@ -237,8 +237,17 @@ const type = data.penilai?.type || ''; let laporanButton = ''; let resumeButton = ''; + let penyelesaian = ''; + if(data.noc) { + if (!data.noc?.tanggal_penyelesaian && !data.noc?.memo_penyelesaian) { + penyelesaian = ` + + Penyelesaian + `; + } + } if(data.penilai.resume) { resumeButton = ` @@ -270,7 +279,7 @@ } - return `
${resumeButton} ${laporanButton}
`; + return `
${penyelesaian} ${resumeButton} ${laporanButton}
`; }, } }, diff --git a/resources/views/noc/form.blade.php b/resources/views/noc/form.blade.php index b435428..34ac92a 100644 --- a/resources/views/noc/form.blade.php +++ b/resources/views/noc/form.blade.php @@ -8,7 +8,7 @@ $hasMemo = false; try { $memoPath = $persetujuanPenawaran->noc->memo_penyelesaian ?? null; - $hasMemo = isset($memoPath) && !empty($memoPath) && Storage::exists($memoPath); + $hasMemo = isset($memoPath) && !empty($memoPath) && Storage::disk('public')->exists($memoPath); } catch (Exception $e) { // Jika terjadi error, $hasMemo tetap false } @@ -19,7 +19,7 @@
- NOC + {{ $hasMemo ? 'Proses Penyelesaian NOC' : 'NOC' }}
Back @@ -53,7 +53,22 @@
+
+ @if(!empty($persetujuanPenawaran->bukti_bayar)) + + @endif +
+
+ +
+
@@ -65,7 +80,7 @@
@@ -93,7 +108,7 @@ Bukti KSL
- @if($hasMemo) + @if(!$hasMemo) @error('bukti_ksl') {{ $message }} diff --git a/resources/views/noc/index.blade.php b/resources/views/noc/index.blade.php index 7420700..ca72e7b 100644 --- a/resources/views/noc/index.blade.php +++ b/resources/views/noc/index.blade.php @@ -53,6 +53,14 @@ Nominal bayar + + Bukti Bayar + + + + Nominal Diterima + + Bukti KSL @@ -153,6 +161,21 @@ nominal_bayar: { title: 'Nominal Bayar', }, + bukti_bayar: { + title: 'Bukti KSL', + render: (item, data) => { + if (data.bukti_bayar) { + return ` + Download + `; + } else { + return '-'; + } + }, + }, + nominal_diterima: { + title: 'Nominal Diterima', + }, bukti_ksl: { title: 'Bukti KSL', render: (item, data) => { diff --git a/resources/views/noc/memo.blade.php b/resources/views/noc/memo.blade.php new file mode 100644 index 0000000..97a1e06 --- /dev/null +++ b/resources/views/noc/memo.blade.php @@ -0,0 +1,163 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@section('content') +
+
+
+
+ Memo Penyelesaian NOC +
+
+ Back +
+
+
+
+ @csrf + @method('PUT') + + + + +
+ +
+ + @error('status_bayar') + {{ $message }} + @enderror +
+
+ +
+ +
+ @if(!empty($noc->persetujuanPenawaran->bukti_bayar)) + + @endif +
+
+ +
+ +
+ + @error('total_harus_bayar') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('nominal_bayar') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('tanggal_pembayaran') + {{ $message }} + @enderror +
+
+ + +
+ +
+ @if(isset($noc->bukti_ksl) && !empty($noc->bukti_ksl)) + + @endif +
+
+ +
+ +
+ + + @error('memo_penyelesaian') + {{ $message }} + @enderror + + @if(isset($noc->memo_penyelesaian) && !empty($noc->memo_penyelesaian)) + + @endif +
+
+ + +
+ +
+ + @error('catatan') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('catatan_noc') + {{ $message }} + @enderror +
+
+ +
+ +
+
+
+
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index d3fab80..2e9f08c 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -678,6 +678,11 @@ Breadcrumbs::for('noc.edit', function (BreadcrumbTrail $trail) { $trail->push('Proses NOC'); }); + Breadcrumbs::for('noc.penyelesaian', function (BreadcrumbTrail $trail) { + $trail->parent('noc'); + $trail->push('Proses Memo Penyelesaian NOC'); + }); + Breadcrumbs::for('laporan-external', function (BreadcrumbTrail $trail) { $trail->push('Laporan External', route('laporan-external.index')); }); diff --git a/routes/web.php b/routes/web.php index a7a181d..d04fe9a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -654,6 +654,9 @@ Route::middleware(['auth'])->group(function () { Route::get('noc/datatables', [NocController::class, 'dataForDatatables']) ->name('noc.datatables'); + Route::get('noc/penyelesaian',[NocController::class, 'show'])->name('noc.penyelesaian'); + Route::post('noc/penyelesaian',[NocController::class, 'penyelesaian'])->name('noc.store.penyelesaian'); + Route::resource('noc', NocController::class);