Merge branch 'staging' into feature/senior-officer
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
use Modules\Lpj\Models\StatusPermohonan;
|
||||
use Modules\Lpj\Models\TujuanPenilaian;
|
||||
use Modules\Lpj\Services\PermohonanHistoryService;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class PermohonanController extends Controller
|
||||
{
|
||||
@@ -180,6 +181,11 @@
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = Permohonan::query();
|
||||
|
||||
if(!Auth::user()->hasAnyRole(['administrator'])) {
|
||||
$query = $query->where('branch_id', Auth::user()->branch_id);
|
||||
}
|
||||
|
||||
$query = $query->orderBy('nomor_registrasi', 'desc');
|
||||
// Apply search filter if provided
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
|
||||
188
module.json
188
module.json
@@ -12,6 +12,90 @@
|
||||
"app/Helpers/Lpj.php"
|
||||
],
|
||||
"menu": {
|
||||
"otorisator": [
|
||||
{
|
||||
"title": "Permohonan",
|
||||
"path": "authorization",
|
||||
"icon": "ki-filled ki-security-user text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"pemohon-eo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Otorisasi Penawaran",
|
||||
"path": "otorisasitender.penawaran",
|
||||
"icon": "ki-filled ki-brifecase-tick text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Pembayaran",
|
||||
"path": "pembayaran.approval",
|
||||
"icon": "ki-filled ki-ensure text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Pelaporan",
|
||||
"path": "otorisator.pelaporan",
|
||||
"icon": "ki-filled ki-filter-tablet text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Pembatalan",
|
||||
"path": "otorisator.pembatalan",
|
||||
"icon": "ki-filled ki-file-deleted text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "SLA",
|
||||
"path": "otorisator.sla",
|
||||
"icon": "ki-filled ki-calendar-tick text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
}
|
||||
],
|
||||
"main": [
|
||||
{
|
||||
"title": "Permohonan",
|
||||
@@ -110,35 +194,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Otorisasi Tender",
|
||||
"path": "otorisasitender",
|
||||
"icon": "ki-filled ki-brifecase-tick text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
],
|
||||
"sub": [
|
||||
{
|
||||
"title": "Otorisasi Penawaran",
|
||||
"path": "otorisasitender.penawaran",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "SPK",
|
||||
"path": "spk",
|
||||
@@ -175,18 +230,6 @@
|
||||
"pemohon-ao"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Approval Pembayaran",
|
||||
"path": "pembayaran.approval",
|
||||
"icon": "ki-filled ki-ensure text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Data Debitur",
|
||||
"path": "debitur",
|
||||
@@ -200,18 +243,6 @@
|
||||
"pemohon-eo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Authorization",
|
||||
"path": "authorization",
|
||||
"icon": "ki-filled ki-security-user text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"pemohon-eo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Assignment",
|
||||
"path": "penilaian",
|
||||
@@ -236,57 +267,6 @@
|
||||
"senior-officer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Otorisator",
|
||||
"path": "otorisator",
|
||||
"icon": "ki-filled ki-security-user text-lg text-info",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
],
|
||||
"sub": [
|
||||
{
|
||||
"title": "Pelaporan",
|
||||
"path": "otorisator.pelaporan",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Pembatalan",
|
||||
"path": "otorisator.pembatalan",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "SLA",
|
||||
"path": "otorisator.sla",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"senior-officer"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Surveyor",
|
||||
"path": "surveyor",
|
||||
|
||||
@@ -127,8 +127,10 @@
|
||||
render: (item, data) => {
|
||||
if(data.permohonan) {
|
||||
return `${data.permohonan.nomor_registrasi}`;
|
||||
}
|
||||
} else if(data.penawaran) {
|
||||
return `${data.penawaran.permohonan.nomor_registrasi}`;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
},
|
||||
nama_debitur: {
|
||||
@@ -136,8 +138,11 @@
|
||||
render: (item, data) => {
|
||||
if(data.permohonan) {
|
||||
return `${data.permohonan.debiture.name}`;
|
||||
}
|
||||
} else if(data.penawaran) {
|
||||
return `${data.penawaran.permohonan.debiture.name}`;
|
||||
}
|
||||
return '';
|
||||
|
||||
},
|
||||
},
|
||||
cabang: {
|
||||
@@ -145,8 +150,10 @@
|
||||
render: (item, data) => {
|
||||
if(data.permohonan) {
|
||||
return `${data.permohonan.branch.name}`;
|
||||
}
|
||||
} else if(data.penawaran) {
|
||||
return `${data.penawaran.permohonan.branch.name}`;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
},
|
||||
tanggal_setor: {
|
||||
|
||||
@@ -113,8 +113,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||
@if (!empty($forminspeksi['fakta']['fakta_negatif']))
|
||||
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif)
|
||||
@if (!empty($resumeData['fakta']['fakta_negatif']))
|
||||
@foreach ($resumeData['fakta']['fakta_negatif'] as $index => $negatif)
|
||||
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button"
|
||||
@@ -125,7 +125,7 @@
|
||||
@endforeach
|
||||
@else
|
||||
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
|
||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $resumeData['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
@@ -165,6 +165,23 @@
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if(!empty($resumeData['fisik']))
|
||||
@foreach($resumeData['fisik'] as $item)
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="fisik_sertifikat[]" class="input number-format" value="{{ $item['sertifikat'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="fisik_luas_tanah[]" class="input number-format" value="{{ $item['luas_tanah'] }}">
|
||||
</td>
|
||||
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]" value="{{ $item['luas_bangunan'] }}"
|
||||
class="input number-format"></td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="fisik_nilai[]" class="input number-format" value="{{ $item['nilai'] }}">
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@else
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="fisik_sertifikat[]" class="input number-format">
|
||||
@@ -178,6 +195,7 @@
|
||||
<input type="text" name="fisik_nilai[]" class="input number-format">
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -200,6 +218,25 @@
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if(!empty($resumeData['fisik']))
|
||||
@foreach($resumeData['fisik'] as $item)
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sesuai_sertifikat[]" class="input number-format" value="{{ $item['sertifikat'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sesuai_luas_tanah[]" class="input number-format" value="{{ $item['luas_tanah'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sesuai_luas_bangunan[]"
|
||||
class="input number-format" value="{{ $item['luas_bangunan'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sesuai_nilai[]" class="input number-format" value="{{ $item['nilai'] }}">
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@else
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sesuai_sertifikat[]" class="input number-format">
|
||||
@@ -215,11 +252,55 @@
|
||||
<input type="text" name="sesuai_nilai[]" class="input number-format">
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(!empty($resumeData['tambahan']))
|
||||
<div class="gird gap-5">
|
||||
<label class="form-label max-w-56">3. Tambahan</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
|
||||
<table
|
||||
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">Sertipikat</th>
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</th>
|
||||
<th class="text-center">Nilai Pasar Wajar</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if(!empty($resumeData['tambahan']))
|
||||
@foreach($resumeData['tambahan'] as $item)
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="tambahan_sertifikat[]" class="input number-format" value="{{ $item['sertifikat'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="tambahan_luas_tanah[]" class="input number-format" value="{{ $item['luas_tanah'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="tambahan_luas_bangunan[]"
|
||||
class="input number-format" value="{{ $item['luas_bangunan'] }}">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="tambahan_nilai[]" class="input number-format" value="{{ $item['nilai'] }}">
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div>
|
||||
<button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
@@ -250,15 +331,14 @@
|
||||
@endsection
|
||||
@include('lpj::surveyor.js.utils')
|
||||
<script type="text/javascript">
|
||||
console.log('LPJ Data:', @json($resumeData));
|
||||
let counter = 1;
|
||||
let counter = 3;
|
||||
|
||||
function tambahKesimpulanNilai() {
|
||||
const kesimpulan = document.getElementById('kesimpulan');
|
||||
|
||||
kesimpulan.innerHTML += `
|
||||
<div class="grid gap-5 w-full" id="kesimpulan-${counter}">
|
||||
<label class="form-label kesimpulan max-w-56">${counter}. SESUAI IMB</label>
|
||||
<label class="form-label kesimpulan max-w-56">${counter}. Tambahan</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<div class="tabel-container w-full">
|
||||
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
|
||||
@@ -274,19 +354,19 @@ console.log('LPJ Data:', @json($resumeData));
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="sertipikat[]"
|
||||
<input type="text" name="tambahan_sertifikat[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_tanah[]"
|
||||
<input type="text" name="tambahan_luas_tanah[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luat_bangunan[]"
|
||||
<input type="text" name="tambahan_luas_bangunan[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="nilai_pasar_wajar[]"
|
||||
<input type="text" name="tambahan_nilai[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
@@ -397,6 +477,7 @@ console.log('LPJ Data:', @json($resumeData));
|
||||
},
|
||||
fisik: [],
|
||||
sesuai_imb: [],
|
||||
tambahan:[],
|
||||
keterangan: ""
|
||||
};
|
||||
|
||||
@@ -436,6 +517,19 @@ console.log('LPJ Data:', @json($resumeData));
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelectorAll('table tbody tr').forEach(row => {
|
||||
const imbData = {
|
||||
sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "",
|
||||
luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.value || "",
|
||||
luas_bangunan: row.querySelector('input[name="tambahan_luas_bangunan[]"]')?.value || "",
|
||||
nilai: row.querySelector('input[name="tambahan_nilai[]"]')?.value || ""
|
||||
};
|
||||
console.log(imbData);
|
||||
if (imbData.sertifikat) {
|
||||
jsonData.tambahan.push(imbData);
|
||||
}
|
||||
});
|
||||
|
||||
// Ambil keterangan
|
||||
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
|
||||
jsonData.keterangan = keterangan;
|
||||
|
||||
Reference in New Issue
Block a user