update print out sederhana, resume, memo dan paparan dan penambahan breadcrumbs

This commit is contained in:
majid
2025-01-06 14:26:28 +07:00
parent a22addeb50
commit e4f48dbc40
9 changed files with 220 additions and 128 deletions

View File

@@ -10,6 +10,7 @@ use Modules\Lpj\Models\Penilai;
use Modules\Lpj\Models\Laporan;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Exports\KertasKerjaExport;
use Modules\Lpj\Http\Controllers\SurveyorController;
@@ -153,7 +154,7 @@ class PenilaiController extends Controller
$permohonan = $data['permohonan'];
$inspeksi = Inspeksi::where('permohonan_id', $req['permohonanId'])->where('dokument_id', $req['documentId'])->first();
$penilai = Penilai::where('permohonan_id', $req['permohonanId'])->where('dokument_id', $req['documentId'])->firstska();
$penilai = Penilai::where('permohonan_id', $req['permohonanId'])->where('dokument_id', $req['documentId'])->first();
$provinces = Province::all();
$basicData = $this->surveyorController->getCommonData();
@@ -582,6 +583,7 @@ class PenilaiController extends Controller
public function storeLpjSederhanadanStandard(Request $request)
{
DB::beginTransaction();
try {
$validatedRequest = app(FormSurveyorRequest::class);
$this->surveyorController->store($validatedRequest);
@@ -634,13 +636,14 @@ class PenilaiController extends Controller
'lpj' => json_encode($data),
]
);
DB::commit();
return response()->json([
'success' => true,
'message' => 'Berhasil menyimpan LPJ',
'data' => $penilai
'data' => $validatedRequest
], 200);
} catch (\Throwable $e) {
DB::rollBack();
return response()->json([
'success' => false,
'message' => 'Terjadi kesalahan saat menyimpan LPJ',
@@ -654,14 +657,16 @@ class PenilaiController extends Controller
public function print_out(Request $request)
{
$documentId = $request->query('documentId');
$jaminanId = $request->query('jaminanId');
$permohonanId = $request->query('permohonanId');
$statusLpj = $request->query('statusLpj');
$tipeLaporan = $request->query('tipe');
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId,
$documentId,
$jaminanId);
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
$basicData = $this->surveyorController->getCommonData();
$inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
@@ -676,19 +681,17 @@ class PenilaiController extends Controller
'nomor_laporan' => generateLpjUniqueCode(6),
]
);
$nomorLaporan = $laporan->nomor_laporan;
$nomorLaporan = $laporan->nomor_laporan;
$forminspeksi = null;
$lpjData = null;
$formFoto = null;
if ($inspeksi) {
$forminspeksi = json_decode($inspeksi->data_form, true);
$formFoto = json_decode($inspeksi->foto_form, true);
// $denahForm = json_decode($data->denah_form, true);
$dataPembanding = json_decode($inspeksi->data_pembanding, true);
}
if ($lpj) {
@@ -706,22 +709,7 @@ class PenilaiController extends Controller
'province_code' => $this->getWilayahName($inputAddress['province_code'] ?? null, 'province')
];
['sederhana', 'resume'];
['memo'];
['rap'];
// $laporan = $lpj->type == ;
// $laporanPenilai = $lpj
$viewLaporan = null;
// $viewLaporan = 'penilai.components.print-out-sederhana';
// $viewLaporan = 'penilai.components.print-out-standard';
// $viewLaporan = 'penilai.components.print-resume';
// $viewLaporan = 'penilai.components.print-memo';
// $viewLaporan = 'penilai.components.print-rap';
$viewLaporan = $this->getViewLaporan($tipeLaporan);
try {
if ($statusLpj) {
@@ -741,7 +729,6 @@ class PenilaiController extends Controller
$pdf->setPaper('A4', 'portrait');
return $pdf->stream();
} else {
$pdf = view('lpj::' . $viewLaporan, compact(
// $pdf = PDF::loadView('lpj::' . $viewLaporan, compact(
@@ -771,6 +758,19 @@ class PenilaiController extends Controller
}
private function getViewLaporan($tipe)
{
$viewMap = [
'sederhana' => 'penilai.components.print-out-sederhana',
'standard' => 'penilai.components.print-out-standard',
'resume' => 'penilai.components.print-resume',
'memo' => 'penilai.components.print-memo',
'rap' => 'penilai.components.print-rap'
];
return $viewMap[$tipe] ?? 'penilai.components.print-resume';
}
public function getWilayahName($code, $type)
{
try {

View File

@@ -1,8 +1,7 @@
@extends('layouts.main')
@section('breadcrumbs')
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
--}}
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')

View File

@@ -1,9 +1,7 @@
@extends('layouts.main')
@section('breadcrumbs')
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
--}}
Resume
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')

View File

@@ -1,9 +1,7 @@
@extends('layouts.main')
@section('breadcrumbs')
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
--}}
Paparan
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
@include('lpj::assetsku.includenya')

View File

@@ -135,7 +135,7 @@
<td style="vertical-align: top;">
<table style="width: 100%; border-collapse: collapse;">
<tr>
<td style="width: 30%; padding: 2px;">Nama Debitur</td>
<td style=" padding: 2px;">Nama Debitur</td>
<td style=" padding: 2px;">:</td>
<td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
@@ -238,7 +238,7 @@
<td>
<table style="width: 100%; border-collapse: collapse;">
<tr>
<td style="width: 30%; padding: 2px;">Fasilitas Kredit</td>
<td style=" padding: 2px;">Fasilitas Kredit</td>
<td style=" padding: 2px;">:</td>
<td style=" padding: 2px;">{{ $permohonan->jenisFasilitasKredit->name ?? '' }}</td>
</tr>

View File

@@ -107,6 +107,13 @@
</head>
<body style="width: 80%; margin: auto">
@php
$data = '';
foreach ($permohonan->debiture->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', ';
}
$data = rtrim($data, ', ');
@endphp
<header id="header">
<table style="width: 100%; border: none;">
<tr>
@@ -128,28 +135,28 @@
</tr>
</table>
<table style="width: 100%">
<table >
<tr>
<td style="width: 10%">Pemohon</td>
<td>:</td>
<td></td>
<td style="width: 20%">Pemohon</td>
<td style="width: 1%">:</td>
<td style="width: 100%">{{ $permohonan->user->name }}</td>
</tr>
<tr>
<td>Atas Nama Cadeb</td>
<td>:</td>
<td></td>
<td>{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
<tr>
<td>Aset</td>
<td>:</td>
<td></td>
<td>{{ $data ?? '' }}</td>
</tr>
<tr>
<td>Lokasi Objek</td>
<td>:</td>
<td></td>
<td>{{ $alamat['village_code'] ?? '' }}, {{ $alamat['district_code'] ?? '' }}, {{ $alamat['city_code'] ?? '' }}, {{ $alamat['province_code'] ?? '' }}</td>
</tr>
<tr>
<td>Dokumen</td>
@@ -186,19 +193,23 @@
</td>
</tr>
<tr>
@php
$cekLuas = isset(
$forminspeksi['tanah']['luas_tanah']['tidak sesuai'],
)
? 'tidak sesuai'
: 'sesuai';
$luas = $forminspeksi['tanah']['luas_tanah'][$cekLuas] ?? null;
@endphp
<td>Luas Tanah</td>
<td>:</td>
<td></td>
<td>{{ $luas ?? '' }}</td>
</tr>
<tr>
<td>Tanggal Kunjungan</td>
<td>:</td>
<td></td>
</tr>
<tr>
<td>Luast Lahan</td>
<td>:</td>
<td></td>
<td>{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</td>
</tr>
</table>
@@ -207,6 +218,8 @@
<td>
<h2 style=" text-transform: uppercase;">Faktor Positif</h2>
</td>
<td>:</td>
<td></td>
</tr>
</table>
@@ -215,6 +228,8 @@
<td>
<h2 style=" text-transform: uppercase;">Faktor negatif</h2>
</td>
<td>:</td>
<td></td>
</tr>
</table>
<table style="width: 100%">
@@ -222,6 +237,8 @@
<td>
<h2 style=" text-transform: uppercase;">Nilai Pasar Wajar</h2>
</td>
<td>:</td>
<td></td>
</tr>
</table>
<table border="1" style="width: 100%">

View File

@@ -1,9 +1,8 @@
@extends('layouts.main')
@section('breadcrumbs')
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
--}}
Resume
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
@@ -315,7 +314,7 @@
<label class="form-label lg:form-label max-w-56 ">Catatan yang Perlu Diperhatikan
</label>
<div class="input-group w-full flex gap-2">
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['fakta']['keterangan'] ?? '') }}</textarea>
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $resumeData['keterangan'] ?? '') }}</textarea>
</div>
</div>
</div>

View File

@@ -5,7 +5,7 @@
@endsection
@section('content')
@include('lpj::assetsku.includenya')
@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">
@@ -128,7 +128,8 @@
{{ $surveyor->userPenilaiTeam->name }}
</p>
<p class="flex w-full text-gray-600 font-medium text-sm">{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
<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">
@@ -193,6 +194,10 @@
foreach ($dokumen->inspeksi as $item) {
$inspeksiId = $item->id;
}
$jaminanId = $dokumen->id;
$currentInspeksi = $inspeksiData[$jaminanId] ?? null;
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT'];
@endphp
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full card-footer mt-2 ">
@@ -205,7 +210,8 @@
<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 }}">
<a class="btn btn-primary"
href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
PAPARAN
</a>
@@ -216,41 +222,7 @@
<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>
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
<div class="menu-item">
<a class="menu-link"
onclick="rap('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
@@ -263,13 +235,57 @@
</span>
</a>
</div>
@else
<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>
@if (!in_array(strtoupper($dokumen->jenisJaminan->name), $tanahBangunanTypes))
@if ($permohonan->status_bayar === 'belum_bayar')
<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>
@endif
{{-- 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 }}, '{{ $permohonan->jenisFasilitasKredit->name }}')">
<span class="menu-icon">
<i class="ki-outline ki-setting-2"></i>
</span>
<span class="menu-title">LPJ</span>
</a>
</div>
@endif
@endif
</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" >
<a class="btn btn-success"
onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, )">
PRINT OUT
</a>
</div>
@@ -347,7 +363,7 @@
<script>
function seletSederhanaStandart(permohonanId, documentId, inspeksiId, jaminanId) {
function seletSederhanaStandart(permohonanId, documentId, inspeksiId, jaminanId, fasilitasKredit) {
fetch(
`{{ url('/penilai/check-status-lpj') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}`
)
@@ -364,6 +380,17 @@
window.location.href =
`{{ route('penilai.sederhana', $permohonan->id) }}?documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
}
} else {
if (fasilitasKredit.toUpperCase() === 'KPR KERJASAMA') {
Swal.fire({
title: 'Jenis LPJ Ditentukan',
text: 'Jenis fasilitas kredit adalah KPR Kerjasama. LPJ akan diarahkan ke Sederhana.',
icon: 'info',
confirmButtonText: 'Lanjutkan',
confirmButtonColor: '#3085d6',
}).then(() => {
saveStatusLpj(permohonanId, documentId, inspeksiId, 'sederhana', jaminanId);
});
} else {
Swal.fire({
title: 'Pilih Jenis LPJ',
@@ -383,6 +410,7 @@
}
});
}
}
console.log(data);
});
@@ -527,10 +555,38 @@
}
function checkLaporan(){
function checkLaporan(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 laporan ada, arahkan ke halaman cetak
window.location.href =
`{{ route('penilai.print-out') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}&statusLpj=0`;
} else {
// Jika laporan belum ada, tampilkan pesan peringatan
Swal.fire({
title: 'Laporan Belum Ada',
text: 'Silakan isi laporan terlebih dahulu sebelum mencetak.',
icon: 'warning',
confirmButtonText: 'OK',
confirmButtonColor: '#3085d6',
});
}
})
.catch(error => {
console.error('Error:', error);
Swal.fire({
title: 'Terjadi Kesalahan',
text: 'Tidak dapat memproses permintaan. Silakan coba lagi nanti.',
icon: 'error',
confirmButtonText: 'OK',
confirmButtonColor: '#d33',
});
});
}
</script>
@include('lpj::surveyor.js.utils')

View File

@@ -582,11 +582,36 @@
$trail->push('Detail Penilai');
});
Breadcrumbs::for('penilai.standard', function (BreadcrumbTrail $trail) {
$trail->parent('penilai.show');
$trail->push('Standard');
});
Breadcrumbs::for('penilai.sederhana', function (BreadcrumbTrail $trail) {
$trail->parent('penilai.show');
$trail->push('Sederhana');
});
Breadcrumbs::for('penilai.memo', function (BreadcrumbTrail $trail) {
$trail->parent('penilai.show');
$trail->push('Memo');
});
Breadcrumbs::for('penilai.resume', function (BreadcrumbTrail $trail) {
$trail->parent('penilai.show');
$trail->push('Resume');
});
Breadcrumbs::for('penilai.lampiran', function (BreadcrumbTrail $trail) {
$trail->parent('penilai');
$trail->parent('penilai.show');
$trail->push('Lampiran Foto dan Dokument');
});
Breadcrumbs::for('penilai.paparan', function (BreadcrumbTrail $trail) {
$trail->parent('penilai.show');
$trail->push('Paparan');
});
Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata');