fix(suveyor/penilai/so): perbaikan print out, form survey dan laporan dan paparan

This commit is contained in:
majid
2025-02-26 05:07:25 +07:00
parent 2045da36d8
commit 7766d127e0
21 changed files with 1317 additions and 550 deletions

View File

@@ -116,14 +116,14 @@
<td>Tusuk Sate</td>
<td>:</td>
<td>
{{ $forminspeksi['tanah']['tusuk_sate'] == 'yes' ? 'Ya' : 'Tidak' }}
{{ isset($forminspeksi['tanah']['tusuk_sate']) && $forminspeksi['tanah']['tusuk_sate'] == 'yes' ? 'Ya' : 'Tidak' }}
</td>
</tr>
<tr>
<td>Lockland</td>
<td>:</td>
<td>
{{ $forminspeksi['tanah']['lockland'] == 'yes' ? 'Ya' : 'Tidak' }}
{{ isset($forminspeksi['tanah']['lockland']) && $forminspeksi['tanah']['lockland'] == 'yes' ? 'Ya' : 'Tidak' }}
</td>
</tr>
<tr>

View File

@@ -178,8 +178,8 @@
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_positif'])
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
@isset($forminspeksi['fakta']['fakta_positif'])
@foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@@ -195,8 +195,8 @@
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_negatif'])
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
@isset($forminspeksi['fakta']['fakta_negatif'])
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@@ -226,13 +226,13 @@
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;">
@foreach ($resumeData['fisik'] as $item)
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Tanah</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Bangunan</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Pasar Wajar</td>
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Tanah</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Bangunan</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Pasar Wajar</td>
</tr>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">{{ $item['sertifikat'] ?? '' }}
</td>
@@ -323,9 +323,14 @@
<h6 style="text-transform: uppercase; margin: 0; ">lain lain</h2>
</td>
</tr>
<tr>
<td>{!! nl2br(e($resumeData['keterangan'] ?? '')) !!}</td>
</tr>
@isset($forminspeksi['fakta']['keterangan'])
@foreach ($forminspeksi['fakta']['keterangan'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
@endisset
</table>
<table style="width: 100%">

View File

@@ -21,9 +21,30 @@
}
</style>
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@php
$paparan = $permohonan->status === 'proses-paparan' ? 'Paparan' : 'Pelaporan';
@endphp
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto ">
<form id="formResume" method="POST" class="w-full grid gap-5">
@csrf
@foreach ($permohonan->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@php
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
$jenisAset = $dokumen->jenisJaminan->name;
@endphp
@if (isset($formKategori) && $formKategori)
@php
$kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori];
$kategoriUnik = array_unique($kategoriArray);
@endphp
<input type="hidden" name="action" value="{{ implode(',', $kategoriUnik) }}">
<input type="hidden" name="type" value="{{ implode(',', $kategoriUnik) }}">
@endif
@endif
@endforeach
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
@@ -36,7 +57,7 @@
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
Route::currentRouteName('otorisator.show'))
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => 'Pelaporan']) }}"
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => $paparan]) }}"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@@ -109,7 +130,7 @@
</div>
</div>
</div>
<div class="card">
<div class="card ">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
faktor
@@ -119,10 +140,10 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($resumeData['fakta']['fakta_positif']))
@foreach ($resumeData['fakta']['fakta_positif'] as $index => $positif)
@if (!empty($forminspeksi['fakta']['fakta_positif']))
@foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif)
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old("fakta_positif.$index", $positif) }}</textarea>
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -131,7 +152,7 @@
@endforeach
@else
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', '') }}</textarea>
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
@@ -147,10 +168,10 @@
<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($resumeData['fakta']['fakta_negatif']))
@foreach ($resumeData['fakta']['fakta_negatif'] as $index => $negatif)
@if (!empty($forminspeksi['fakta']['fakta_negatif']))
@foreach ($forminspeksi['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>
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -159,7 +180,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', $resumeData['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['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>
@@ -176,7 +197,7 @@
</div>
<div class="card border border-agi-100 min-w-full">
<div class="card border border-agi-100 min-w-full ">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
KESIMPULAN NILAI PASAR WAJAR
@@ -184,7 +205,7 @@
</div>
<div class="card-body grid gap-5">
<div class="gird gap-5">
<div class="gird gap-5 ">
<label class="form-label max-w-56">SESUAI FISIK</label>
<div class="flex flex-wrap items-baseline w-full mt-5">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm">
@@ -216,7 +237,7 @@
<td class="text-center">
<input type="text" name="fisik_nilai[]"
class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}" >
value="{{ $item['nilai'] }}">
</td>
</tr>
@@ -266,8 +287,7 @@
class="input number-format" value="{{ $luas_bangunan }}"></td>
<td class="text-center">
<input type="text" name="fisik_nilai[]"
class="input currency-format nilai-pasar"
>
class="input currency-format nilai-pasar">
</td>
</tr>
@@ -277,7 +297,7 @@
</div>
</div>
<div class="gird gap-5">
<div class="gird gap-5 ">
<label class="form-label max-w-56">SESUAI IMB</label>
<div class="flex flex-wrap items-baseline w-full">
@@ -312,7 +332,7 @@
<td class="text-center">
<input type="text" name="sesuai_nilai[]"
class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}" >
value="{{ $item['nilai'] }}">
</td>
</tr>
@@ -332,8 +352,8 @@
class="input number-format">
</td>
<td class="text-center">
<input type="text" name="sesuai_nilai[]" class="input currency-format"
>
<input type="text" name="sesuai_nilai[]"
class="input currency-format">
</td>
</tr>
@@ -345,7 +365,7 @@
@if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $counter => $item)
<div id="kesimpulan" class="gird gap-5">
<div id="kesimpulan" class="gird gap-5 ">
<div class="flex flex-wrap items-baseline w-full">
@@ -385,7 +405,7 @@
<td class="text-center">
<input type="text" name="tambahan_nilai[]"
class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}" >
value="{{ $item['nilai'] }}">
</td>
</tr>
@@ -397,7 +417,7 @@
@endforeach
@endif
<div id="kesimpulan" class="grid gap-5 w-full"></div>
<div>
<div class="">
<button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()">
<i class="ki-outline ki-plus"></i>
Kesimpulan Nilai
@@ -406,12 +426,37 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 " style="margin-top: 20px ">
<label class="form-label lg:form-label max-w-56 ">Catatan yang Perlu Diperhatikan
</label>
<div class="input-group w-full flex gap-2">
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $resumeData['keterangan'] ?? '') }}</textarea>
<div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
@if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $index => $item)
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
</div>
@endforeach
@else
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
</div>
@endif
</div>
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
class="btn btn-primary btn-sm mt-5 ">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
@@ -444,9 +489,12 @@
</div>
<div class="flex card-footer justify-end gap-5">
<button type="button" class="btn btn-primary" onclick="saveResume()">
<i class="ki-filled ki-save-2"></i>
Save</button>
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
<a class="btn btn-info"
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
@@ -570,6 +618,23 @@
const permohonanId = urlParams.get('permohonanId');
const documentId = urlParams.get('documentId');
const inspeksiId = urlParams.get('inspeksiId');
const faktaPositif = Array.from(document.querySelectorAll('[name="fakta_positif[]"]'))
.map(textarea => textarea.value.trim())
.filter(value => value !== '');
const faktaNegatif = Array.from(document.querySelectorAll('[name="fakta_negatif[]"]'))
.map(textarea => textarea.value.trim())
.filter(value => value !== '');
const keterangan = Array.from(document.querySelectorAll('[name="keterangan[]"]'))
.map(textarea => textarea.value.trim())
.filter(value => value !== '');
const action = Array.from(document.querySelectorAll('input[name="action"]'))
.map(input => input.value)
.join(',') || "";
const type = Array.from(document.querySelectorAll('input[name="type"]'))
.map(input => input.value)
.join(',') || "";
const requestUrl =
`{{ route('penilai.storeResume') }}`;
@@ -580,9 +645,15 @@
type: 'POST',
data: JSON.stringify({
permohonan_id: permohonanId,
document_id: documentId,
dokument_id: documentId,
inspeksi_id: inspeksiId,
resume: jsonData,
fakta_positif: faktaPositif,
fakta_negatif: faktaNegatif,
action: action,
type: type,
keterangan: keterangan
}),
contentType: 'application/json',
@@ -634,26 +705,13 @@
const formData = new FormData(formElement);
const jsonData = {
tanggal_resume: "",
fakta: {
fakta_positif: [],
fakta_negatif: []
},
fisik: [],
sesuai_imb: [],
tambahan: [],
keterangan: ""
tambahan: []
};
// Ambil fakta positif
document.querySelectorAll('textarea[name="fakta_positif[]"]').forEach(textarea => {
jsonData.fakta.fakta_positif.push(textarea.value);
});
// Ambil fakta negatif
document.querySelectorAll('textarea[name="fakta_negatif[]"]').forEach(textarea => {
jsonData.fakta.fakta_negatif.push(textarea.value);
});
// Ambil data fisik
document.querySelectorAll('table tbody tr').forEach(row => {
@@ -696,10 +754,6 @@
}
});
// Ambil keterangan
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
jsonData.keterangan = keterangan;
const tanggal_resume = formElement.querySelector('input[name="tanggal_resume"]')?.value || "";
jsonData.tanggal_resume = tanggal_resume;
@@ -719,9 +773,4 @@
}
});
});
</script>