🎨 feat(ui-noc): tambah field nomor rekening lebih bayar & perbaikan styling konsistensi Tailwind

- Form NOC: tambah field nomor rekening lebih bayar (input number, readonly jika ada memo, hidden default, support old value & error handling)
- Foto Lampiran: ubah layout jadi grid 4 kolom dengan shadow & hover effect, perbaikan urutan class Tailwind & judul kategori lebih prominent
- Foto Lampiran: optimasi class container (relative, overflow-hidden, flex) & perbaikan spacing array $fotoTypes
- LPJ Sederhana Standar: konsistensi class grid/flex/input-group, role 'penilai' ditambahkan untuk akses tombol simpan, perbaikan kondisi disabled button
- Resume: optimasi class grid, flex, card-body, card-title, text, dan konsistensi urutan Tailwind di seluruh komponen
- Konsistensi class: perbaikan di form, foto-lampiran, lpj-standar, resume agar mengikuti urutan Tailwind (layout → sizing → styling)
- Struktur HTML: dirapikan untuk layout yang lebih responsif & semantik, dengan grid/flex yang lebih optimal
- UX: tampilan foto lebih rapi, form lebih mudah digunakan, role-based access lebih jelas, field tambahan untuk kebutuhan bisnis
- Dampak: data NOC lebih lengkap (tracking rekening lebih bayar), styling konsisten, UX meningkat, kode lebih maintainable
This commit is contained in:
Daeng Deni Mardaeni
2025-09-26 10:57:06 +07:00
parent a1b9b7af86
commit 112262d7d6
5 changed files with 174 additions and 147 deletions

View File

@@ -224,6 +224,23 @@
</div> </div>
</div> </div>
<!-- Field Nominal Lebih Bayar -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" id="nomor_rekening_lebih_bayar_section"
style="display: none;">
<label class="form-label max-w-56">
Nomor Rekening Lebih Bayar
</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="number" name="nomor_rekening_lebih_bayar" id="nomor_rekening_lebih_bayar"
class="input w-full @error('nomor_rekening_lebih_bayar') border-danger bg-danger-light @enderror"
value="{{ old('nomor_rekening_lebih_bayar', $persetujuanPenawaran->noc->nomor_rekening_lebih_bayar ?? '') }}"
placeholder="Masukkan nominal lebih bayar" {{ $hasMemo ? 'readonly' : '' }}>
@error('nomor_rekening_lebih_bayar')
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
<!-- Field Bukti Pengembalian --> <!-- Field Bukti Pengembalian -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" id="bukti_pengembalian_section" <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" id="bukti_pengembalian_section"
style="display: none;"> style="display: none;">

View File

@@ -12,30 +12,30 @@
@else @else
@foreach ($groupedPhotos as $category => $photos) @foreach ($groupedPhotos as $category => $photos)
<div class="mt-5"> <div class="mt-5">
<h2 class="text-gray-800 font-bold text-xl mb-3">{{ $category ?? 'Tanpa Kategori' }}</h2> <h2 class="mb-3 text-xl font-bold text-gray-800">{{ $category ?? 'Tanpa Kategori' }}</h2>
<div class="card border rounded-lg shadow-lg p-4"> <div class="p-4 rounded-lg border shadow-lg card">
<!-- Carousel Container --> <!-- Carousel Container -->
<div class="relative w-full overflow-hidden"> <div class="overflow-hidden relative w-full">
<div class="flex transition-transform duration-500 ease-in-out" id="carousel-{{ $category }}"> <div class="flex transition-transform duration-500 ease-in-out" id="carousel-{{ $category }}">
<span class="absolute top-0 right-2 text-white"> <span class="absolute top-0 right-2 text-white">
<i class="ki-filled ki-maximize"></i> <i class="ki-filled ki-maximize"></i>
</span> </span>
@foreach ($photos as $index => $item) @foreach ($photos as $index => $item)
<div class="min-w-full flex flex-col items-center hover:cursor-pointer" <div class="flex flex-col items-center min-w-full hover:cursor-pointer"
onclick="openPreview('{{ asset('storage/' . $item['path']) }}', '{{ $item['name'] }}', '{{ $item['description'] }}')"> onclick="openPreview('{{ asset('storage/' . $item['path']) }}', '{{ $item['name'] }}', '{{ $item['description'] }}')">
<div class="w-full overflow-hidden rounded-md" style="height: 500px;"> <div class="overflow-hidden w-full rounded-md" style="height: 500px;">
@if (isset($item['path'])) @if (isset($item['path']))
<img src="{{ asset('storage/' . $item['path']) }}" <img src="{{ asset('storage/' . $item['path']) }}"
alt="Gambar {{ $index + 1 }}" class="w-full h-full object-cover"> alt="Gambar {{ $index + 1 }}" class="object-cover w-full h-full">
@else @else
<p class="text-gray-500">Gambar tidak tersedia</p> <p class="text-gray-500">Gambar tidak tersedia</p>
@endif @endif
</div> </div>
<h3 class="text-gray-600 font-semibold text-lg mt-3"> <h3 class="mt-3 text-lg font-semibold text-gray-600">
{{ $item['name'] ?? 'Foto - ' . ($index + 1) }} {{ $item['name'] ?? 'Foto - ' . ($index + 1) }}
</h3> </h3>
<p class="text-gray-500 text-sm mt-1">{{ $item['description'] ?? '-' }}</p> <p class="mt-1 text-sm text-gray-500">{{ $item['description'] ?? '-' }}</p>
</div> </div>
@endforeach @endforeach
@@ -43,12 +43,12 @@
<!-- Navigation Buttons --> <!-- Navigation Buttons -->
<button <button
class="absolute top-1/2 left-0 transform -translate-y-1/2 bg-gray-800 text-white rounded-full p-2 focus:outline-none" class="absolute left-0 top-1/2 p-2 text-white bg-gray-800 rounded-full transform -translate-y-1/2 focus:outline-none"
onclick="prevSlide('{{ $category }}')"> onclick="prevSlide('{{ $category }}')">
<i class="ki-outline ki-left-square"></i> <i class="ki-outline ki-left-square"></i>
</button> </button>
<button <button
class="absolute top-1/2 right-0 transform -translate-y-1/2 bg-gray-800 text-white rounded-full p-2 focus:outline-none" class="absolute right-0 top-1/2 p-2 text-white bg-gray-800 rounded-full transform -translate-y-1/2 focus:outline-none"
onclick="nextSlide('{{ $category }}')"> onclick="nextSlide('{{ $category }}')">
<i class="ki-outline ki-right-square"></i> <i class="ki-outline ki-right-square"></i>
</button> </button>
@@ -87,12 +87,12 @@
previewModal.className = 'fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50'; previewModal.className = 'fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50';
previewModal.innerHTML = ` previewModal.innerHTML = `
<div class="relative"> <div class="relative">
<h3 class="text-white font-semibold text-lg mt-3 text-center">${name}</h3> <h3 class="mt-3 text-lg font-semibold text-center text-white">${name}</h3>
<img src="${imagePath}" class="max-w-full max-h-screen object-contain"> <img src="${imagePath}" class="object-contain max-w-full max-h-screen">
<button class="absolute top-2 right-2 bg-red-500 text-white rounded-full p-2" <button class="absolute top-2 right-2 p-2 text-white bg-red-500 rounded-full"
onclick="closePreview(this)">×</button> onclick="closePreview(this)">×</button>
<p class="text-white text-sm mt-1">${description}</p> <p class="mt-1 text-sm text-white">${description}</p>
</div> </div>
`; `;
document.body.appendChild(previewModal); document.body.appendChild(previewModal);
@@ -139,27 +139,30 @@
@if ($adaFoto) @if ($adaFoto)
<div class="card"> <div class="card">
<div class="card-header bg-agi-50" id="basic_settings"> <div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title uppercase"> <h3 class="uppercase card-title">
GS, Tata Ruang dan Peta GS, Tata Ruang dan Peta
</h3> </h3>
</div> </div>
<div class="card-body"> <div class="card-body">
<div> <div class="grid grid-cols-1 gap-4 lg:grid-cols-4">
@if (isset($forminspeksi)) @if (isset($forminspeksi))
@forelse ($fotoTypes as $type) @forelse ($fotoTypes as $type)
<div class="border photo-item"> <div class="mb-4">
<h4 class="mb-2 text-lg font-semibold text-center text-gray-800">
{{ $customLabels[$type] ?? '' }}</h4>
<div class="p-4 rounded-lg border shadow transition-shadow photo-item hover:shadow-lg">
@php @php
$imagePath = $forminspeksi[$type] ?? null; $imagePath = $forminspeksi[$type] ?? null;
@endphp @endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath))) @if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}" <img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}"
class="w-full h-auto object-cover"> class="object-cover w-full h-auto rounded">
@endif @endif
<p class="mt-2 text-sm">{{ $customLabels[$type] ?? '' }}</p> </div>
</div> </div>
@empty @empty
<p>Tidak ada tipe foto yang tersedia</p> <p class="col-span-3 text-center text-gray-500">Tidak ada tipe foto yang tersedia</p>
@endforelse @endforelse
@endif @endif
</div> </div>

View File

@@ -21,17 +21,17 @@
} }
</style> </style>
@include('lpj::assetsku.includenya') @include('lpj::assetsku.includenya')
<form id="form-lpj" method="post" class="w-full grid gap-5"> <form id="form-lpj" method="post" class="grid gap-5 w-full">
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}"> <input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}"> <input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}"> <input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
<input type="hidden" id="lpj-data" value="{{ json_encode($lpjData ?? []) }}" /> <input type="hidden" id="lpj-data" value="{{ json_encode($lpjData ?? []) }}" />
@include('lpj::component.form-penilai') @include('lpj::component.form-penilai')
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">DISCLAIMER <label class="form-label lg:form-label max-w-56">DISCLAIMER
</label> </label>
<div class="input-group w-full flex gap-2"> <div class="flex gap-2 w-full input-group">
<ol class="list-decimal pl-5 space-y-2"> <ol class="pl-5 space-y-2 list-decimal">
<li>PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG BERLAKU DI SUBDIT APPRAISAL</li> <li>PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG BERLAKU DI SUBDIT APPRAISAL</li>
<li>LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA <li>LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA
TERSEBUT SESUAI DENGAN DOKUMEN ASLINYA</li> TERSEBUT SESUAI DENGAN DOKUMEN ASLINYA</li>
@@ -43,9 +43,10 @@
</ol> </ol>
</div> </div>
</div> </div>
<div class="flex card-footer justify-end gap-5"> <div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator', 'penilai']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}> <button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i> <i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span> <span id="saveButtonText">Simpan</span>
</button> </button>
@@ -55,8 +56,8 @@
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1"> href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
Lampiran Foto dan Dokumen Lampiran Foto dan Dokumen
</a> </a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light" <a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
> class="btn btn-light">
<i class="ki-filled ki-printer"></i> Cetak Hasil Inspeksi <i class="ki-filled ki-printer"></i> Cetak Hasil Inspeksi
</a> </a>
<a class="btn btn-success" <a class="btn btn-success"

View File

@@ -24,9 +24,9 @@
@php @php
$paparan = $permohonan->status === 'proses-paparan' ? 'Paparan' : 'Pelaporan'; $paparan = $permohonan->status === 'proses-paparan' ? 'Paparan' : 'Pelaporan';
@endphp @endphp
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto "> <div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<form id="formResume" method="POST" class="w-full grid gap-5"> <form id="formResume" method="POST" class="grid gap-5 w-full">
@csrf @csrf
@foreach ($permohonan->documents as $dokumen) @foreach ($permohonan->documents as $dokumen)
@@ -47,13 +47,13 @@
@endforeach @endforeach
<div class="card"> <div class="card">
<div class="card-header bg-agi-50"> <div class="card-header bg-agi-50">
<h3 class="card-title uppercase"> <h3 class="uppercase card-title">
Data Jaminan Data Jaminan
</h3> </h3>
@php @php
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@endphp @endphp
<div class="flex items-center gap-2"> <div class="flex gap-2 items-center">
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) && @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
Route::currentRouteName('otorisator.show')) Route::currentRouteName('otorisator.show'))
@@ -69,62 +69,62 @@
</div> </div>
</div> </div>
<div class="card-body grid gap-5 grid-cols-2"> <div class="grid grid-cols-2 gap-5 card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nama Debitur</label> <label class="form-label max-w-56">Nama Debitur</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->debiture)) @if (isset($permohonan->debiture))
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p> <p class="text-gray-700 text-2sm">{{ $permohonan->debiture->name }}</p>
@endif @endif
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Alamat Object</label> <label class="form-label max-w-56">Alamat Object</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@foreach ($permohonan->documents as $dokumen) @foreach ($permohonan->documents as $dokumen)
<span class="text-2sm text-gray-700"> <span class="text-gray-700 text-2sm">
{{ formatAlamat($dokumen->pemilik) }} {{ formatAlamat($dokumen->pemilik) }}
</span> </span>
@endforeach @endforeach
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Registrasi</label> <label class="form-label max-w-56">Nomor Registrasi</label>
<div class="flex flex-wrap items-base line w-full"> <div class="flex flex-wrap w-full items-base line">
<p class="text-2sm text-gray-700">{{ $permohonan->nomor_registrasi }}</p> <p class="text-gray-700 text-2sm">{{ $permohonan->nomor_registrasi }}</p>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Cab/Direktorat</label> <label class="form-label max-w-56">Cab/Direktorat</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->branch)) @if (isset($permohonan->branch))
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p> <p class="text-gray-700 text-2sm">{{ $permohonan->branch->name }}</p>
@endif @endif
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Laporan</label> <label class="form-label max-w-56">Nomor Laporan</label>
<div class="flex flex-wrap items-base line w-full"> <div class="flex flex-wrap w-full items-base line">
<p class="text-2sm text-gray-700">{{ $nomorLaporan ?? '' }}</p> <p class="text-gray-700 text-2sm">{{ $nomorLaporan ?? '' }}</p>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">AO</label> <label class="form-label max-w-56">AO</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@if (isset($permohonan->user)) @if (isset($permohonan->user))
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p> <p class="text-gray-700 text-2sm">{{ $permohonan->user->name }}</p>
@endif @endif
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal Resume</label> <label class="form-label max-w-56">Tanggal Resume</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal_resume" class="input w-full" placeholder="Masukkan..." <input type="date" name="tanggal_resume" class="w-full input" placeholder="Masukkan..."
value="{{ $resumeData['tanggal_resume'] ?? '' }}"> value="{{ $resumeData['tanggal_resume'] ?? '' }}">
</div> </div>
</div> </div>
@@ -132,18 +132,18 @@
</div> </div>
<div class="card"> <div class="card">
<div class="card-header bg-agi-50"> <div class="card-header bg-agi-50">
<h3 class="card-title uppercase"> <h3 class="uppercase card-title">
faktor faktor
</h3> </h3>
</div> </div>
<div class="card-body grid gap-5"> <div class="grid gap-5 card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Faktor Positif</label> <label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full"> <div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_positif'])) @if (!empty($forminspeksi['fakta']['fakta_positif']))
@foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif) @foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif)
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea> <textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" <button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;"> style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
@@ -151,27 +151,27 @@
</div> </div>
@endforeach @endforeach
@else @else
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea> <textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old('fakta_positif.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>
</div> </div>
@endif @endif
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')"> onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<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($forminspeksi['fakta']['fakta_negatif']))
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif) @foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif)
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea> <textarea class="mt-2 textarea" name="fakta_negatif[]" rows="10">{{ 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"
style="display: none;"> style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
@@ -179,15 +179,15 @@
</div> </div>
@endforeach @endforeach
@else @else
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea> <textarea class="mt-2 textarea" 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;"> <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>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em> <em id="error-fakta_negatif" class="text-sm alert text-danger"></em>
</div> </div>
@endif @endif
<button type="button" class="btn btn-primary btn-sm mt-5" <button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')"> onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
@@ -197,18 +197,18 @@
</div> </div>
<div class="card border border-agi-100 min-w-full "> <div class="min-w-full border card border-agi-100">
<div class="card-header bg-agi-50"> <div class="card-header bg-agi-50">
<h3 class="card-title uppercase"> <h3 class="uppercase card-title">
KESIMPULAN NILAI PASAR WAJAR KESIMPULAN NILAI PASAR WAJAR
</h3> </h3>
</div> </div>
<div class="card-body grid gap-5"> <div class="grid gap-5 card-body">
<div class="gird gap-5 "> <div class="gap-5 gird">
<label class="form-label max-w-56">SESUAI FISIK</label> <label class="form-label max-w-56">SESUAI FISIK</label>
<div class="flex flex-wrap items-baseline w-full mt-5"> <div class="flex flex-wrap items-baseline mt-5 w-full">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"> <table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border">
<thead> <thead>
<tr> <tr>
<th class="text-center">Sertipikat</th> <th class="text-center">Sertipikat</th>
@@ -299,12 +299,12 @@
@if (!empty($resumeData['tambahan'])) @if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $counter => $item) @foreach ($resumeData['tambahan'] as $counter => $item)
<div id="kesimpulan" class="gird gap-5 "> <div id="kesimpulan" class="gap-5 gird">
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<table <table
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5"> class="table mt-5 text-sm font-medium text-gray-700 align-middle table-auto table-border">
<input class="input" name="tambahan_nama_kesimpulan[]" <input class="input" name="tambahan_nama_kesimpulan[]"
placeholder="Masukkan Nama Kesimpulan" type="text" placeholder="Masukkan Nama Kesimpulan" type="text"
value="{{ $item['tambahan_nama_kesimpulan'] ?? '' }}"> value="{{ $item['tambahan_nama_kesimpulan'] ?? '' }}">
@@ -352,23 +352,23 @@
@endif @endif
<div id="kesimpulan" class="grid gap-5 w-full"></div> <div id="kesimpulan" class="grid gap-5 w-full"></div>
<div class=""> <div class="">
<button type="button" class="btn btn-primary btn-sm mt-5" onclick="tambahKesimpulanNilai()"> <button type="button" class="mt-5 btn btn-primary btn-sm" onclick="tambahKesimpulanNilai()">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
Kesimpulan Nilai Kesimpulan Nilai
</button> </button>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 " style="margin-top: 20px "> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px ">
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan <label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label> </label>
<div class="w-full"> <div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full"> <div id="keterangan-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
@if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan'])) @if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $index => $item) @foreach ($forminspeksi['fakta']['keterangan'] as $index => $item)
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea> <textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" <button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;"> style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
@@ -376,27 +376,27 @@
</div> </div>
@endforeach @endforeach
@else @else
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full"> <div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10"></textarea> <textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button" <button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;"> style="display: none;">
<i class="ki-outline ki-trash"></i> <i class="ki-outline ki-trash"></i>
</button> </button>
<em id="error-keterangan" class="alert text-danger text-sm"></em> <em id="error-keterangan" class="text-sm alert text-danger"></em>
</div> </div>
@endif @endif
</div> </div>
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')" <button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
class="btn btn-primary btn-sm mt-5 "> class="mt-5 btn btn-primary btn-sm">
<i class="ki-outline ki-plus"></i> <i class="ki-outline ki-plus"></i>
</button> </button>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px"> <div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">DISCLAIMER <label class="form-label lg:form-label max-w-56">DISCLAIMER
</label> </label>
<div class="input-group w-full flex gap-2"> <div class="flex gap-2 w-full input-group">
<ol class="list-decimal pl-5 space-y-2"> <ol class="pl-5 space-y-2 list-decimal">
<li>LAPORAN RESUME INI DIKELUARKAN DIKARENAKAN BELUM DILAKUKANNYA PEMBAYARAN BIAYA PENILAIAN <li>LAPORAN RESUME INI DIKELUARKAN DIKARENAKAN BELUM DILAKUKANNYA PEMBAYARAN BIAYA PENILAIAN
JAMINAN JAMINAN
</li> </li>
@@ -421,18 +421,20 @@
</div> </div>
</div> </div>
<div class="flex card-footer justify-end gap-5"> <div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" onclick="saveResume()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}> <button type="button" class="btn btn-primary" onclick="saveResume()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i> <i class="ki-filled ki-save-2"></i>
Simpan</button> Simpan</button>
@endif @endif
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
<a class="btn btn-info" <a class="btn btn-info"
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1"> href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLp
Lampiran Foto dan Dokumen j=1&statusLpj=1&header={{ request('header') }}">Lampiran
Foto dan Dokumen
</a> </a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" <a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
class="btn btn-light"> class="btn btn-light">
@@ -459,12 +461,12 @@
const kesimpulan = document.getElementById('kesimpulan'); const kesimpulan = document.getElementById('kesimpulan');
kesimpulan.innerHTML += ` kesimpulan.innerHTML += `
<div class="grid gap-5 w-full mt-5" id="kesimpulan-${counter}"> <div class="grid gap-5 mt-5 w-full" id="kesimpulan-${counter}">
<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="w-full tabel-container">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5"> <table class="table mt-5 text-sm font-medium text-gray-700 align-middle table-auto table-border">
<input type="text" name="tambahan_nama_kesimpulan[]" <input type="text" name="tambahan_nama_kesimpulan[]"
class="input number-format" class="input number-format"

View File

@@ -5,8 +5,9 @@
@endsection @endsection
@section('content') @section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@if (Auth::user()->hasAnyRole(['senior-officer', 'administrator','DD Appraisal', 'EO Appraisal']) && Request::is('penilai/lampiran')) @if (Auth::user()->hasAnyRole(['senior-officer', 'administrator', 'DD Appraisal', 'EO Appraisal']) &&
Request::is('penilai/lampiran'))
@include('lpj::component.detail-jaminan', [ @include('lpj::component.detail-jaminan', [
'backLink' => 'otorisator.view-laporan', 'backLink' => 'otorisator.view-laporan',
'queryParams' => [ 'queryParams' => [
@@ -15,6 +16,7 @@
'inspeksiId' => request()->query('inspeksiId'), 'inspeksiId' => request()->query('inspeksiId'),
'jaminanId' => request()->query('jaminanId'), 'jaminanId' => request()->query('jaminanId'),
'statusLpj' => 1, 'statusLpj' => 1,
'header' => request('header'),
], ],
'title' => 'Paparan dokument', 'title' => 'Paparan dokument',
]) ])
@@ -31,12 +33,12 @@
@if (isset($formDenah['denahs']) && is_array($formDenah['denahs']) && count($formDenah['denahs']) > 0) @if (isset($formDenah['denahs']) && is_array($formDenah['denahs']) && count($formDenah['denahs']) > 0)
<div class="card"> <div class="card">
<div class="card-header bg-agi-50 uppercase"> <div class="uppercase card-header bg-agi-50">
Denah Denah
</div> </div>
@foreach ($formDenah['denahs'] as $index => $denah) @foreach ($formDenah['denahs'] as $index => $denah)
<div class="card-body"> <div class="card-body">
<div class="w-full grid gap-5 "> <div class="grid gap-5 w-full">
<!-- Preview Container --> <!-- Preview Container -->
<div class="preview-container-{{ $index }}" class="flex items-center"> <div class="preview-container-{{ $index }}" class="flex items-center">
@if (isset($denah['foto_denah'])) @if (isset($denah['foto_denah']))
@@ -45,30 +47,31 @@
@endphp @endphp
@if (in_array($fileExtension, ['jpg', 'jpeg', 'png'])) @if (in_array($fileExtension, ['jpg', 'jpeg', 'png']))
<img src="{{ asset('storage/' . $denah['foto_denah']) }}" class="max-w-full max-h-screen object-contain"> <img src="{{ asset('storage/' . $denah['foto_denah']) }}"
class="object-contain max-w-full max-h-screen">
@elseif($fileExtension === 'pdf') @elseif($fileExtension === 'pdf')
<embed src="{{ asset('storage/' . $denah['foto_denah']) }}" type="application/pdf" <embed src="{{ asset('storage/' . $denah['foto_denah']) }}" type="application/pdf"
width="100%" height="500px"> width="100%" height="500px">
@endif @endif
@endif @endif
</div> </div>
<div class="flex flex-wrap lg:flex-nowrap w-full gap-4 text-start"> <div class="flex flex-wrap gap-4 w-full lg:flex-nowrap text-start">
<div class="w-full"> <div class="w-full">
<div class="flex flex-wrap gap-4"> <div class="flex flex-wrap gap-4">
<div class="flex w-full items-center justify-start gap-4"> <div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
<span class="form-label">Nama Denah</span> <span class="form-label">Nama Denah</span>
</label> </label>
<p class="text-md text-gray-700"> <p class="text-gray-700 text-md">
{{ isset($denah['nama_denah']) ? $denah['nama_denah'] : '' }}</p> {{ isset($denah['nama_denah']) ? $denah['nama_denah'] : '' }}</p>
</div> </div>
</div> </div>
<div class="flex flex-wrap gap-4"> <div class="flex flex-wrap gap-4">
<div class="flex w-full items-center justify-start gap-4"> <div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
<span class="form-label">Total Luas</span> <span class="form-label">Total Luas</span>
</label> </label>
<p class="text-md text-gray-700"> <p class="text-gray-700 text-md">
{{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}</p> {{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}</p>
</div> </div>
</div> </div>
@@ -76,7 +79,7 @@
</div> </div>
</div> </div>
<div class="border-b border-b-gray-200 mt-5"></div> <div class="mt-5 border-b border-b-gray-200"></div>
</div> </div>
@endforeach @endforeach
</div> </div>
@@ -84,10 +87,10 @@
@if ($penilai && $penilai->kertas_kerja) @if ($penilai && $penilai->kertas_kerja)
<div class="card"> <div class="card">
<div class="card-header bg-agi-50 uppercase"> <div class="uppercase card-header bg-agi-50">
Kertas Kerja Kertas Kerja
</div> </div>
<div class="card-body flex items-center justify-between"> <div class="flex justify-between items-center card-body">
@php @php
$url = ''; $url = '';
@@ -99,13 +102,14 @@
@endphp @endphp
@if ($penilai && $penilai->kertas_kerja) @if ($penilai && $penilai->kertas_kerja)
<button type="button" class="btn btn-primary" onclick="window.open('{{ $url }}', '_blank')"> <button type="button" class="btn btn-primary"
onclick="window.open('{{ $url }}', '_blank')">
<i class="ki-outline ki-cloud-download"></i> <i class="ki-outline ki-cloud-download"></i>
Lihat Kertas Kerja</button> Lihat Kertas Kerja</button>
<p class="text-2sm text-gray-700">{{ $fileName }}</p> <p class="text-gray-700 text-2sm">{{ $fileName }}</p>
@else @else
<p class="text-2sm text-gray-700">Belum ada kertas kerja</p> <p class="text-gray-700 text-2sm">Belum ada kertas kerja</p>
@endif @endif
</div> </div>
</div> </div>