From 1caa7ebfddcd0af5075903fe9547a56b30dcfc3b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 15 Sep 2025 08:08:10 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(pembayaran):=20Implementasi=20fitur?= =?UTF-8?q?=20pengembalian=20lebih=20bayar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Menambahkan method editLebih() di PembayaranController untuk menampilkan form pengembalian lebih bayar - Menambahkan logika pengembalian lebih bayar di method store() dengan validasi type 'lebih_bayar' - Menambahkan penyimpanan bukti KSL lebih bayar dengan upload file ke storage - Menambahkan update bukti KSL ke tabel noc untuk pengembalian lebih bayar - Menambahkan filter bukti_ksl_lebih_bayar null pada query dataForDatatablesLebih untuk menampilkan data yang belum diproses - Menambahkan validasi file upload untuk bukti_ksl_lebih_bayar dengan format pdf,jpg,jpeg,png maksimal 2MB - Menambahkan view form-lebih.blade.php dengan tampilan detail pembayaran dan form pengembalian - Menambahkan validasi JavaScript untuk memastikan format dan ukuran file yang diupload - Menambahkan route pembayaran/{pembayaran}/lebih untuk mengakses form pengembalian lebih bayar - Mengubah link action di lebih.blade.php dari edit ke lebih untuk mengarahkan ke form pengembalian - Menambahkan redirect ke pembayaran.lebih.index setelah berhasil menyimpan pengembalian - Menambahkan field catatan opsional untuk memberikan keterangan tambahan pada proses pengembalian - Menambahkan validasi client-side untuk memastikan file yang diupload sesuai format dan ukuran - Menambahkan informasi detail pembayaran yang komprehensif di form pengembalian - Menambahkan styling yang konsisten dengan form kurang bayar untuk user experience yang baik --- app/Http/Controllers/PembayaranController.php | 23 ++- .../views/pembayaran/form-lebih.blade.php | 141 ++++++++++++++++++ resources/views/pembayaran/lebih.blade.php | 2 +- routes/registrasi.php | 2 + 4 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 resources/views/pembayaran/form-lebih.blade.php diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php index 4da2b1a..1a0af0a 100644 --- a/app/Http/Controllers/PembayaranController.php +++ b/app/Http/Controllers/PembayaranController.php @@ -123,6 +123,13 @@ class PembayaranController extends Controller $persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $permohonan->id)->first(); return view('lpj::pembayaran.form-kurang', compact('noc','permohonan','persetujuanPenawaran')); } + + public function editLebih($id){ + $noc = Noc::find($id); + $permohonan = Permohonan::find($noc->permohonan_id); + $persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $permohonan->id)->first(); + return view('lpj::pembayaran.form-lebih', compact('noc','permohonan','persetujuanPenawaran')); + } public function store(PersetujuanPenawaranRequest $request) { if($req['type'] == 'kurang_bayar'){ @@ -141,6 +148,19 @@ class PembayaranController extends Controller return redirect() ->route('pembayaran.kurang.index')->with('success', 'Pelunasan Kurang Bayar berhasil disimpan.'); } + + if($req['type'] == 'lebih_bayar'){ + $noc = Noc::find($req['noc_id']); + if (request()->hasFile('bukti_ksl_lebih_bayar')) { + $folderPath = 'persetujuan_penawaran/bukti_ksl_lebih_bayar/' . $req['noc_id']; + $noc->bukti_ksl_lebih_bayar = $request->file('bukti_ksl_lebih_bayar')->store($folderPath, 'public'); + } + $noc->save(); + + return redirect() + ->route('pembayaran.lebih.index')->with('success', 'Pengembalian Lebih Bayar berhasil disimpan.'); + } + $validated = $request->validated(); $validated['created_by'] = Auth::id(); $validated['status'] = '0'; @@ -438,7 +458,8 @@ class PembayaranController extends Controller } $query = Noc::query()->where(function ($query) { - $query->where(['status_lebih_bayar' => '1']); + $query->where(['status_lebih_bayar' => '1']) + ->where('bukti_ksl_lebih_bayar',null); }); // Sorting berdasarkan sortField dan sortOrder diff --git a/resources/views/pembayaran/form-lebih.blade.php b/resources/views/pembayaran/form-lebih.blade.php new file mode 100644 index 0000000..774e09b --- /dev/null +++ b/resources/views/pembayaran/form-lebih.blade.php @@ -0,0 +1,141 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('pembayaran') }} +@endsection + +@section('content') +
+
+
+
+ Form Pembayaran Lebih Bayar +
+
+ Back +
+
+
+ +
+

Detail Pembayaran

+
+
+ +

{{ $noc->permohonan->nomor_registrasi ?? '-' }}

+
+
+ +

{{ $noc->nomor_tiket ?? '-' }}

+
+
+ +

{{ $noc->permohonan->tanggal_permohonan ?? '-' }}

+
+
+ +

{{ $noc->permohonan->user->name ?? '-' }}

+
+
+ +

+ @if ($noc->permohonan->branch ?? null) + {{ $noc->permohonan->branch->code }} - {{ $noc->permohonan->branch->name }} + @else + - + @endif +

+
+
+ +

{{ $noc->permohonan->debiture->name ?? '-' }}

+
+
+ +

Lebih Bayar

+
+
+ +

+ {{ formatRupiah($noc->nominal_lebih_bayar ?? 0, 2) }}

+
+
+
+ +
+ @csrf + + + +
+ +
+ + @error('bukti_ksl_lebih_bayar') + {{ $message }} + @enderror + + Format yang diizinkan: PDF, JPG, JPEG, PNG (Max: 2MB) + +
+
+ +
+ +
+ + @error('catatan') + {{ $message }} + @enderror +
+
+ +
+ + Batal + + +
+
+
+
+
+@endsection + +@push('scripts') + +@endpush diff --git a/resources/views/pembayaran/lebih.blade.php b/resources/views/pembayaran/lebih.blade.php index 8700a12..4a5b52c 100644 --- a/resources/views/pembayaran/lebih.blade.php +++ b/resources/views/pembayaran/lebih.blade.php @@ -222,7 +222,7 @@ title: 'Status', render: (item, data) => { return `
- +
`; diff --git a/routes/registrasi.php b/routes/registrasi.php index fbd4b12..8e2f305 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -140,6 +140,8 @@ Route::middleware(['auth'])->group(function () { Route::get('/pembayaran/datatables-lebih','dataForDatatablesLebih')->name('pembayaran.lebih.datatables'); Route::get('/pembayaran/{pembayaran}/kurang', 'editKurang')->name('pembayaran.kurang'); + Route::get('/pembayaran/{pembayaran}/lebih', 'editLebih')->name('pembayaran.lebih'); + Route::put('/pembayaran/{pembayaran}', 'update')->name('pembayaran.update'); Route::get('/pembayaran/approval', 'approval')->name('pembayaran.approval.index');