Tambah fitur otorisasi SLA

- Menambahkan view baru untuk otorisasi SLA (`sla.blade.php` dan `index-sla.blade.php`).
- Menambahkan route baru untuk data datatables SLA (`sla.datatables`).
- Mengupdate controller (`PenilaianController`, `SLAController`) untuk mendukung alur otorisasi SLA.
- Menyesuaikan model `Authorization` guna kebutuhan SLA.
This commit is contained in:
Daeng Deni Mardaeni
2025-01-01 22:53:07 +07:00
parent ec247a70ab
commit 0d1d1f58b2
7 changed files with 697 additions and 30 deletions

View File

@@ -8,6 +8,7 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Modules\Lpj\Http\Requests\PenilaianRequest;
use Modules\Lpj\Models\Authorization;
use Modules\Lpj\Models\JenisPenilaian;
use Modules\Lpj\Models\Penilaian;
use Modules\Lpj\Models\PenilaianTeam;
@@ -376,6 +377,9 @@ class PenilaianController extends Controller
$header = $headers[$type] ?? 'Pelaporan';
if($header==='SLA') {
return view('lpj::penilaian.otorisator.index-sla', compact('header'));
}
return view('lpj::penilaian.otorisator.index', compact('header'));
}
@@ -389,14 +393,32 @@ class PenilaianController extends Controller
];
$header = $headers[$type] ?? 'Pelaporan';
$permohonan = Permohonan::find($id);
return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header'));
$authorization=null;
if($header === 'SLA') {
$authorization = Authorization::with(['user'])->find($id);
$permohonan = Permohonan::find($authorization->permohonan_id);
} else {
$permohonan = Permohonan::find($id);
}
if($header === 'SLA') {
return view('lpj::penilaian.otorisator.sla', compact('permohonan', 'header','authorization'));
}
return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header','authorization'));
}
public function otorisatorUpdate(Request $request, $id, $context)
{
$permohonan = Permohonan::find($id);
if($context==='SLA'){
$authorization = Authorization::with(['user'])->find($id);
if (!$authorization) {
return response()->json([
'message' => 'Data authorization SLA tidak ditemukan.',
], 404);
}
$permohonan = Permohonan::find($authorization->permohonan_id);
} else {
$permohonan = Permohonan::find($id);
}
if (!$permohonan) {
return response()->json([
'message' => 'Data permohonan tidak ditemukan.',
@@ -447,13 +469,41 @@ class PenilaianController extends Controller
break;
case 'sla':
if (Auth::user()->roles[0]->name === 'senior-officer') {
$authorization->update([
'status' => '3',
'approve_so' => Auth::user()->id,
'approve_so_at' => now(),
'keterangan_so' => $request->message,
]);
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal' || Auth::user()->roles[0]->name === 'administrator') {
$status = '2';
if(!in_array($permohonan->nulai_plafond_id,[1,4])){
$status = '1';
$permohonan->update([
'status' => $authorization->request
]);
}
$permohonan->update([
'status' => 'proses-sla',
'keterangan' => $request->message,
]);
$authorization->update([
'status' => $status,
'approve_eo' => Auth::user()->id,
'approve_eo_at' => now(),
'keterangan_eo' => $request->message,
]);
} elseif (Auth::user()->roles[0]->name === 'DD Appraisal') {
$authorization->update([
'status' => '1',
'approve_dd' => Auth::user()->id,
'approve_dd_at' => now(),
'keterangan_dd' => $request->message,
]);
$permohonan->update([
'status' => $authorization->request
]);
}
break;
default:
return response()->json([