Tambah fitur pembatalan permohonan
- Menambahkan model, migration, dan relasi untuk tabel pembatalan permohonan. - Mengubah fungsi delete menjadi pembatalan permohonan dengan konfirmasi pengguna. - Menambahkan route baru untuk form dan proses pembatalan permohonan. - Menyediakan form input alasan dan file pendukung untuk pembatalan permohonan. - Memperbarui tampilan, fungsi controller, dan breadcrumbs terkait pembatalan permohonan.
This commit is contained in:
@@ -353,4 +353,38 @@
|
||||
// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan'));
|
||||
// return $pdf->stream();
|
||||
}
|
||||
|
||||
public function showPembatalan($id)
|
||||
{
|
||||
$permohonan = Permohonan::with(['pembatalan','debiture'])->findOrFail($id);
|
||||
return view('lpj::permohonan.pembatalan-form', compact('permohonan'));
|
||||
}
|
||||
|
||||
|
||||
public function pembatalan(Request $request)
|
||||
{
|
||||
// Validate the request
|
||||
$validatedData = $request->validate([
|
||||
'permohonan_id' => 'required|exists:permohonan,id',
|
||||
'alasan_pembatalan' => 'required|string',
|
||||
'file_pembatalan' => 'required|file|mimes:pdf,doc,docx|max:2048',
|
||||
]);
|
||||
|
||||
// Handle file upload
|
||||
if ($request->hasFile('file_pembatalan')) {
|
||||
$file = $request->file('file_pembatalan');
|
||||
$filename = time() . '_' . $file->getClientOriginalName();
|
||||
$filePath = $file->storeAs('pembatalan', $filename, 'public');
|
||||
$validatedData['file_pembatalan'] = $filePath;
|
||||
}
|
||||
|
||||
// Add created_by
|
||||
$validatedData['created_by'] = auth()->id();
|
||||
|
||||
// Create new PermohonanPembatalan
|
||||
$pembatalan = PermohonanPembatalan::create($validatedData);
|
||||
|
||||
return redirect()->route('permohonan.index')->with('success', 'Pembatalan Permohonan Menunggu Approval');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -159,4 +159,8 @@
|
||||
{
|
||||
return $this->hasMany(DokumenJaminan::class);
|
||||
}
|
||||
|
||||
public function pembatalan(){
|
||||
return $this->hasMany(PermohonanPembatalan::class);
|
||||
}
|
||||
}
|
||||
|
||||
50
app/Models/PermohonanPembatalan.php
Normal file
50
app/Models/PermohonanPembatalan.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
use Modules\Usermanagement\Models\User;
|
||||
|
||||
class PermohonanPembatalan extends Base
|
||||
{
|
||||
|
||||
protected $table = 'permohonan_pembatalan';
|
||||
|
||||
protected $fillable = [
|
||||
'permohonan_id',
|
||||
'alasan_pembatalan',
|
||||
'file_pembatalan',
|
||||
'status',
|
||||
'keterangan',
|
||||
'authorized_at',
|
||||
'authorized_status',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
'authorized_by',
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'deleted_at',
|
||||
'authorized_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'authorized_status' => 'string',
|
||||
];
|
||||
|
||||
// Relationship with Permohonan
|
||||
public function permohonan()
|
||||
{
|
||||
return $this->belongsTo(Permohonan::class, 'permohonan_id');
|
||||
}
|
||||
|
||||
public function creator(){
|
||||
return $this->belongsTo(User::class, 'created_by');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user