perbaikan kertas kerja, paparan, dan lampiran
This commit is contained in:
@@ -190,7 +190,6 @@ class PenilaiController extends Controller
|
||||
*/
|
||||
public function paparan(Request $request)
|
||||
{
|
||||
$permohonanId = $request->query('permohonanId');
|
||||
|
||||
$permohonanId = $request->query('permohonanId');
|
||||
$documentId = $request->query('documentId');
|
||||
@@ -198,9 +197,15 @@ class PenilaiController extends Controller
|
||||
$jaminanId = $request->query('jaminanId');
|
||||
|
||||
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
$penilai = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where
|
||||
('dokument_id', $documentId)->first();
|
||||
$formFoto = null;
|
||||
if ($inspeksi) {
|
||||
$formFoto = json_decode($inspeksi->foto_form, true);
|
||||
}
|
||||
|
||||
return view('lpj::penilai.components.paparan');
|
||||
return view('lpj::penilai.components.paparan', compact('permohonan', 'formFoto', 'penilai'));
|
||||
}
|
||||
|
||||
|
||||
@@ -296,21 +301,15 @@ class PenilaiController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function export_kertas_kerja($id, $jaminanId)
|
||||
public function export_kertas_kerja(Request $request)
|
||||
{
|
||||
$data = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $jaminanId)->first();
|
||||
|
||||
// $data = null;
|
||||
// $headerInfo = [
|
||||
// 'tanggal_penilaian' => '',
|
||||
// 'nama_pemilik' => '',
|
||||
// 'nama_pemberi_tugas' => '',
|
||||
// 'lokasi_lengkap' => '',
|
||||
// 'nama_debitur' => ''
|
||||
// ];
|
||||
$permohonanId = $request->query('permohonanId');
|
||||
$documentId = $request->query('documentId');
|
||||
$inspeksiId = $request->query('inspeksiId');
|
||||
$jaminanId = $request->query('jaminanId');
|
||||
|
||||
// $datas = json_decode($data->data_pembanding);
|
||||
// return response()->json(['data' =>$datas ]);
|
||||
$data = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
|
||||
// return view('lpj::component.kertas-kerja', compact('data'));
|
||||
return Excel::download(new KertasKerjaExport($data), 'kertas-kerja.xlsx');
|
||||
|
||||
@@ -464,79 +464,147 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h4>Peta Objek dan Pembanding
|
||||
</h4>
|
||||
<h4>Peta Objek dan Pembanding</h4>
|
||||
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
@endphp
|
||||
|
||||
// echo $dataForm;
|
||||
@php
|
||||
$imagePath = $dataform['foto_gistaru'];
|
||||
@endphp
|
||||
<img
|
||||
src="{{ asset('public/' . $imagePath) }}"
|
||||
alt=""
|
||||
class="max-w-full h-auto mx-auto"
|
||||
|
||||
@endphp
|
||||
>
|
||||
|
||||
@for ($i = 0; $i < count($fotoTypes); $i++)
|
||||
<img src="{{ isset($dataform[$fotoTypes[$i]]) ? asset('storage/' . $dataform[$fotoTypes[$i]]) : '#' }}"
|
||||
alt="{{ $fotoTypes[$i] }}" style="max-width: 40rem;">
|
||||
@endfor
|
||||
<div class="grid grid-cols-4 gap-4">
|
||||
@forelse ($fotoTypes as $type)
|
||||
<div class="text-center">
|
||||
@php
|
||||
$imagePath = $dataform[$type];
|
||||
@endphp
|
||||
|
||||
<h4>FOTO OBJEK DAN DATA PEMBANDING</h4>
|
||||
|
||||
@foreach ($dataPembanding['data_pembanding'] as $item)
|
||||
<img src="{{ isset($item['foto_objek']) ? asset('storage/' . $item['foto_objek']) : '#' }}"
|
||||
alt="Foto Objek" style="max-width: 20rem;">
|
||||
<p style="text-center">Data Pembanding {{ $loop->iteration }}</p>
|
||||
@endforeach
|
||||
|
||||
|
||||
@php
|
||||
$dataFoto = json_decode($data->foto_form, true);
|
||||
@endphp
|
||||
<h4>FOTO OBJEK</h4>
|
||||
|
||||
@php
|
||||
$images = [];
|
||||
|
||||
// Rute Menuju Lokasi
|
||||
foreach ($dataFoto['rute_menuju_lokasi'] ?? [] as $rute) {
|
||||
$images[] = $rute['foto_rute'] ?? null;
|
||||
}
|
||||
|
||||
// Objek Jaminan
|
||||
foreach ($dataFoto['object_jaminan'] ?? [] as $objek) {
|
||||
$images[] = $objek['foto_objek'] ?? null;
|
||||
}
|
||||
|
||||
// Lingkungan
|
||||
foreach ($dataFoto['lingkungan'] ?? [] as $lingkungan) {
|
||||
$images[] = $lingkungan['foto_lingkungan'] ?? null;
|
||||
}
|
||||
|
||||
// Lantai Unit
|
||||
foreach ($dataFoto['foto_lantai_unit'] ?? [] as $lantai) {
|
||||
$images[] = $lantai['foto_lantai_unit'] ?? null;
|
||||
}
|
||||
|
||||
// Tambahan foto lainnya
|
||||
$images[] = $dataFoto['foto_basement'] ?? null;
|
||||
$images[] = $dataFoto['foto_gerbang'] ?? null;
|
||||
$images[] = $dataFoto['pendamping'] ?? null;
|
||||
|
||||
// Filter null values
|
||||
$images = array_filter($images);
|
||||
@endphp
|
||||
|
||||
<div class="row">
|
||||
@foreach ($images as $image)
|
||||
<img src="{{ asset('storage/' . $image) }}" alt="Foto Survey"
|
||||
style="
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
object-fit: cover;
|
||||
margin: 10px;
|
||||
"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'">
|
||||
@endforeach
|
||||
{{-- @if ($imagePath && Storage::exists($imagePath)) --}}
|
||||
<img
|
||||
src="{{ asset('public/' . $imagePath) }}"
|
||||
alt="{{ $type }}"
|
||||
class="max-w-full h-auto mx-auto"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'"
|
||||
>
|
||||
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||
{{-- @else
|
||||
<div class="bg-gray-200 p-4 text-center">
|
||||
<p>Tidak ada gambar</p>
|
||||
</div>
|
||||
@endif --}}
|
||||
</div>
|
||||
@empty
|
||||
<p>Tidak ada tipe foto yang tersedia</p>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
<h4 class="mt-6">FOTO OBJEK DAN DATA PEMBANDING</h4>
|
||||
|
||||
<div class="grid grid-cols-4 gap-4">
|
||||
@forelse ($dataPembanding['data_pembanding'] ?? [] as $index => $item)
|
||||
<div class="text-center">
|
||||
@php
|
||||
$fotoObjek = $item['foto_objek'];
|
||||
@endphp
|
||||
|
||||
@if ($fotoObjek && Storage::exists($fotoObjek))
|
||||
<img
|
||||
src="{{ asset('storage/' . $fotoObjek) }}"
|
||||
alt="Foto Objek Pembanding {{ $loop->iteration }}"
|
||||
class="max-w-full h-auto mx-auto"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'"
|
||||
>
|
||||
<p class="mt-2 text-sm">Data Pembanding {{ $loop->iteration }}</p>
|
||||
@else
|
||||
<div class="bg-gray-200 p-4 text-center">
|
||||
<p>Tidak ada gambar pembanding</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@empty
|
||||
<p class="col-span-4">Tidak ada data pembanding</p>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
<h4 class="mt-6">FOTO OBJEK</h4>
|
||||
|
||||
@php
|
||||
// Fungsi untuk mengumpulkan foto dengan pengecekan yang aman
|
||||
function collectSafeImages($data, $paths = []) {
|
||||
if (!is_array($data)) {
|
||||
return $paths;
|
||||
}
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
if (is_array($value)) {
|
||||
// Jika array memiliki kunci foto
|
||||
if (isset($value['foto_rute'])) {
|
||||
$paths[] = $value['foto_rute'];
|
||||
}
|
||||
if (isset($value['foto_objek'])) {
|
||||
$paths[] = $value['foto_objek'];
|
||||
}
|
||||
if (isset($value['foto_lingkungan'])) {
|
||||
$paths[] = $value['foto_lingkungan'];
|
||||
}
|
||||
if (isset($value['foto_lantai_unit'])) {
|
||||
$paths[] = $value['foto_lantai_unit'];
|
||||
}
|
||||
|
||||
// Rekursif untuk nested array
|
||||
$paths = collectSafeImages($value, $paths);
|
||||
} elseif (is_string($value) && strpos($value, 'foto_') !== false) {
|
||||
$paths[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $paths;
|
||||
}
|
||||
|
||||
// Decode foto form dengan penanganan error
|
||||
try {
|
||||
$dataFoto = json_decode($data->foto_form, true) ?? [];
|
||||
} catch (Exception $e) {
|
||||
$dataFoto = [];
|
||||
}
|
||||
|
||||
// Kumpulkan foto
|
||||
$images = collectSafeImages($dataFoto);
|
||||
|
||||
// Filter foto yang valid
|
||||
$validImages = array_filter($images, function($image) {
|
||||
return $image && Storage::exists($image);
|
||||
})
|
||||
|
||||
|
||||
|
||||
@endphp
|
||||
|
||||
<div class="grid grid-cols-4 gap-4">
|
||||
@forelse ($validImages as $image)
|
||||
<div class="text-center">
|
||||
<img
|
||||
src="{{ asset('storage/' . $image) }}"
|
||||
alt="Foto Survey"
|
||||
class="w-full h-64 object-cover"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'"
|
||||
>
|
||||
</div>
|
||||
@empty
|
||||
<div class="col-span-4 text-center bg-gray-200 p-4">
|
||||
<p>Tidak ada foto objek yang tersedia</p>
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
137
resources/views/penilai/components/foto-lampiran.blade.php
Normal file
137
resources/views/penilai/components/foto-lampiran.blade.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Rute Menuju Lokasi
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto))
|
||||
@foreach ($formFoto['rute_menuju_lokasi'] as $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name_rute'] . ' ' . $loop->index + 1 }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($item['foto_rute']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Object Jaminan
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['object_jaminan']))
|
||||
@foreach ($formFoto['object_jaminan'] as $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
{{ $item['name_objek'] }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($item['foto_objek']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (isset($formFoto['foto_basement']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Basement
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Basemnt
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_basement']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_gerbang']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Gerbang
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Gerbang
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_gerbang']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
@if (isset($formFoto['pendamping']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Pendamping
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Pendamping
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['pendamping']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -11,8 +11,13 @@
|
||||
<div class="form-label lg:form-label max-w-56 grid gap-2.5">
|
||||
<label class=" ">Pembanding {{ $key + 1 }}
|
||||
</label>
|
||||
<img src="{{ isset($item['foto_objek']) ? asset('storage/' . old('foto_objek', $item['foto_objek'])) : '#' }}"
|
||||
alt="Gambar foto_objek" style="width: 20rem;" class="mx-auto object-cover">
|
||||
<div class="image-container">
|
||||
<img
|
||||
src="{{ isset($item['foto_objek']) ? asset('storage/' . old('foto_objek', $item['foto_objek'])) : '#' }}"
|
||||
alt="Gambar foto_objek"
|
||||
class="responsive-image"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid gap-2.5 w-full">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
@@ -71,3 +76,20 @@
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
.image-container {
|
||||
max-width: 20rem;
|
||||
max-height: 15rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.responsive-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
@@ -72,7 +72,23 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include('lpj::penilai.components.foto-lampiran')
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header uppercase">
|
||||
Kertas Kerja
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
@php
|
||||
$url = asset('storage/' . $penilai->kertas_kerja);
|
||||
@endphp
|
||||
|
||||
<iframe src="https://docs.google.com/gview?url={{$url}}&embedded=true" style="width:100%; height:500px;" frameborder="0"></iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -114,144 +114,7 @@
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Rute Menuju Lokasi
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto))
|
||||
@foreach ($formFoto['rute_menuju_lokasi'] as $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class="text-gray-600 font-semibold text-xl">
|
||||
{{ $item['name_rute'] . ' ' . $loop->index + 1 }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($item['foto_rute']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Object Jaminan
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isset($formFoto['object_jaminan']))
|
||||
@foreach ($formFoto['object_jaminan'] as $item)
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
{{ $item['name_objek'] }}
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($item['foto_objek']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (isset($formFoto['foto_basement']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Basement
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Basemnt
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_basement']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($formFoto['foto_gerbang']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Gerbang
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Gerbang
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['foto_gerbang']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
@if (isset($formFoto['pendamping']))
|
||||
<div class="card">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Pendamping
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="flex items-center justify-between mt-5">
|
||||
<div class="grid gap-5">
|
||||
<h2 class=" font-semibold text-xl">
|
||||
Pendamping
|
||||
</h2>
|
||||
<div class="flex items-center">
|
||||
|
||||
|
||||
<img src="{{ Storage::url($formFoto['pendamping']) }}" alt="">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@include('lpj::penilai.components.foto-lampiran')
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
<a class="btn btn-primary" data-modal-toggle="#modal_2">
|
||||
KERTAS KERJA
|
||||
</a>
|
||||
<a class="btn btn-primary" href="{{ route('penilai.paparan') }}">
|
||||
<a class="btn btn-primary" href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
|
||||
PAPARAN
|
||||
</a>
|
||||
|
||||
@@ -308,7 +308,6 @@
|
||||
@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"
|
||||
@@ -319,7 +318,7 @@
|
||||
|
||||
@if ($jenisJaminanId)
|
||||
<a class="btn btn-outline btn-primary w-full"
|
||||
href="{{ route('penilai.export.kertas-kerja', ['id' => $permohonan->id, 'jaminanId' => $jenisJaminanId]) }}">
|
||||
href="{{ route('penilai.export.kertas-kerja') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}">
|
||||
Export Kertas Kerja
|
||||
</a>
|
||||
@else
|
||||
@@ -515,6 +514,8 @@
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
@include('lpj::surveyor.js.utils')
|
||||
|
||||
@@ -537,7 +537,7 @@ Route::middleware(['auth'])->group(function () {
|
||||
Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables');
|
||||
|
||||
Route::get('lampiran/{id}', [PenilaiController::class, 'lampiran'])->name('lampiran');
|
||||
Route::get('export/kertas-kerja/{id}/{jaminanId}', [PenilaiController::class, 'export_kertas_kerja'])->name('export.kertas-kerja');
|
||||
Route::get('export/kertas-kerja', [PenilaiController::class, 'export_kertas_kerja'])->name('export.kertas-kerja');
|
||||
|
||||
Route::post('import/kertas-kerja', [PenilaiController::class, 'import_kertas_kerja'])->name('import.kertas-kerja');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user