Perbaiki dan tambahkan fungsi data tambahan di resume

- Ganti penggunaan `forminspeksi` ke `resumeData` untuk konsistensi data.
- Tambahkan dukungan data tambahan dengan input baru untuk `sertifikat`, `luas_tanah`, `luas_bangunan`, dan `nilai`.
- Perbarui script JavaScript untuk menangani data tambahan dan meningkatkan logika pengolahan data JSON.
- Revisi label kesimpulan dari "SESUAI IMB" menjadi "Tambahan".
This commit is contained in:
Daeng Deni Mardaeni
2024-12-29 15:15:05 +07:00
parent c3362821c3
commit b52abe7773

View File

@@ -113,8 +113,8 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Negatif</label> <label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full"> <div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_negatif'])) @if (!empty($resumeData['fakta']['fakta_negatif']))
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif) @foreach ($resumeData['fakta']['fakta_negatif'] as $index => $negatif)
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full"> <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> <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" <button class="btn btn-danger btn-sm remove-btn" type="button"
@@ -125,7 +125,7 @@
@endforeach @endforeach
@else @else
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full"> <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;"> <button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
</button> </button>
@@ -165,6 +165,23 @@
</thead> </thead>
</thead> </thead>
<tbody> <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> <tr>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_sertifikat[]" class="input number-format"> <input type="text" name="fisik_sertifikat[]" class="input number-format">
@@ -173,11 +190,12 @@
<input type="text" name="fisik_luas_tanah[]" class="input number-format"> <input type="text" name="fisik_luas_tanah[]" class="input number-format">
</td> </td>
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]" <td class="text-center"> <input type="text" name="fisik_luas_bangunan[]"
class="input number-format"></td> class="input number-format"></td>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_nilai[]" class="input number-format"> <input type="text" name="fisik_nilai[]" class="input number-format">
</td> </td>
</tr> </tr>
@endif
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -200,6 +218,25 @@
</thead> </thead>
</thead> </thead>
<tbody> <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> <tr>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_sertifikat[]" class="input number-format"> <input type="text" name="sesuai_sertifikat[]" class="input number-format">
@@ -209,17 +246,61 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_luas_bangunan[]" <input type="text" name="sesuai_luas_bangunan[]"
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_nilai[]" class="input number-format"> <input type="text" name="sesuai_nilai[]" class="input number-format">
</td> </td>
</tr> </tr>
@endif
</tbody> </tbody>
</table> </table>
</div> </div>
</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> <div>
<button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()"> <button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
@@ -250,15 +331,14 @@
@endsection @endsection
@include('lpj::surveyor.js.utils') @include('lpj::surveyor.js.utils')
<script type="text/javascript"> <script type="text/javascript">
console.log('LPJ Data:', @json($resumeData)); let counter = 3;
let counter = 1;
function tambahKesimpulanNilai() { function tambahKesimpulanNilai() {
const kesimpulan = document.getElementById('kesimpulan'); const kesimpulan = document.getElementById('kesimpulan');
kesimpulan.innerHTML += ` kesimpulan.innerHTML += `
<div class="grid gap-5 w-full" id="kesimpulan-${counter}"> <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="flex flex-wrap items-baseline w-full">
<div class="tabel-container 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"> <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> <tbody>
<tr> <tr>
<td class="text-center"> <td class="text-center">
<input type="text" name="sertipikat[]" <input type="text" name="tambahan_sertifikat[]"
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="luas_tanah[]" <input type="text" name="tambahan_luas_tanah[]"
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="luat_bangunan[]" <input type="text" name="tambahan_luas_bangunan[]"
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="nilai_pasar_wajar[]" <input type="text" name="tambahan_nilai[]"
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
@@ -397,6 +477,7 @@ console.log('LPJ Data:', @json($resumeData));
}, },
fisik: [], fisik: [],
sesuai_imb: [], sesuai_imb: [],
tambahan:[],
keterangan: "" 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 // Ambil keterangan
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || ""; const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
jsonData.keterangan = keterangan; jsonData.keterangan = keterangan;