perbaikan back halaman di otorisator so dan penambahan nilai likuidasi di resume

This commit is contained in:
majid
2025-02-14 16:16:41 +07:00
parent d2805bdb2f
commit 2cb2b7981c
11 changed files with 700 additions and 483 deletions

View File

@@ -2,8 +2,8 @@
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Modules\Lpj\Models\CustomField; use Modules\Lpj\Models\CustomField;
use Modules\Lpj\Models\HolidayCalendar; use Modules\Lpj\Models\HolidayCalendar;
use Modules\Lpj\Models\PenawaranDetailTender; use Modules\Lpj\Models\PenawaranDetailTender;
use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\PenawaranTender;
use Modules\Lpj\Models\Penilaian; use Modules\Lpj\Models\Penilaian;
@@ -30,7 +30,7 @@ function formatTanggalIndonesia($date, $time = false)
function formatRupiah($number) function formatRupiah($number)
{ {
$number = (float) $number; $number = (float) $number;
return 'Rp ' . number_format($number, 2, ',', '.'); return 'Rp ' . number_format($number, 0, ',', '.');
} }
@@ -357,7 +357,8 @@ function checkRegionUserName($userId)
} }
} }
function getNomorLaporan($permohonanId, $documentId){ function getNomorLaporan($permohonanId, $documentId)
{
$laporan = Laporan::where([ $laporan = Laporan::where([
'permohonan_id' => $permohonanId, 'permohonan_id' => $permohonanId,
'dokumen_jaminan_id' => $documentId, 'dokumen_jaminan_id' => $documentId,
@@ -365,13 +366,14 @@ function getNomorLaporan($permohonanId, $documentId){
return $laporan->nomor_laporan ?? null; return $laporan->nomor_laporan ?? null;
} }
function getCustomField($param){ function getCustomField($param)
if(is_numeric($param)){ {
if (is_numeric($param)) {
$field = CustomField::find($param); $field = CustomField::find($param);
} else { } else {
$field = CustomField::where(['name' => $param])->first(); $field = CustomField::where(['name' => $param])->first();
} }
if($field){ if ($field) {
return $field; return $field;
} else { } else {
return null; return null;

View File

@@ -55,6 +55,7 @@ class PenilaiController extends Controller
$basicData = $this->surveyorController->getCommonData(); $basicData = $this->surveyorController->getCommonData();
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId); $permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
$inpeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); $inpeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
$penilai = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
$formFoto = null; $formFoto = null;
if ($inpeksi) { if ($inpeksi) {
@@ -62,7 +63,7 @@ class PenilaiController extends Controller
$forminspeksi = json_decode($inpeksi->data_form, true); $forminspeksi = json_decode($inpeksi->data_form, true);
} }
return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi','basicData')); return view('lpj::penilai.lampiran', compact('permohonan', 'formFoto', 'forminspeksi','basicData', 'penilai'));
} }
public function create() public function create()

View File

@@ -724,6 +724,7 @@ class PenilaianController extends Controller
->where('dokument_id', $documentId) ->where('dokument_id', $documentId)
->where('inspeksi_id', $inspeksi->id) ->where('inspeksi_id', $inspeksi->id)
->first(); ->first();
$penilai = $lpj;
$forminspeksi = null; $forminspeksi = null;
$lpjData = null; $lpjData = null;
@@ -765,7 +766,7 @@ class PenilaianController extends Controller
return redirect()->back()->with('error', 'Laporan belum dibuat'); return redirect()->back()->with('error', 'Laporan belum dibuat');
} }
return view('lpj::' . $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo', 'cities', 'districts', 'villages','formFoto', 'formPeta','nomorLaporan')); return view('lpj::' . $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces', 'resumeData', 'rap', 'memo', 'cities', 'districts', 'villages','formFoto', 'formPeta','nomorLaporan', 'penilai'));
} }
private function getViewLaporan($tipe) private function getViewLaporan($tipe)

View File

@@ -353,8 +353,7 @@
class="btn btn-xs btn-info"> class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back <i class="ki-filled ki-exit-left"></i> Back
</a> </a>
@elseif (Auth::user()->hasAnyRole(['administrator', 'surveyor']) && Route::currentRouteName('penilai.show'))
@elseif (Auth::user()->hasAnyRole(['administrator','surveyor']) && Route::currentRouteName('penilai.show'))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info"> <a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back <i class="ki-filled ki-exit-left"></i> Back
</a> </a>
@@ -678,14 +677,14 @@
<div class="w-full"> <div class="w-full">
<label class="input"> <label class="input">
<input type="text" id="likuidasi" name="likuidasi" <input type="text" id="likuidasi" name="likuidasi" class=" w-full currency"
class=" w-full currency" value="{{ old('likuidasi', $lpjData['likuidasi'] ?? null) }}"
value="{{ old('likuidasi', $lpjData['likuidasi'] ?? null) }}" oninput="calculateTotal()">
oninput="calculateTotal()">
<i class="">% <i class="">%
</i> </i>
</label> </label>
<span class="text-xs"> <span class="text-xs text-danger">*</span> Masukkan Angka Saja </span> <span class="text-xs"> <span class="text-xs text-danger">*</span> Masukkan Angka Saja
</span>
</div> </div>
</div> </div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
@@ -800,9 +799,8 @@
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
const datas = @json($forminspeksi);
const datas = @json($forminspeksi); console.log(datas);
console.log(datas);
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
@@ -981,32 +979,33 @@ console.log(datas);
}); });
function formatPercentage(value) { function formatPercentage(value) {
// Hapus semua karakter kecuali angka dan koma // Hapus semua karakter kecuali angka dan koma
let numericValue = value.replace(/[^0-9,]/g, ''); let numericValue = value.replace(/[^0-9,]/g, '');
// Pastikan hanya satu koma yang ada // Pastikan hanya satu koma yang ada
let parts = numericValue.split(','); let parts = numericValue.split(',');
if (parts.length > 2) { if (parts.length > 2) {
numericValue = parts[0] + ',' + parts[1]; // Pertahankan hanya bagian pertama dan kedua numericValue = parts[0] + ',' + parts[1]; // Pertahankan hanya bagian pertama dan kedua
}
// Jika nilai melebihi 100, batasi menjadi 100
let numericFloat = parseFloat(numericValue.replace(',', '.')) || 0;
if (numericFloat > 100) {
numericFloat = 100;
numericValue = '100';
}
// Kembalikan nilai dengan simbol %
return numericValue;
} }
// Jika nilai melebihi 100, batasi menjadi 100
let numericFloat = parseFloat(numericValue.replace(',', '.')) || 0;
if (numericFloat > 100) {
numericFloat = 100;
numericValue = '100';
}
// Kembalikan nilai dengan simbol %
return numericValue;
}
function calculateTotal() { function calculateTotal() {
const parseInput = (value) => parseFloat(value.replace(/[^0-9]/g, '')) || 0; const parseInput = (value) => parseFloat(value.replace(/[^0-9]/g, '')) || 0;
// Bagian Likuidasi // Bagian Likuidasi
let persentaseLikuidasiInput = document.getElementById('likuidasi'); let persentaseLikuidasiInput = document.getElementById('likuidasi');
let persentaseLikuidasi = parseInput(persentaseLikuidasiInput.value); let persentaseLikuidasi = parseInput(persentaseLikuidasiInput.value);
persentaseLikuidasiInput.value = formatPercentage(persentaseLikuidasiInput.value); persentaseLikuidasiInput.value = formatPercentage(persentaseLikuidasiInput.value);
let totalNilaiPasarLikuidasi = document.querySelector('input[name="likuidasi_nilai_1"]'); let totalNilaiPasarLikuidasi = document.querySelector('input[name="likuidasi_nilai_1"]');
let totalLikuidasi = document.querySelector('input[name="likuidasi_nilai_2"]'); let totalLikuidasi = document.querySelector('input[name="likuidasi_nilai_2"]');

View File

@@ -14,9 +14,20 @@
Memo Antar Kantor Memo Antar Kantor
</h3> </h3>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<a href="{{ url()->previous() }}" class="btn btn-xs btn-info"> @php
<i class="ki-filled ki-exit-left"></i> Back use Illuminate\Support\Facades\Route;
</a> @endphp
@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']) }}"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@elseif (Auth::user()->hasAnyRole(['administrator', 'surveyor']) && Route::currentRouteName('penilai.show'))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
</div> </div>
</div> </div>
<div class="card-body grid gap-5"> <div class="card-body grid gap-5">
@@ -290,8 +301,8 @@
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1"> href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&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> Hasil Inspeksi <i class="ki-filled ki-printer"></i> Hasil Inspeksi
</a> </a>
<a class="btn btn-success" <a class="btn btn-success"

View File

@@ -1,394 +1,424 @@
@include('lpj::penilai.components.header') @include('lpj::penilai.components.header')
@php @php
$data = ''; $data = '';
foreach ($permohonan->documents as $dokumen) { foreach ($permohonan->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', '; $data .= $dokumen->jenisJaminan->name . ', ';
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first(); $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first(); $surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
$teams = $permohonan->region->teams; $teams = $permohonan->region->teams;
if ($teams) { if ($teams) {
foreach ($teams as $team) { foreach ($teams as $team) {
$team_users = $team->teamsUsers; $team_users = $team->teamsUsers;
// print_r($team_users); // print_r($team_users);
if ($team_users) { if ($team_users) {
foreach ($team_users as $team_user) { foreach ($team_users as $team_user) {
$user = $team_user->user; $user = $team_user->user;
if ($user && $user->hasRole('senior-officer')) { if ($user && $user->hasRole('senior-officer')) {
$senior_officer = $user; $senior_officer = $user;
break 3; break 3;
}
} }
} }
} }
} }
} }
$data = rtrim($data, ', '); }
@endphp $data = rtrim($data, ', ');
@endphp
<main class="content"> <main class="content">
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td style="text-align: center; margin-top: 5px;"> <td style="text-align: center; margin-top: 5px;">
<h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;"> <h2 style="text-decoration: underline; text-transform: uppercase; text-align: center; margin: 0;">
Resume Resume
Penilaian Penilaian
</h2> </h2>
<p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan }}</p> <p style="font-size: 12px; margin: 0;">NO: {{ $nomorLaporan }}</p>
</td> </td>
</tr> </tr>
</table> </table>
<table> <table>
<tr> <tr>
<td style="width: 20%">Pemohon</td> <td style="width: 20%">Pemohon</td>
<td style="width: 1%">:</td> <td style="width: 1%">:</td>
<td style="width: 100%">{{ $permohonan->user->name ?? '' }} - <td style="width: 100%">{{ $permohonan->user->name ?? '' }} -
{{ $permohonan->debiture->branch->name ?? '' }}</td> {{ $permohonan->debiture->branch->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td>Atas Nama Cadeb</td> <td>Atas Nama Cadeb</td>
<td>:</td> <td>:</td>
<td>{{ $permohonan->debiture->name ?? '' }}</td> <td>{{ $permohonan->debiture->name ?? '' }}</td>
</tr> </tr>
<tr> <tr>
<td idth="25%">Aset</td> <td idth="25%">Aset</td>
<td width="1%">:</td> <td width="1%">:</td>
<td >{{ $data ?? '' }}</td> <td>{{ $data ?? '' }}</td>
</tr> </tr>
<tr>
<td style="vertical-align: top;">Legalitas</td>
<td style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
<table style="margin: 0; padding: 0;">
@if (isset($dokumen))
@foreach ($dokumen->detail as $detail)
<tr>
@if (isset($detail->dokumen_jaminan))
<td style="padding: 0; margin: 0;">
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
@endforeach
</td>
@endif
</tr>
@endforeach
@endif
</table>
</td>
</tr>
<tr> <tr>
@if (isset($permohonan->documents)) <td style="vertical-align: top;">Legalitas</td>
@foreach ($permohonan->documents as $document) <td style="vertical-align: top;">:</td>
@foreach ($document->detail as $detail) <td style="vertical-align: top;">
@if (isset($detail->details)) <table style="margin: 0; padding: 0;">
@php @if (isset($dokumen))
$details = json_decode($detail->details, true); @foreach ($dokumen->detail as $detail)
@endphp <tr>
@if ($details) @if (isset($detail->dokumen_jaminan))
@foreach ($details as $key => $value) <td style="padding: 0; margin: 0;">
@if (!is_null($value) && $value !== '') @php
<tr> $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
<td style="">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td> ? json_decode($detail->dokumen_jaminan)
<td style=" padding: 2px;">:</td> : [$detail->dokumen_jaminan];
<td style="">{{ $value }} $dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
@if ($key == 'luas_bangunan' || $key == 'luas_tanah') ? json_decode($detail->dokumen_nomor)
<sup>m2</sup> : ($detail->dokumen_nomor
@endif ? [$detail->dokumen_nomor]
</td> : []);
</tr> @endphp
@endif
@endforeach @foreach ($dokumen_jaminan as $index => $dokumen)
@if (!empty($dokumen_nomor[$index]))
<span>{{ $dokumen_nomor[$index] }}</span>
@endif
@endforeach
</td>
@endif @endif
@endif </tr>
@endforeach @endforeach
@endforeach @endif
</table>
</td>
</tr>
<tr>
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $document)
@foreach ($document->detail as $detail)
@if (isset($detail->details))
@php
$details = json_decode($detail->details, true);
@endphp
@if ($details)
@foreach ($details as $key => $value)
@if (!is_null($value) && $value !== '')
<tr>
<td style="">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
<td style=" padding: 2px;">:</td>
<td style="">{{ $value }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif @endif
</tr> </td>
<tr> </tr>
<td width="25%">Terletak di</td> @endif
<td style="width: 1%; vertical-align: top;">:</td> @endforeach
<td> {{ $alamat['address'] ?? '' }}</td> @endif
</tr> @endif
<tr> @endforeach
<td>Desa/Kelurahan</td> @endforeach
<td style="width: 1%; vertical-align: top;">:</td> @endif
<td>{{ $alamat['village_code'] ?? '' }}</td> </tr>
</tr> <tr>
<tr> <td width="25%">Terletak di</td>
<td>Kecamatan</td> <td style="width: 1%; vertical-align: top;">:</td>
<td style="width: 1%; vertical-align: top;">:</td> <td> {{ $alamat['address'] ?? '' }}</td>
<td>{{ $alamat['district_code'] ?? '' }}</td> </tr>
</tr> <tr>
<tr> <td>Desa/Kelurahan</td>
<td>Kabupaten/Kota</td> <td style="width: 1%; vertical-align: top;">:</td>
<td style="width: 1%; vertical-align: top;">:</td> <td>{{ $alamat['village_code'] ?? '' }}</td>
<td> {{ $alamat['city_code'] ?? '' }}</td> </tr>
</tr> <tr>
<tr> <td>Kecamatan</td>
<td>Provinsi</td> <td style="width: 1%; vertical-align: top;">:</td>
<td style="width: 1%; vertical-align: top;">:</td> <td>{{ $alamat['district_code'] ?? '' }}</td>
<td>{{ $alamat['province_code'] ?? '' }}</td> </tr>
</tr> <tr>
<tr> <td>Kabupaten/Kota</td>
<td>Tanggal Survey</td> <td style="width: 1%; vertical-align: top;">:</td>
<td>:</td> <td> {{ $alamat['city_code'] ?? '' }}</td>
<td>{{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }}</td> </tr>
</tr> <tr>
<tr> <td>Provinsi</td>
<td>Surveyor</td> <td style="width: 1%; vertical-align: top;">:</td>
<td>:</td> <td>{{ $alamat['province_code'] ?? '' }}</td>
<td>{{ $surveyor->userPenilaiTeam->name ?? '' }}</td> </tr>
</tr> <tr>
<td>Tanggal Survey</td>
<td>:</td>
<td>{{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }}
</td>
</tr>
<tr>
<td>Surveyor</td>
<td>:</td>
<td>{{ $surveyor->userPenilaiTeam->name ?? '' }}</td>
</tr>
<tr>
<td>Tanggal Resume</td>
<td>:</td>
<td>{{ optional($resumeData)['tanggal_resume'] ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }}
</td>
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">Faktor Positif</h2>
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_positif'])
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
<tr> <tr>
<td>Tanggal Resume</td> <td>{!! nl2br(e($item)) !!}</td>
<td>:</td> </tr>
<td>{{ optional($resumeData)['tanggal_resume'] ? formatTanggalIndonesia($resumeData['tanggal_resume']) : '' }} @endforeach
@endisset
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">Faktor negatif</h2>
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_negatif'])
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
@endisset
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h3 style="text-transform: uppercase; margin: 0; ">Kesimpulan Nilai Pasar Wajar</h2>
</td>
<td>:</td>
<td></td>
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">1. Sesuai Fisik</h6>
</td>
</tr>
</table>
<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>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Likuidasi {{ isset($item['likuidasi']) ? '('. $item['likuidasi'] . ' %)' : '-' }}</td>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">{{ $item['sertifikat'] ?? '' }}
</td> </td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_tanah']) ? $item['luas_tanah'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_bangunan']) ? $item['luas_bangunan'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['nilai']) ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['total_likuidasi']) ?? '' }}</td>
</tr> </tr>
@endforeach
</table>
</table> @if (!empty($resumeData['sesuai_imb']))
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr> <tr>
<td style=""> <td style="">
<h6 style="text-transform: uppercase; margin: 0; ">Faktor Positif</h2> <h6 style="text-transform: uppercase; margin: 0; ">2. Sesuai IMB</h6>
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_positif'])
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
@endisset
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">Faktor negatif</h2>
</td>
</tr>
<tr>
@isset($resumeData['fakta']['fakta_negatif'])
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
<tr>
<td>{!! nl2br(e($item)) !!}</td>
</tr>
@endforeach
@endisset
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h3 style="text-transform: uppercase; margin: 0; ">Kesimpulan Nilai Pasar Wajar</h2>
</td>
<td>:</td>
<td></td>
</tr>
</table>
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">1. Sesuai Fisik</h6>
</td> </td>
</tr> </tr>
</table> </table>
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;"> <table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;">
<tr>
<td style="border: 1px solid #000; padding: 4px;">Sertifikat</td> @foreach ($resumeData['sesuai_imb'] as $item)
<td style="border: 1px solid #000; padding: 4px;">Luas Tanah ()</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan ()</td>
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td>
</tr>
@foreach ($resumeData['fisik'] as $item)
<tr> <tr>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['sertifikat'] ?? '' }}</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '' }}</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Tanah</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_bangunan'] ?? '' }}</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Bangunan</td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '' }}</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Pasar Wajar</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Likuidasi {{ isset($item['likuidasi']) ? '('. $item['likuidasi'] . ' %)' : '-' }}</td>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ $item['sertifikat'] ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_tanah']) ? $item['luas_tanah'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_bangunan']) ? $item['luas_bangunan'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['nilai']) ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['total_likuidasi']) ?? '' }}</td>
</tr> </tr>
@endforeach @endforeach
</table> </table>
@endif
@if (!empty($resumeData['sesuai_imb'])) @if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $index => $item)
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr> <tr>
<td style=""> <td style="">
<h6 style="text-transform: uppercase; margin: 0; ">2. Sesuai IMB</h6> <h6 style="text-transform: uppercase; margin: 0; ">
{{ $index + 3 }}. {{ $item['tambahan_nama_kesimpulan'] ?? '-' }}
</h6>
</td> </td>
</tr> </tr>
</table> </table>
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;"> <table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 1px;">
<tr> <tr>
<td style="border: 1px solid #000; padding: 4px;">Sertifikat</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Tanah ()</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Tanah</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan ()</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Luas Bangunan</td>
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td> <td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Pasar Wajar</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">Nilai Likuidasi {{ isset($item['likuidasi']) ? '('. $item['likuidasi'] . ' %)' : '' }}</td>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ $item['sertifikat'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_tanah']) ? $item['luas_tanah'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ isset($item['luas_bangunan']) ? $item['luas_bangunan'] . ' m²' : '-' }}</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['nilai']) ?? '-' }}
</td>
<td style="border: 1px solid #000; padding: 4px; text-align: center">
{{ formatRupiah($item['total_likuidasi']) ?? '' }}</td>
</tr> </tr>
@foreach ($resumeData['sesuai_imb'] as $item)
<tr>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['sertifikat'] ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_bangunan'] ?? '' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '' }}</td>
</tr>
@endforeach
</table> </table>
@endif @endforeach
@if (!empty($resumeData['tambahan'])) @endif
@foreach ($resumeData['tambahan'] as $index => $item)
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr>
<td style="">
<h6 style="text-transform: uppercase; margin: 0; ">
{{ $index + 3 }}. {{ $item['tambahan_nama_kesimpulan'] ?? '-' }}
</h6>
</td>
</tr>
</table>
<table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 1px;">
<tr>
<td style="border: 1px solid #000; padding: 4px;">Sertifikat</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Tanah ()</td>
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan ()</td>
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['sertifikat'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_tanah'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ $item['luas_bangunan'] ?? '-' }}</td>
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($item['nilai']) ?? '-' }}
</td>
</tr>
</table>
@endforeach
@endif
<table style="margin: 5px 0; border-collapse: collapse; width: 100%;"> <table style="margin: 5px 0; border-collapse: collapse; width: 100%;">
<tr> <tr>
<td style=""> <td style="">
<h6 style="text-transform: uppercase; margin: 0; ">lain lain</h2> <h6 style="text-transform: uppercase; margin: 0; ">lain lain</h2>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>{!! nl2br(e($resumeData['keterangan'] ?? '' )) !!}</td> <td>{!! nl2br(e($resumeData['keterangan'] ?? '')) !!}</td>
</tr> </tr>
</table> </table>
<table style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td> <td>
<table> <table>
<div style="margin-top: 20px;"> <div style="margin-top: 20px;">
<label style="font-weight: bold;">DISCLAIMER</label> <label style="font-weight: bold;">DISCLAIMER</label>
<div> <div>
<ol style="padding-left: 20px; list-style-type: decimal; margin-top: 0;"> <ol style="padding-left: 20px; list-style-type: decimal; margin-top: 0;">
<li style="margin-bottom: 5px; ">LAPORAN RESUME INI DIKELUARKAN DIKARENAKAN BELUM <li style="margin-bottom: 5px; ">LAPORAN RESUME INI DIKELUARKAN DIKARENAKAN BELUM
DILAKUKANNYA PEMBAYARAN BIAYA PENILAIAN JAMINAN</li> DILAKUKANNYA PEMBAYARAN BIAYA PENILAIAN JAMINAN</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI TIDAK BISA DIJADIKAN SEBAGAI <li style="margin-bottom: 5px;">LAPORAN RESUME INI TIDAK BISA DIJADIKAN SEBAGAI
DASAR PENGAJUAN DAN ATAU PENCAIRAN KREDIT, LAPORAN YANG DIGUNAKAN TETAP WAJIB DASAR PENGAJUAN DAN ATAU PENCAIRAN KREDIT, LAPORAN YANG DIGUNAKAN TETAP WAJIB
BERUPA LAPORAN PENILAIAN JAMINAN (LPJ)</li> BERUPA LAPORAN PENILAIAN JAMINAN (LPJ)</li>
<li style="margin-bottom: 5px;">DETAIL PER METER TANAH DAN BANGUNAN, SARANA <li style="margin-bottom: 5px;">DETAIL PER METER TANAH DAN BANGUNAN, SARANA
PELENGKAP DLL AKAN TERCATAT DI LAPORAN PENILAIAN JAMINAN (LPJ) NANTI</li> PELENGKAP DLL AKAN TERCATAT DI LAPORAN PENILAIAN JAMINAN (LPJ) NANTI</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA DIGUNAKAN UNTUK KEPENTINGAN <li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA DIGUNAKAN UNTUK KEPENTINGAN
INTERNAL BAGI</li> INTERNAL BAGI</li>
<li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA BERLAKU <span <li style="margin-bottom: 5px;">LAPORAN RESUME INI HANYA BERLAKU <span
style="color:red;">14 HARI KALENDER </span> style="color:red;">14 HARI KALENDER </span>
TERHITUNG DARI TANGGAL RESUME INI DIBUAT SESUAI ATURAN YANG BERLAKU, APABILA TERHITUNG DARI TANGGAL RESUME INI DIBUAT SESUAI ATURAN YANG BERLAKU, APABILA
LEWAT MAKA HARUS DILAKUKAN ORDER ULANG SESUAI PROSEDUR YANG BERLAKU</li> LEWAT MAKA HARUS DILAKUKAN ORDER ULANG SESUAI PROSEDUR YANG BERLAKU</li>
<li style="margin-bottom: 5px; text-transform: uppercase;">Apabila sudah melewati 6 <li style="margin-bottom: 5px; text-transform: uppercase;">Apabila sudah melewati 6
bulan, maka harus penilaian bulan, maka harus penilaian
ulang kembali</li> ulang kembali</li>
</ol> </ol>
</div>
</div> </div>
</div>
</table>
</td>
</tr>
<tr>
<td>Demikian Kami Sampaikan, atas perhatiannya kami ucapkan terimakasih</td>
</tr>
<tr>
<table style="width: 100%; text-align: center;">
<tr>
<td style="height: 50px"></td>
<td style="height: 50px"></td>
</tr>
<tr>
<td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
{{ ucwords(strtolower('PENILAI')) }}
</td>
<td>
@if ($permohonan->approval_so)
{{ $senior_officer->name ?? '' }}</br>
{{ ucwords(strtolower('SENIOR OFFICER')) }}
@endif
</td>
@php
use Modules\Usermanagement\Models\User;
@endphp
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('EXECUTIVE OFFICER')) }}
@endif
</td>
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif
</td>
</tr>
</table> </table>
</tr> </td>
</table> </tr>
<tr>
<td>Demikian Kami Sampaikan, atas perhatiannya kami ucapkan terimakasih</td>
</tr>
<tr>
<table style="width: 100%; text-align: center;">
<tr>
<td style="height: 50px"></td>
<td style="height: 50px"></td>
<div class="page-break"></div> </tr>
<div class="section"> <tr>
<div class="judul"> <td>{{ $penilai->userPenilaiTeam->name ?? '' }}</br>
<h6 class="border" style="text-align: center"> {{ ucwords(strtolower('PENILAI')) }}
FOTO JAMINAN </td>
</h6>
</div>
@include('lpj::penilai.components.foto-jaminan') <td>
@if ($permohonan->approval_so)
{{ $senior_officer->name ?? '' }}</br>
{{ ucwords(strtolower('SENIOR OFFICER')) }}
@endif
</td>
@php
use Modules\Usermanagement\Models\User;
@endphp
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('EO Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('EXECUTIVE OFFICER')) }}
@endif
</td>
<td>
@if ($permohonan->approval_eo != null)
{{ User::role('DD Appraisal')->first()->name ?? '' }}</br>
{{ ucwords(strtolower('DEPUTY DIRECTOR')) }}
@endif
</td>
</tr>
</table>
</tr>
</table>
<div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border" style="text-align: center">
FOTO JAMINAN
</h6>
</div> </div>
</main> @include('lpj::penilai.components.foto-jaminan')
</div>
</main>
@include('lpj::penilai.components.footer') @include('lpj::penilai.components.footer')

View File

@@ -29,10 +29,23 @@
<h3 class="card-title uppercase"> <h3 class="card-title uppercase">
Data Jaminan Data Jaminan
</h3> </h3>
@php
use Illuminate\Support\Facades\Route;
@endphp
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<a href="{{ url()->previous() }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
</a> Route::currentRouteName('otorisator.show'))
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => 'Pelaporan']) }}"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@elseif (Auth::user()->hasAnyRole(['administrator', 'surveyor']) && Route::currentRouteName('penilai.show'))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
</div> </div>
</div> </div>
<div class="card-body grid gap-5 grid-cols-2"> <div class="card-body grid gap-5 grid-cols-2">
@@ -181,7 +194,8 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Nilai Likuidasi</th>
<th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
</thead> </thead>
@@ -202,7 +216,18 @@
class="input number-format"></td> class="input number-format"></td>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_nilai[]" <input type="text" name="fisik_nilai[]"
class="input currency-format" value="{{ $item['nilai'] }}"> class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}" onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="likuidasi[]" class="input likuidasi"
value="{{ $item['likuidasi'] ?? 0 }}"
onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="total_nilai_likuidasi[]"
class="input currency-format total-likuidasi"
value="{{ $item['total_likuidasi'] ?? 0 }}" readonly>
</td> </td>
</tr> </tr>
@endforeach @endforeach
@@ -250,7 +275,17 @@
<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" value="{{ $luas_bangunan }}"></td> class="input number-format" value="{{ $luas_bangunan }}"></td>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_nilai[]" class="input currency-format"> <input type="text" name="fisik_nilai[]"
class="input currency-format nilai-pasar"
onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="likuidasi[]" class="input likuidasi"
onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="total_nilai_likuidasi[]"
class="input currency-format total-likuidasi" readonly>
</td> </td>
</tr> </tr>
@endif @endif
@@ -271,7 +306,8 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Likuidasi</th>
<th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
</thead> </thead>
@@ -293,7 +329,18 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_nilai[]" <input type="text" name="sesuai_nilai[]"
class="input currency-format" value="{{ $item['nilai'] }}"> class="input currency-format nilai-pasar"
value="{{ $item['nilai'] }}" onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="sesuai_likuidasi[]"
class="input likuidasi" value="{{ $item['likuidasi'] ?? '' }}"
onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="sesuai_total_likuidasi[]"
class="input currency-format total-likuidasi"
value="{{ $item['total_likuidasi'] ?? 0 }}">
</td> </td>
</tr> </tr>
@endforeach @endforeach
@@ -312,8 +359,17 @@
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_nilai[]" <input type="text" name="sesuai_nilai[]" class="input currency-format"
class="input currency-format"> onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="sesuai_likuidasi[]" class="input likuidasi"
value="{{ $item['likuidasi'] ?? 0 }}" onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="sesuai_total_likuidasi[]"
class="input currency-format total-likudasi"
value="{{ $item['total_likuidasi'] ?? 0 }}">
</td> </td>
</tr> </tr>
@endif @endif
@@ -323,7 +379,7 @@
</div> </div>
@if (!empty($resumeData['tambahan'])) @if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $item) @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"> <div class="flex flex-wrap items-baseline w-full">
@@ -342,44 +398,50 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center"> Likuidasi</th>
<th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
</thead> </thead>
<tbody> <tbody>
@if (!empty($resumeData['tambahan']))
@foreach ($resumeData['tambahan'] as $item)
<tr> <tr>
<td class="text-center"> <td class="text-center">
<input type="text" name="tambahan_sertifikat[]" <input type="text" name="tambahan_sertifikat[]"
class="input number-format" class="input number-format" value="{{ $item['sertifikat'] }}">
value="{{ $item['sertifikat'] }}"> </td>
</td> <td class="text-center">
<td class="text-center"> <input type="text" name="tambahan_luas_tanah[]"
<input type="text" name="tambahan_luas_tanah[]" class="input number-format" value="{{ $item['luas_tanah'] }}">
class="input number-format" </td>
value="{{ $item['luas_tanah'] }}"> <td class="text-center">
</td> <input type="text" name="tambahan_luas_bangunan[]"
<td class="text-center"> class="input number-format" value="{{ $item['luas_bangunan'] }}">
<input type="text" name="tambahan_luas_bangunan[]" </td>
class="input number-format" <td class="text-center">
value="{{ $item['luas_bangunan'] }}"> <input type="text" name="tambahan_nilai[]"
</td> class="input currency-format nilai-pasar"
<td class="text-center"> value="{{ $item['nilai'] }}" onkeyup="calculateTotal(this)">
<input type="text" name="tambahan_nilai[]" </td>
class="input currency-format" value="{{ $item['nilai'] }}"> <td class="text-center">
</td> <input type="text" name="tambahan_nilai_likuidasi[]"
</tr> class="input likuidasi " value="{{ $item['likuidasi'] ?? 0 }}"
@endforeach onkeyup="calculateTotal(this)">
@endif </td>
<td class="text-center">
<input type="text" name="tambahan_total_likuidasi[]"
class="input currency-format total-likuidasi"
value="{{ $item['total_likuidasi'] ?? 0 }}">
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
@endforeach @endforeach
@endif @endif
<div id="kesimpulans" class="grid gap-5 w-full"></div>
<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>
@@ -387,7 +449,7 @@
</button> </button>
</div> </div>
<div id="kesimpulan" class="grid gap-5 w-full"></div>
<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">
@@ -452,14 +514,15 @@
@endsection @endsection
@include('lpj::surveyor.js.utils') @include('lpj::surveyor.js.utils')
<script type="text/javascript"> <script type="text/javascript">
let data = @json($resumeData ?? 0);
console.log(data);
let counter = 3; let counter = 3;
function tambahKesimpulanNilai() { function tambahKesimpulanNilai() {
const kesimpulan = document.getElementById('kesimpulan'); const kesimpulan = document.getElementById('kesimpulans');
kesimpulan.innerHTML += ` kesimpulan.innerHTML += `
<div class="grid gap-5 w-full" id="kesimpulan-${counter}"> <div class="grid gap-5 w-full mt-5" id="kesimpulan-${counter}">
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
@@ -467,7 +530,9 @@
<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">
<input type="text" name="tambahan_nama_kesimpulan[]" <input type="text" name="tambahan_nama_kesimpulan[]"
class="input number-format"> class="input number-format"
placeholder="Masukkan Nama Kesimpulan.."
>
<thead> <thead>
@@ -476,6 +541,8 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Likuidasi</th>
<th class="text-center">Total Nilai Likuidasi</th>
<th class="text-center">Aksi</th> <th class="text-center">Aksi</th>
</tr> </tr>
</thead> </thead>
@@ -495,8 +562,17 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="tambahan_nilai[]" <input type="text" name="tambahan_nilai[]"
class="input currency-format"> class="input currency-format nilai-pasar">
</td> </td>
<td class="text-center">
<input type="text" name="tambahan_nilai_likuidasi[]"
class="input likuidasi"
onkeyup="calculateTotal(this)">
</td>
<td class="text-center">
<input type="text" name="tambahan_total_likuidasi[]"
class="input currency-format total-likuidasi" >
</td>
<td class="text-center"> <td class="text-center">
<button type="button" class="btn btn-danger" onclick="deleteRow(this)">Delete</button> <button type="button" class="btn btn-danger" onclick="deleteRow(this)">Delete</button>
</td> </td>
@@ -508,17 +584,17 @@
</div> </div>
`; `;
const newCurrencyInputs = kesimpulan.querySelectorAll(`#kesimpulan-${counter} .currency-format`); const newCurrencyInputs = kesimpulan.querySelectorAll(`#kesimpulan-${counter} .currency-format`);
newCurrencyInputs.forEach(input => { newCurrencyInputs.forEach(input => {
input.addEventListener('input', function() { input.addEventListener('input', function() {
handleCurrencyInput(this); handleCurrencyInput(this);
}); });
// Format initial value jika ada // Format initial value jika ada
if (input.value) { if (input.value) {
input.value = formatCurrency(input.value); input.value = formatCurrency(input.value);
} }
}); });
counter++; counter++;
} }
@@ -638,7 +714,10 @@
sertifikat: row.querySelector('input[name="fisik_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="fisik_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="fisik_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="fisik_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="fisik_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="fisik_luas_bangunan[]"]')?.value || "",
nilai: cleanCurrencyValue(row.querySelector('input[name="fisik_nilai[]"]')?.value || "") nilai: cleanCurrencyValue(row.querySelector('input[name="fisik_nilai[]"]')?.value || ""),
likuidasi: row.querySelector('input[name="likuidasi[]"]')?.value || "",
total_likuidasi: cleanCurrencyValue(row.querySelector(
'input[name="total_nilai_likuidasi[]"]')?.value || "")
}; };
if (fisikData.sertifikat) { if (fisikData.sertifikat) {
jsonData.fisik.push(fisikData); jsonData.fisik.push(fisikData);
@@ -651,7 +730,10 @@
sertifikat: row.querySelector('input[name="sesuai_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="sesuai_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="sesuai_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="sesuai_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="sesuai_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="sesuai_luas_bangunan[]"]')?.value || "",
nilai: cleanCurrencyValue(row.querySelector('input[name="sesuai_nilai[]"]')?.value || "") nilai: cleanCurrencyValue(row.querySelector('input[name="sesuai_nilai[]"]')?.value || ""),
likuidasi: row.querySelector('input[name="sesuai_likuidasi[]"]')?.value || "",
total_likuidasi: cleanCurrencyValue(row.querySelector(
'input[name="sesuai_total_likuidasi[]"]')?.value || "")
}; };
if (imbData.sertifikat) { if (imbData.sertifikat) {
jsonData.sesuai_imb.push(imbData); jsonData.sesuai_imb.push(imbData);
@@ -665,13 +747,16 @@
sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="tambahan_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="tambahan_luas_bangunan[]"]')?.value || "",
nilai: cleanCurrencyValue(row.querySelector('input[name="tambahan_nilai[]"]')?.value || "") nilai: cleanCurrencyValue(row.querySelector('input[name="tambahan_nilai[]"]')?.value || ""),
likuidasi: row.querySelector('input[name="tambahan_nilai_likuidasi[]"]')?.value || "",
total_likuidasi: cleanCurrencyValue(row.querySelector(
'input[name="tambahan_total_likuidasi[]"]')?.value || "")
}; };
console.log(imbData); console.log(imbData);
if (imbData.sertifikat) { if (imbData.sertifikat) {
jsonData.tambahan.push(imbData); jsonData.tambahan.push(imbData);
} }
}); });
// Ambil keterangan // Ambil keterangan
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || ""; const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
@@ -684,27 +769,81 @@
} }
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Initialize currency format for existing inputs // Initialize currency format for existing inputs
document.querySelectorAll('.currency-format').forEach(input => { document.querySelectorAll('.currency-format').forEach(input => {
input.addEventListener('input', function() { input.addEventListener('input', function() {
handleCurrencyInput(this); handleCurrencyInput(this);
});
// Format initial values if they exist
if (input.value) {
input.value = formatCurrency(input.value);
}
}); });
// Format initial values if they exist
if (input.value) {
input.value = formatCurrency(input.value);
}
}); });
});
function handleCurrencyInput(input) { function handleCurrencyInput(input) {
const value = input.value.replace(/[^\d]/g, ''); const value = input.value.replace(/[^\d]/g, '');
input.value = formatCurrency(value); input.value = formatCurrency(value);
}
function cleanCurrencyValue(value) {
return value.replace(/[^\d]/g, '');
}
function calculateTotal(element) {
const row = element.closest('tr');
const nilaiPasarInput = row.querySelector('.nilai-pasar');
let likuidasiInput = row.querySelector('.likuidasi');
const totalLikuidasiInput = row.querySelector('.total-likuidasi');
// Bersihkan nilai dari karakter non-digit
const cleanNilaiPasar = cleanCurrencyValue(nilaiPasarInput.value);
const cleanLikuidasi = cleanCurrencyValue(likuidasiInput.value);
likuidasiInput.value = formatPercentages(likuidasiInput.value);
// Konversi ke angka
const nilaiPasar = parseFloat(cleanNilaiPasar) || 0;
let likuidasi = parseFloat(cleanLikuidasi) || 0;
// Jika nilai likuidasi lebih dari 100, reset ke nilai awal yang diinputkan
if (likuidasi > 100) {
likuidasi = parseFloat(cleanLikuidasi) || 0; // Reset ke nilai awal
likuidasiInput.value = likuidasi
} }
function cleanCurrencyValue(value) {
return value.replace(/[^\d]/g, '');
}
// Pastikan nilai likuidasi tidak melebihi 100
likuidasi = Math.min(likuidasi, 100);
// Hitung total likuidasi
const totalLikuidasi = nilaiPasar - (nilaiPasar * (likuidasi / 100));
// Tampilkan hasil dengan format yang benar
totalLikuidasiInput.value = formatCurrency(totalLikuidasi.toString());
}
function formatPercentages(value) {
// Hapus semua karakter kecuali angka dan koma
let numericValue = value.replace(/[^0-9,]/g, '');
// Pastikan hanya satu koma yang ada
let parts = numericValue.split(',');
if (parts.length > 2) {
numericValue = parts[0] + ',' + parts[1]; // Pertahankan hanya bagian pertama dan kedua
}
// Jika nilai melebihi 100, batasi menjadi 100
let numericFloat = parseFloat(numericValue.replace(',', '.')) || 0;
if (numericFloat > 100) {
numericFloat = 100;
numericValue = '100';
}
// Kembalikan nilai dengan simbol %
return numericValue;
}
</script> </script>

View File

@@ -7,19 +7,17 @@
@section('content') @section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@if (Auth::user()->hasAnyRole(['senior-officer'])) @if (Auth::user()->hasAnyRole(['senior-officer']))
@include('lpj::component.detail-jaminan', [ @include('lpj::component.detail-jaminan', [
'backLink' => 'otorisator.view-laporan', 'backLink' => 'otorisator.view-laporan',
'queryParams' => [ 'queryParams' => [
'permohonanId' => request()->query('permohonanId'), 'permohonanId' => request()->query('permohonanId'),
'documentId' => request()->query('documentId'), 'documentId' => request()->query('documentId'),
'inspeksiId' => request()->query('inspeksiId'), 'inspeksiId' => request()->query('inspeksiId'),
'jaminanId' => request()->query('jaminanId'), 'jaminanId' => request()->query('jaminanId'),
'statusLpj' => 1, 'statusLpj' => 1,
], ],
'title' => 'Paparan dokument', 'title' => 'Paparan dokument',
]) ])
@else @else
@include('lpj::component.detail-jaminan', [ @include('lpj::component.detail-jaminan', [
'backLink' => 'penilai.show', 'backLink' => 'penilai.show',
@@ -29,5 +27,31 @@
@endif @endif
@include('lpj::penilai.components.foto-lampiran') @include('lpj::penilai.components.foto-lampiran')
<div class="card">
<div class="card-header bg-agi-50 uppercase">
Kertas Kerja
</div>
<div class="card-body flex items-center justify-between">
@php
$url = '';
$fileName = '';
if ($penilai && $penilai->kertas_kerja) {
$url = asset('storage/' . $penilai->kertas_kerja);
$fileName = basename($penilai->kertas_kerja);
}
@endphp
@if ($penilai && $penilai->kertas_kerja)
<button type="button" class="btn btn-primary" onclick="window.open('{{ $url }}', '_blank')">
<i class="ki-outline ki-cloud-download"></i>
Lihat Kertas Kerja</button>
<p class="text-2sm text-gray-700">{{ $fileName }}</p>
@else
<p class="text-2sm text-gray-700">Belum ada kertas kerja</p>
@endif
</div>
</div>
</div> </div>
@endsection @endsection

View File

@@ -245,8 +245,8 @@
approval_so: { approval_so: {
title: 'Approval SO', title: 'Approval SO',
render: (item, data) => { render: (item, data) => {
if(data.authorization.approve_so) { if(data?.authorization?.approve_so) {
return `${data.authorization.approve_so.name} | ${window.formatTanggalIndonesia(data.authorization.approve_so_at)}`; return `${data?.authorization?.approve_so?.name} | ${window.formatTanggalIndonesia(data?.authorization?.approve_so_at)}`;
} }
return ''; return '';
}, },
@@ -254,8 +254,8 @@
approval_dd: { approval_dd: {
title: 'Approval DD', title: 'Approval DD',
render: (item, data) => { render: (item, data) => {
if(data.authorization.approve_dd) { if(data?.authorization?.approve_dd) {
return `${data.authorization.approve_dd.name} | ${window.formatTanggalIndonesia(data.authorization.approve_dd_at)}`; return `${data?.authorization?.approve_dd?.name} | ${window.formatTanggalIndonesia(data?.authorization?.approve_dd_at)}`;
} }
return ''; return '';
}, },

View File

@@ -12,9 +12,20 @@
<i class="ki-filled ki-exit-left"></i> Back <i class="ki-filled ki-exit-left"></i> Back
</a> </a>
@else @else
<a href="{{ url()->previous() }}" class="btn btn-xs btn-info"> @php
<i class="ki-filled ki-exit-left"></i> Back use Illuminate\Support\Facades\Route;
</a> @endphp
@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']) }}"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@elseif (Auth::user()->hasAnyRole(['administrator', 'surveyor']) && Route::currentRouteName('penilai.show'))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
@endif @endif
{{-- <a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}" class="btn btn-xs btn-info"> {{-- <a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back <i class="ki-filled ki-exit-left"></i> Back

View File

@@ -527,17 +527,16 @@
<tr> <tr>
@php @php
$hubCadebPenghuni = $forminspeksi['asset']['hub_cadeb_penghuni'] ?? null;
$cekHub = $cekHub = $hubCadebPenghuni === 'sesuai' ? 'sesuai' : 'tidak sesuai';
isset($forminspeksi['asset']['hub_cadeb_penghuni']) &&
$forminspeksi['asset']['hub_cadeb_penghuni'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb_penghuni'][$cekHub]) $hubCadeb =
? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'] is_array($hubCadebPenghuni) && isset($hubCadebPenghuni[$cekHub])
: $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']; ? $hubCadebPenghuni[$cekHub]
: $hubCadebPenghuni[$cekHub] ?? null;
@endphp @endphp
<td><strong>Hubungan Penghuni Jaminan dengan Debitur</strong></td> <td><strong>Hubungan Penghuni Jaminan dengan Debitur</strong></td>
<td> <td>
@if (isset($basicData['hubPenghuni'])) @if (isset($basicData['hubPenghuni']))