(Roles): Tambahkan role EO Appraisal ke berbagai komponen LPJ

## Perubahan Utama:
- 🔧 **Role Management**: Menambahkan role 'EO Appraisal' ke berbagai komponen untuk akses tombol simpan
- 🐛 **Fix Kondisi**: Memperbaiki logika kondisi untuk data MIG (Migrasi) di print-out-sederhana
- 💅 **UI Enhancement**: Konversi table ke div untuk bagian keterangan dengan format yang lebih rapi
- 🎨 **Code Style**: Fix indentation dan whitespace di PermohonanController

## Detail Perubahan:

### File yang Dimodifikasi:

1. **`resources/views/penilai/components/call-report.blade.php`** (Line 507):
   - Menambahkan `'EO Appraisal'` ke array role yang memiliki akses tombol simpan
   - Sebelumnya: `['senior-officer', 'surveyor', 'administrator']`
   - Sekarang: `['senior-officer', 'surveyor', 'administrator','EO Appraisal']`

2. **`resources/views/penilai/components/lpj-sederhana-standar.blade.php`** (Line 47):
   - Menambahkan `'EO Appraisal'` dan `'penilai'` ke role yang dapat menyimpan data
   - Memperluas akses untuk role penilai dan EO Appraisal

3. **`resources/views/penilai/components/memo.blade.php`** (Line 318):
   - Menambahkan `'EO Appraisal'` ke role yang dapat menyimpan memo
   - Memastikan konsistensi akses antar komponen

4. **`resources/views/penilai/components/print-out-sederhana.blade.php`**:
   - **Line 558-580**: Memperbaiki urutan kondisi pengecekan data MIG
     - Memindahkan fallback data tanah dan bangunan ke atas
     - Menambahkan kondisi `@if(!$permohonan->is_mig)` untuk data non-MIG
     - Menjaga data `npw_tambahan` tetap diproses setelahnya
   - **Line 647-700**: Konversi table ke div untuk bagian keterangan
     - Mengganti struktur `<table><tr><td>` menjadi `<div>` dengan styling yang lebih rapi
     - Menambahkan handling untuk berbagai format data (array, string, quoted)
     - Implementasi bullet points yang lebih konsisten
     - Menambahkan fallback message "Tidak ada catatan khusus"

5. **`resources/views/penilai/components/rap-penilai.blade.php`** (Line 72 & 115):
   - Menambahkan `'EO Appraisal'` ke role yang dapat menyimpan data RAP
   - Fix whitespace yang tidak perlu

6. **`resources/views/penilai/components/signature-approval.blade.php`** (Line 117):
   - Fix whitespace dan formatting

7. **`app/Http/Controllers/PermohonanController.php`** (Line 55):
   - Fix indentation yang tidak konsisten
   - Memperbaiki format kode untuk better readability
This commit is contained in:
Daeng Deni Mardaeni
2025-11-18 17:28:04 +07:00
parent 34709b0f8f
commit 8c60320532
7 changed files with 88 additions and 59 deletions

View File

@@ -52,7 +52,7 @@
if ($validate) { if ($validate) {
if(auth()->user()->hasRole('admin')){ if(auth()->user()->hasRole('admin')){
$validate['status'] = "preregister"; $validate['status'] = "preregister";
} }
try { try {
// Process file upload // Process file upload
$filePath = null; $filePath = null;

View File

@@ -504,7 +504,7 @@
</div> </div>
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px"> <div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator','EO Appraisal']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}> <button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()" {{ $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>

View File

@@ -44,7 +44,7 @@
</div> </div>
</div> </div>
<div class="flex gap-5 justify-end card-footer"> <div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator','penilai'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator','penilai','EO Appraisal']))
<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>

View File

@@ -315,7 +315,7 @@
{{-- @include('lpj::penilai.components.foto-lampiran') --}} {{-- @include('lpj::penilai.components.foto-lampiran') --}}
<div class="flex gap-5 justify-end card-footer"> <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','EO Appraisal']))
<a class="btn btn-primary" onclick="saveMemo()" <a class="btn btn-primary" onclick="saveMemo()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}> {{ $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>

View File

@@ -555,30 +555,8 @@
} }
@endphp @endphp
@if (isset($lpjData['npw_tambahan'])) {{-- Fallback untuk data tanpa npw_tambahan --}}
@foreach ($lpjData['npw_tambahan'] as $npw) @if(!$permohonan->is_mig)
<tr>
<td width="30%" style="padding: 3px; text-align: right;">
{{ $npw['name'] }}</sup>
</td>
<td width="10%" style="padding: 3px; text-align: right;">
{{ $npw['luas'] }} m<sup>2</sup>
</td>
<td width="5%" style="padding: 3px; text-align: center;">X</td>
<td width="25%" style="padding: 3px; text-align:right">
{{ formatRupiah($npw['nilai_1'] ?? 0, 0, false) ?? '' }}
</td>
<td width="5" style="padding: 3px; text-align: center;">
=
</td>
<td width="25%" style="padding: 3px; text-align: left; text-align: right;">
{{ formatRupiah($npw['nilai_2'] ?? 0, 0, false) ?? '' }}
</td>
</tr>
@php $totalNilaiPasarWajar += str_replace(['Rp', '.'], '', $npw['nilai_2']); @endphp
@endforeach
@else
{{-- Fallback untuk data tanpa npw_tambahan --}}
@if (isset($lpjData['luas_tanah'])) @if (isset($lpjData['luas_tanah']))
<tr> <tr>
<td width="30%" style="padding: 3px; text-align: right;">Tanah</td> <td width="30%" style="padding: 3px; text-align: right;">Tanah</td>
@@ -602,6 +580,29 @@
@php $totalNilaiPasarWajar += str_replace(['Rp', '.'], '', $lpjData['nilai_bangunan_2']); @endphp @php $totalNilaiPasarWajar += str_replace(['Rp', '.'], '', $lpjData['nilai_bangunan_2']); @endphp
@endif @endif
@endif @endif
@if (isset($lpjData['npw_tambahan']))
@foreach ($lpjData['npw_tambahan'] as $npw)
<tr>
<td width="30%" style="padding: 3px; text-align: right;">
{{ $npw['name'] }}</sup>
</td>
<td width="10%" style="padding: 3px; text-align: right;">
{{ $npw['luas'] }} m<sup>2</sup>
</td>
<td width="5%" style="padding: 3px; text-align: center;">X</td>
<td width="25%" style="padding: 3px; text-align:right">
{{ formatRupiah($npw['nilai_1'] ?? 0, 0, false) ?? '' }}
</td>
<td width="5" style="padding: 3px; text-align: center;">
=
</td>
<td width="25%" style="padding: 3px; text-align: left; text-align: right;">
{{ formatRupiah($npw['nilai_2'] ?? 0, 0, false) ?? '' }}
</td>
</tr>
@php $totalNilaiPasarWajar += str_replace(['Rp', '.'], '', $npw['nilai_2']); @endphp
@endforeach
@endif
<tr> <tr>
<td style="padding: 3px; text-align: right; font-weight: bold; width:10%;" colspan="4">Total Nilai Pasar Wajar</td> <td style="padding: 3px; text-align: right; font-weight: bold; width:10%;" colspan="4">Total Nilai Pasar Wajar</td>
<td style="padding: 3px; text-align: center; width:5%;font-weight: bold;" >=</td> <td style="padding: 3px; text-align: center; width:5%;font-weight: bold;" >=</td>
@@ -643,36 +644,64 @@
@if (!empty($keterangan)) @if (!empty($keterangan))
@if (is_array($keterangan)) @if (is_array($keterangan))
@foreach ($keterangan as $item) <div style="margin: 0; padding: 0;">
<table style="width: 100%; border-collapse: collapse;"> @foreach ($keterangan as $index => $item)
<tr> @php
<td> $cleanItem = trim($item);
@php $isNumbered = preg_match('/^\d+\./', $cleanItem);
$items_ = explode('- ', $item); $isBullet = preg_match('/^[-•]/', $cleanItem);
@endphp @endphp
@foreach ($items_ as $item_) <div style="margin-bottom: 8px; line-height: 1.4;">
@if(!empty($item_)) @if ($isNumbered || $isBullet)
- {{ trim($item_) }}<br> {{ $cleanItem }}
@endif @else
@endforeach @if ($index > 0 && !empty($cleanItem))- @endif{{ $cleanItem }}
</td> @endif
</tr> </div>
</table> @endforeach
@endforeach </div>
@else @else
<table style="width: 100%; border-collapse: collapse;"> @php
<tr> // Handle string format - normalize line endings first
<td> $keterangan = str_replace(["\r\n", "\r"], "\n", $keterangan);
@php $items = [];
$items = explode('- ', $keterangan);
@endphp if (strpos($keterangan, '"') !== false) {
@foreach ($items as $item) // Handle quoted strings (array format)
- {{ trim($item) }}<br> preg_match_all('/"([^"]*)"/', $keterangan, $matches);
@endforeach $items = $matches[1];
</td> } else {
</tr> // Handle line-separated items
</table> $rawItems = explode("\n", $keterangan);
foreach ($rawItems as $item) {
$cleanItem = trim($item);
// Skip empty items
if (!empty($cleanItem)) {
$items[] = $cleanItem;
}
}
}
@endphp
<div style="margin: 0; padding: 0;">
@foreach ($items as $index => $item)
@php
$cleanItem = trim($item);
if (!empty($cleanItem))
@endphp
<div style="margin-bottom: 8px; line-height: 1.4;">
@if (preg_match('/^\d+\./', $cleanItem))
{{ $cleanItem }}
@elseif (preg_match('/^[-•]/', $cleanItem))
{{ $cleanItem }}
@else
- {{ $cleanItem }}
@endif
</div>
@endforeach
</div>
@endif @endif
@else
<div style="color: #666; font-style: italic;">Tidak ada catatan khusus</div>
@endif @endif
</td> </td>
</tr> </tr>

View File

@@ -69,7 +69,7 @@
@include('lpj::surveyor.components.header') @include('lpj::surveyor.components.header')
@include('lpj::surveyor.components.rap') @include('lpj::surveyor.components.rap')
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px"> <div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
@if (Auth::user()->hasAnyRole(['senior-officer', 'penilai', 'administrator'])) @if (Auth::user()->hasAnyRole(['senior-officer', 'penilai', 'administrator','EO Appraisal']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()" <button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}> {{ $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>