525 lines
24 KiB
PHP
525 lines
24 KiB
PHP
@extends('layouts.main')
|
|
|
|
@section('breadcrumbs')
|
|
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
|
@endsection
|
|
|
|
@section('content')
|
|
@include('lpj::assetsku.includenya')
|
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
|
<div class="card border border-agi-100 pb-2.5">
|
|
<div class="card-header bg-agi-50" id="basic_settings">
|
|
<h3 class="card-title">
|
|
Detail Penilai
|
|
</h3>
|
|
<div class="flex items-center gap-2">
|
|
<a href="{{ route('penilai.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i>
|
|
Back</a>
|
|
</div>
|
|
</div>
|
|
<div class="card-body grid gap-5">
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Nomor Registrasi
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->nomor_registrasi) ? $permohonan->nomor_registrasi : '' }}</p>
|
|
</div>
|
|
<label class="form-label max-w-56">
|
|
Nama Debitur
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->debiture->name) ? $permohonan->debiture->name : '' }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Cabang
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->branch->name) ? $permohonan->branch->name : '' }}</p>
|
|
</div>
|
|
<label class="form-label max-w-56">
|
|
Alamat Jaminan
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ formatAlamat($permohonan->debiture) }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Nama AO/Pemohon
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->user->name) ? $permohonan->user->name : '' }}</p>
|
|
</div>
|
|
<label class="form-label max-w-56">
|
|
Fasilitas Kredit
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->jenisFasilitasKredit->name) ? $permohonan->jenisFasilitasKredit->name : '' }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Tanggal Permohonan
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
|
|
</div>
|
|
<label class="form-label max-w-56">
|
|
CIF
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ isset($permohonan->debiture->cif) ? $permohonan->debiture->cif : '' }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Tanggal Konfirmasi Kunjungan
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</p>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
|
<div class="card">
|
|
<div class="card-body grid gap-5">
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
@php
|
|
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
|
|
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
|
|
|
@endphp
|
|
<label class="form-label max-w-56">
|
|
Surveyor
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ $surveyor->userPenilaiTeam->name }}
|
|
</p>
|
|
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
|
|
</p>
|
|
</div>
|
|
<label class="form-label max-w-56">
|
|
Penilai
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ $penilai->userPenilaiTeam->name }}
|
|
</p>
|
|
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ checkRegionUserName($penilai->userPenilaiTeam->id) }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Tujuan Penilaian
|
|
</label>
|
|
<p class="flex text-gray-600 font-medium text-sm w-full">
|
|
{{ $permohonan->tujuanPenilaian->name }}</p>
|
|
<label class="form-label max-w-56">
|
|
Jenis Jaminan
|
|
</label>
|
|
<p class="flex text-gray-600 font-medium text-sm w-full">
|
|
@foreach ($permohonan->debiture->documents as $document)
|
|
{{ $document->jenisjaminan->name }}
|
|
@endforeach
|
|
</p>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Tanggal Survei
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Tanggal Laporan
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
No. Laporan
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@php
|
|
$inspeksiId = null;
|
|
foreach ($dokumen->inspeksi as $item) {
|
|
$inspeksiId = $item->id;
|
|
}
|
|
@endphp
|
|
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full card-footer mt-2 ">
|
|
<div class="flex gap-5">
|
|
<a class="btn btn-primary"
|
|
href="{{ route('penilai.lampiran', $permohonan->id) }}?documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
|
|
LAMPIRAN FOTO DAN DOKUMEN
|
|
</a>
|
|
|
|
<a class="btn btn-primary" data-modal-toggle="#modal_2">
|
|
KERTAS KERJA
|
|
</a>
|
|
<a class="btn btn-primary" href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
|
|
PAPARAN
|
|
</a>
|
|
|
|
<div class="dropdown" data-dropdown="true" data-dropdown-trigger="click">
|
|
<button class="dropdown-toggle btn btn-primary uppercase">
|
|
Pembuatan Laporan
|
|
</button>
|
|
|
|
<div class="dropdown-content w-full max-w-56 py-2">
|
|
<div class="menu menu-default flex flex-col w-full">
|
|
<div class="menu-item">
|
|
<a class="menu-link"
|
|
onclick="memo('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
|
<span class="menu-icon">
|
|
<i class="ki-outline ki-badge">
|
|
</i>
|
|
</span>
|
|
<span class="menu-title">
|
|
MEMO
|
|
</span>
|
|
</a>
|
|
</div>
|
|
<div class="menu-item">
|
|
<a class="menu-link"
|
|
onclick="resume('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
|
<span class="menu-icon">
|
|
<i class="ki-outline ki-profile-circle">
|
|
</i>
|
|
</span>
|
|
<span class="menu-title">
|
|
RESUME
|
|
</span>
|
|
</a>
|
|
</div>
|
|
{{-- untuk laporan standart itu non kerjasama tapi sederhanan in kerjasama --}}
|
|
<div class="menu-item">
|
|
<a class="menu-link"
|
|
onclick="seletSederhanaStandart('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
|
<span class="menu-icon">
|
|
<i class="ki-outline ki-setting-2"></i>
|
|
</span>
|
|
<span class="menu-title">LPJ</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="menu-item">
|
|
<a class="menu-link"
|
|
onclick="rap('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
|
<span class="menu-icon">
|
|
<i class="ki-outline ki-message-programming">
|
|
</i>
|
|
</span>
|
|
<span class="menu-title">
|
|
RAP
|
|
</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex justify-end gap-5">
|
|
<a class="btn btn-success" href="{{ route('penilai.print-out') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}&statusLpj=0" >
|
|
PRINT OUT
|
|
</a>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
<div class="flex justify-start gap-5">
|
|
<a class="btn btn-success" onclick="savePenilai()">
|
|
REPORT
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="modal" data-modal="true" id="modal_2">
|
|
<div class="modal-content modal-center-y max-w-[600px]">
|
|
<div class="modal-header">
|
|
<h3 class="modal-title">
|
|
Kertas Kerja
|
|
</h3>
|
|
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
|
|
<i class="ki-outline ki-cross">
|
|
</i>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body grid gap-5">
|
|
@php
|
|
$jenisJaminanId = null;
|
|
$inspeksiId = null;
|
|
$documentId = null;
|
|
foreach ($permohonan->debiture->documents as $item) {
|
|
$documentId = $item->id;
|
|
}
|
|
foreach ($dokumen->inspeksi as $item) {
|
|
$inspeksiId = $item->id;
|
|
}
|
|
@endphp
|
|
@foreach ($permohonan->debiture->documents as $document)
|
|
@if ($document->jenisjaminan)
|
|
@php
|
|
$jenisJaminanId = $document->jenisjaminan->id;
|
|
@endphp
|
|
@endif
|
|
@endforeach
|
|
<div class="flex items-baseline w-full">
|
|
<label for="" class="form-label max-w-56">Import Kertas Kerja</label>
|
|
<div class="flex justify-center items-center gap-2">
|
|
<input type="file" id="kertas_kerja" class="file-input">
|
|
<button type="button" class="btn btn-outline btn-success"
|
|
onclick="uploadKertasKerja({{ $permohonan->id }}, '{{ $documentId }}', '{{ $inspeksiId }}', '{{ $jenisJaminanId }}')">Upload</button>
|
|
</div>
|
|
</div>
|
|
<div class="form-group flex items-baseline flex-wrap">
|
|
|
|
@if ($jenisJaminanId)
|
|
<a class="btn btn-outline btn-primary w-full"
|
|
href="{{ route('penilai.export.kertas-kerja') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}">
|
|
Export Kertas Kerja
|
|
</a>
|
|
@else
|
|
<p class="text-red-500">Tidak ada dokumen yang memiliki jenis jaminan.</p>
|
|
@endif
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
|
|
<script>
|
|
function seletSederhanaStandart(permohonanId, documentId, inspeksiId, jaminanId) {
|
|
fetch(
|
|
`{{ url('/penilai/check-status-lpj') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}`
|
|
)
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (data.status) {
|
|
// Jika status LPJ sudah ada, arahkan langsung ke halaman
|
|
if (data.status === 'standar') {
|
|
showLoadingSwal('Tunggu ...');
|
|
window.location.href =
|
|
`{{ route('penilai.standard', $permohonan->id) }}?documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
} else if (data.status === 'sederhana') {
|
|
showLoadingSwal('Tunggu ...');
|
|
window.location.href =
|
|
`{{ route('penilai.sederhana', $permohonan->id) }}?documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
}
|
|
} else {
|
|
Swal.fire({
|
|
title: 'Pilih Jenis LPJ',
|
|
text: 'Apakah kamu akan memilih LPJ Standar?',
|
|
icon: 'question',
|
|
showCloseButton: true,
|
|
showDenyButton: true,
|
|
confirmButtonText: 'LPJ Standar',
|
|
denyButtonText: 'LPJ Sederhana',
|
|
confirmButtonColor: '#3085d6',
|
|
denyButtonColor: '#d33',
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
saveStatusLpj(permohonanId, documentId, inspeksiId, 'standar', jaminanId);
|
|
} else if (result.isDenied) {
|
|
saveStatusLpj(permohonanId, documentId, inspeksiId, 'sederhana', jaminanId);
|
|
}
|
|
});
|
|
}
|
|
console.log(data);
|
|
|
|
});
|
|
}
|
|
|
|
function saveStatusLpj(permohonanId, documentId, inspeksiId, type, jaminanId) {
|
|
fetch(`{{ url('/penilai/save-status-lpj') }}`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'X-CSRF-TOKEN': '{{ csrf_token() }}',
|
|
},
|
|
body: JSON.stringify({
|
|
permohonan_id: permohonanId,
|
|
document_id: documentId,
|
|
inspeksi_id: inspeksiId,
|
|
type: type
|
|
}),
|
|
}).then(response => response.json())
|
|
.then(data => {
|
|
if (data.success) {
|
|
if (type === 'standar') {
|
|
window.location.href =
|
|
`{{ route('penilai.standard', $permohonan->id) }}?documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
} else if (type === 'sederhana') {
|
|
window.location.href =
|
|
`{{ route('penilai.sederhana', $permohonan->id) }}?documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function uploadKertasKerja(permohonanId, documentId, inspeksiId, jaminanId) {
|
|
const kertasKerjaInput = document.getElementById('kertas_kerja');
|
|
if (!kertasKerjaInput.files.length) {
|
|
Swal.fire({
|
|
title: 'Error!',
|
|
text: 'Silakan pilih file sebelum mengupload.',
|
|
icon: 'error',
|
|
confirmButtonText: 'OK'
|
|
});
|
|
return;
|
|
}
|
|
|
|
const kertasKerja = kertasKerjaInput.files[0];
|
|
const formData = new FormData();
|
|
formData.append('permohonan_id', permohonanId);
|
|
formData.append('document_id', documentId);
|
|
formData.append('inspeksi_id', inspeksiId);
|
|
formData.append('jenis_jaminan_id', jaminanId);
|
|
formData.append('kertas_kerja', kertasKerja);
|
|
|
|
fetch(`{{ url('/penilai/import/kertas-kerja') }}`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'X-CSRF-TOKEN': '{{ csrf_token() }}',
|
|
},
|
|
body: formData,
|
|
})
|
|
.then(response => response.json()) // Pastikan respons diurai menjadi JSON
|
|
.then(data => {
|
|
if (data.success) {
|
|
Swal.fire({
|
|
title: 'Berhasil!',
|
|
text: data.message || 'Kertas kerja berhasil diunggah.',
|
|
icon: 'success',
|
|
confirmButtonText: 'OK'
|
|
}).then(result => {
|
|
if (result.isConfirmed) {
|
|
window.location.reload();
|
|
}
|
|
});
|
|
} else {
|
|
Swal.fire({
|
|
title: 'Error!',
|
|
text: data.message || 'Terjadi kesalahan.',
|
|
icon: 'error',
|
|
confirmButtonText: 'OK'
|
|
});
|
|
}
|
|
})
|
|
.catch(error => {
|
|
Swal.fire({
|
|
title: 'Error!',
|
|
text: 'Terjadi kesalahan saat mengunggah file.',
|
|
icon: 'error',
|
|
confirmButtonText: 'OK'
|
|
});
|
|
console.error('Error:', error); // Debug error di konsol
|
|
});
|
|
}
|
|
|
|
function resume(permohonanId, documentId, inspeksiId, jaminanId) {
|
|
showLoadingSwal('Tunggu ...');
|
|
window.location.href =
|
|
`{{ route('penilai.resume') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
}
|
|
|
|
function memo(permohonanId, documentId, inspeksiId, jaminanId) {
|
|
showLoadingSwal('Tunggu ...');
|
|
window.location.href =
|
|
`{{ route('penilai.memo') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
}
|
|
|
|
function rap(permohonanId, documentId, inspeksiId, jaminanId) {
|
|
showLoadingSwal('Tunggu ...');
|
|
window.location.href =
|
|
`{{ route('penilai.rap') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
|
}
|
|
|
|
|
|
function savePenilai() {
|
|
showLoadingSwal('Mengirim data keserver ...');
|
|
$.ajax({
|
|
url: "{{ route('penilai.proses.laporan', ['id' => $permohonan->id]) }}",
|
|
type: "POST",
|
|
headers: {
|
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
|
},
|
|
success: function(response) {
|
|
if (response.success) {
|
|
// window.location.reload();
|
|
hideLoadingSwal();
|
|
toastrSuccessBuild(response.message);
|
|
}
|
|
},
|
|
error: function(xhr, status, error) {
|
|
console.log('Error checking button status:', error, status, xhr);
|
|
if (xhr.responseJSON.message) {
|
|
// window.location.reload();
|
|
toastrErrorBuild(xhr.responseJSON.message);
|
|
} else {
|
|
// window.location.reload();
|
|
toastrErrorBuild('Terjadi kesalahan');
|
|
}
|
|
hideLoadingSwal();
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
function checkLaporan(){
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
@include('lpj::surveyor.js.utils')
|