🔧 refactor(menu): reorganisasi struktur menu & perbaikan akses role

- Reorganisasi urutan menu, memindahkan "Laporan Penilaian Jaminan" ke posisi pertama & memperbaiki penamaan menu (SO, LPJ, Monitoring, Tender → Permohonan KJPP, dll.)
- Ubah path "laporan-penilaian-jaminan" menjadi "laporan" untuk konsistensi URL
- Pindahkan menu "Data Debitur" sebelum "Permohonan" & "Pembatalan" ke bawah dengan akses terbatas
- Perbaikan role permissions: hapus `admin` & `senior-officer` dari menu tertentu, tambahkan `penilai` & `surveyor` ke menu Penilaian
- Batasi akses menu "Pembatalan" hanya untuk `administrator` & `pemohon-ao`
- Update ActivityController: tambah role `penilai` pada filter user
- Update LaporanPermohonanController: filter status `done` agar hanya tampil permohonan selesai
- Update PermohonanController: hapus kondisi `jenis_penilaian_id` pada logika pembuatan PersetujuanPenawaran, gunakan `Auth::id()` konsisten
- Validasi DebitureRequest: ubah max karakter `nomor_rekening` dari 50 → 10, serta perbaikan indentasi & format JSON di `module.json`
This commit is contained in:
Daeng Deni Mardaeni
2025-09-26 10:49:18 +07:00
parent 929c56b079
commit cd97d184ce
10 changed files with 183 additions and 206 deletions

View File

@@ -55,7 +55,7 @@ class ActivityController extends Controller
->when($teamId, fn ($q) => $q->where('id', $teamId));
})
->where('user_id', '!=', $user->id)
->whereHas('user.roles', fn ($q) => $q->whereIn('name', ['surveyor', 'surveyor-penilai']))
->whereHas('user.roles', fn ($q) => $q->whereIn('name', ['surveyor', 'surveyor-penilai','penilai']))
->get();
$teamId = is_array($teamId) ? $teamId : [$teamId];

View File

@@ -32,6 +32,7 @@
// Retrieve data from the database
$query = Permohonan::query();
$query->where('status','done');
if (!Auth::user()->hasAnyRole(['administrator'])) {
$query = $query->where('branch_id', Auth::user()->branch_id);

View File

@@ -360,15 +360,14 @@
$permohonan->keterangan = $request->keterangan;
$permohonan->save();
if($permohonan->jenis_penilaian_id==1){
$persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $id)->first();
if(!$persetujuanPenawaran){
$persetujuanPenawaran = PersetujuanPenawaran::create([
'permohonan_id' => $id,
'created_by' => auth()->id(),
]);
}
$persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $id)->first();
if(!$persetujuanPenawaran){
$persetujuanPenawaran = PersetujuanPenawaran::create([
'permohonan_id' => $id,
'created_by' => Auth::id(),
]);
}
} catch (Exception $e) {
return redirect()->route('authorization.show', $id)->with('error', 'Failed to update permohonan');
}

View File

@@ -20,7 +20,7 @@
'city_code' => 'nullable|exists:cities,code',
'district_code' => 'nullable|exists:districts,code',
'village_code' => 'nullable|exists:villages,code',
'nomor_rekening' => 'nullable|string|max:50',
'nomor_rekening' => 'nullable|string|max:10',
'name' => 'required',
'registered_at' => 'nullable|date',
'npwp' => 'nullable|string|min:15|max:16',

View File

@@ -13,6 +13,21 @@
],
"menu": {
"laporan": [
{
"title": "Laporan Penilaian Jaminan",
"path": "laporan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao",
"pemohon-eo",
"DD Appraisal",
"EO Appraisal"
]
},
{
"title": "Laporan Permohonan",
"path": "laporan-permohonan",
@@ -47,37 +62,6 @@
"senior-officer"
]
},
{
"title": "Laporan Penilai Jaminan",
"path": "laporan-penilai-jaminan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
},
{
"title": "Laporan Pernilaan Jaminan",
"path": "laporan-penilaian-jaminan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
},
{
"title": "Laporan Hasil Pernilaan Jaminan Internal & External",
"path": "laporan-hasil-penilaian-jaminan-internal-external",
@@ -94,7 +78,7 @@
]
},
{
"title": "Rekap Harian So",
"title": "Rekap Harian SO",
"path": "rekap-harian-so",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
@@ -104,8 +88,9 @@
"administrator",
"senior-officer"
]
}, {
"title": "Laporan Biaya Lpj",
},
{
"title": "Laporan Biaya LPJ",
"path": "laporan-biaya",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
@@ -127,11 +112,11 @@
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
},
{
@@ -142,15 +127,16 @@
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
}
]
},{
},
{
"title": "Laporan Debitur",
"path": "laporan-debiture",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
@@ -175,7 +161,7 @@
]
},
{
"title": "Laporan Monitoring so",
"title": "Laporan Monitoring SO",
"path": "laporan-monitoring",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
@@ -224,7 +210,6 @@
"permission": "",
"roles": [
"administrator",
"senior-officer",
"pemohon-eo"
]
},
@@ -237,7 +222,6 @@
"permission": "",
"roles": [
"administrator",
"admin",
"EO Appraisal",
"DD Appraisal"
]
@@ -251,7 +235,6 @@
"permission": "",
"roles": [
"administrator",
"admin",
"pemohon-eo"
]
},
@@ -307,7 +290,25 @@
"attributes": [],
"permission": "",
"roles": [
"administrator"
"administrator",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer",
"penilai",
"surveyor"
]
},
{
"title": "Data Debitur",
"path": "debitur",
"icon": "ki-filled ki-people text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao"
]
},
{
@@ -323,19 +324,7 @@
]
},
{
"title": "Pembatalan",
"path": "pembatalan",
"icon": "ki-filled ki-file-deleted text-lg text-danger",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao"
]
},
{
"title": "Persetujuan Penawaran",
"title": "Persetujuan Penawaran KJPP",
"path": "persetujuan-penawaran",
"icon": "ki-filled ki-double-check text-lg text-info",
"classes": "",
@@ -347,7 +336,7 @@
]
},
{
"title": "Pembayaran",
"title": "Biaya Appraisal",
"path": "pembayaran",
"icon": "ki-filled ki-credit-cart text-lg text-primary",
"classes": "",
@@ -410,6 +399,18 @@
}
]
},
{
"title": "Pembatalan",
"path": "pembatalan",
"icon": "ki-filled ki-file-deleted text-lg text-danger",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao"
]
},
{
"title": "Admin Kredit",
"path": "admin-kredit",
@@ -419,48 +420,49 @@
"permission": "",
"roles": [
"administrator",
"admin",
"adk"
],
"sub": [{
"title": "SLIK",
"path": "admin-kredit.slik",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
},
{
"title": "Laporan Admin Kredit",
"path": "admin-kredit.laporan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
},
{
"title": "Laporan SLIK",
"path": "admin-kredit.laporan-slik",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
}]
"sub": [
{
"title": "SLIK",
"path": "admin-kredit.slik",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
},
{
"title": "Laporan Admin Kredit",
"path": "admin-kredit.laporan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
},
{
"title": "Laporan SLIK",
"path": "admin-kredit.laporan-slik",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"adk",
"administrator",
"admin"
]
}
]
},
{
"title": "NOC",
@@ -471,7 +473,6 @@
"permission": "",
"roles": [
"administrator",
"admin",
"noc"
],
"sub": [
@@ -528,7 +529,7 @@
]
},
{
"title": "Tender",
"title": "Permohonan KJPP",
"path": "tender",
"icon": "ki-filled ki-briefcase text-lg text-primary",
"classes": "",
@@ -560,57 +561,45 @@
"administrator",
"admin"
]
},
{
"title": "SPK",
"path": "spk",
"icon": "ki-filled ki-document text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
},
{
"title": "Registrasi Final",
"path": "registrasifinal",
"icon": "ki-filled ki-file-added text-lg text-success",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
},
{
"title": "Laporan External",
"path": "laporan-external",
"icon": "ki-filled ki-document text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
}
]
},
{
"title": "SPK",
"path": "spk",
"icon": "ki-filled ki-document text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
},
{
"title": "Laporan External",
"path": "laporan-external",
"icon": "ki-filled ki-document text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
},
{
"title": "Registrasi Final",
"path": "registrasifinal",
"icon": "ki-filled ki-file-added text-lg text-success",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"admin"
]
},
{
"title": "Data Debitur",
"path": "debitur",
"icon": "ki-filled ki-people text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao"
]
},
{
"title": "Assignment",
"path": "penilaian",
@@ -644,7 +633,8 @@
"permission": "",
"roles": [
"administrator",
"surveyor"
"surveyor",
"penilai"
]
},
{
@@ -658,6 +648,7 @@
"administrator",
"admin",
"surveyor",
"penilai",
"senior-officer",
"EO Appraisal",
"DD Appraisal"
@@ -672,42 +663,9 @@
"permission": "",
"roles": [
"administrator",
"penilai",
"surveyor"
]
},
{
"title": "Resume dan Laporan",
"path": "laporan",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao",
"pemohon-eo",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
},
{
"title": "Daftar Pustaka",
"path": "daftar-pustaka",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao",
"pemohon-eo",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
}
],
"master": [
@@ -1265,6 +1223,24 @@
]
}
],
"system": []
"system": [
{
"title": "Daftar Pustaka",
"path": "daftar-pustaka",
"icon": "ki-filled ki-filter-tablet text-lg text-primary",
"classes": "",
"attributes": [],
"permission": "",
"roles": [
"administrator",
"pemohon-ao",
"pemohon-eo",
"admin",
"DD Appraisal",
"EO Appraisal",
"senior-officer"
]
}
]
}
}

View File

@@ -85,7 +85,7 @@
@enderror
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<div class="flex hidden flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Email
</label>
@@ -111,7 +111,7 @@
</div>
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="gap-1 form-label max-w-56">
Alamat
Alamat KTP
<span class="text-danger">
*
</span>

View File

@@ -45,7 +45,8 @@
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="nomor_tiket" id="nomor_tiket"
class="input w-full @error('nomor_tiket') border-danger bg-danger-light @enderror"
value="{{ old('nomor_tiket', $permohonan->nomor_tiket ?? '') }}" placeholder="Nomor Tiket">
value="{{ old('nomor_tiket', $persetujuanPenawaran->nomor_tiket ?? '') }}"
placeholder="Nomor Tiket">
@error('nomor_tiket')
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror

View File

@@ -218,7 +218,7 @@
<div class="flex flex-wrap gap-2.5 items-baseline mt-2 w-full lg:flex-nowrap card-footer">
<div class="flex gap-5">
<a class="btn btn-primary"
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&jaminanId={{ $dokumen->jenis_jaminan_id }}&header={{ request('header') }}">
Lampiran Foto dan Dokumen
</a>
@if ($permohonan->status != 'freeze')

View File

@@ -9,7 +9,7 @@
<div class="pb-2.5 border card border-agi-100">
<div class="card-header bg-agi-50" id="basic_settings">
<div class="flex flex-row gap-1.5 card-title">
Persetujuan Penawaranaa
Persetujuan Penawaranan KJPP
</div>
<div class="flex gap-2 items-center">
<a href="{{ route('persetujuan-penawaran.index') }}" class="btn btn-xs btn-info"><i

View File

@@ -9,7 +9,7 @@
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10" data-datatable-state-save="false" id="persetujuan-penawaran-table" data-api-url="{{ route('persetujuan-penawaran.datatables') }}">
<div class="card-header bg-agi-50 py-5 flex-wrap">
<h3 class="card-title">
Daftar Persetujuan Penawaran
Daftar Persetujuan Penawaran KJPP
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">