Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2025-03-11 11:51:50 +07:00
9 changed files with 320 additions and 276 deletions

View File

@@ -9,6 +9,7 @@
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Http\UploadedFile;
use Log; use Log;
use Modules\Location\Models\City; use Modules\Location\Models\City;
use Modules\Location\Models\District; use Modules\Location\Models\District;
@@ -249,7 +250,7 @@
'jenis_legalitas_jaminan_id' => $value, 'jenis_legalitas_jaminan_id' => $value,
'name' => $request->name[$key], 'name' => $request->name[$key],
'keterangan' => $request->keterangan[$key], 'keterangan' => $request->keterangan[$key],
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '' 'details' => isset($request->custom_field[$key]) ? json_encode(array_values($request->custom_field[$key])) : ''
]; ];
$dokumenJaminan = []; $dokumenJaminan = [];
@@ -279,7 +280,6 @@
} }
// Setelah loop, periksa apakah ada dokumen yang dihapus // Setelah loop, periksa apakah ada dokumen yang dihapus
$existingDetail = $existingDetails->get($request->detail_dokumen_jaminan_id[$key] ?? null); $existingDetail = $existingDetails->get($request->detail_dokumen_jaminan_id[$key] ?? null);
@@ -287,32 +287,69 @@
$existingDokumen = json_decode($existingDetail->dokumen_jaminan, true) ?? []; $existingDokumen = json_decode($existingDetail->dokumen_jaminan, true) ?? [];
$existingNomor = json_decode($existingDetail->dokumen_nomor, true) ?? []; $existingNomor = json_decode($existingDetail->dokumen_nomor, true) ?? [];
$newDokumenJaminan = [];
$newDokumenNomor = [];
$allFilesDeleted = true;
// Jika jumlah dokumen berkurang, berarti ada yang dihapus foreach ($existingDokumen as $index => $existingFile) {
if (count($existingDokumen) > count($dokumenJaminan)) { if (isset($request->dokumen_jaminan[$key][$index])) {
$dokumenJaminan = $existingDokumen; $allFilesDeleted = false;
$dokumenNomor = $existingNomor; $file = $request->dokumen_jaminan[$key][$index];
foreach ($request->dokumen_jaminan[$key] as $index => $file) { if ($file instanceof \Illuminate\Http\UploadedFile) {
if ($file === null) { // File baru diupload
// Hapus dokumen yang tidak ada lagi $file_name = $file->getClientOriginalName();
unset($dokumenJaminan[$index]); $file->storeAs('public/jaminan/' . $debitur->id . '/' . $document->id . '/', $file_name);
unset($dokumenNomor[$index]); $newDokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
} elseif (is_string($file) && !empty($file)) { } elseif (is_string($file) && !empty($file)) {
// Update nomor dokumen untuk file yang tidak diubah // File tidak diubah
$dokumenNomor[$index] = $request->dokumen_nomor[$key][$index] ?? '-'; $newDokumenJaminan[] = $existingFile;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? $existingNomor[$index];
}
} else {
// File dihapus, hapus dari storage jika ada
if (Storage::exists('public/' . $existingFile)) {
Storage::delete('public/' . $existingFile);
} }
} }
// Reset array keys }
$dokumenJaminan = array_values($dokumenJaminan);
$dokumenNomor = array_values($dokumenNomor); // Tambahkan file baru yang mungkin ditambahkan
foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) {
if ($file instanceof UploadedFile) {
$allFilesDeleted = false;
$file_name = $file->getClientOriginalName();
$path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
if (!in_array($path, $newDokumenJaminan)) {
$file->storeAs('public/' . dirname($path), $file_name);
$newDokumenJaminan[] = $path;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
} elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) {
$allFilesDeleted = false;
$newDokumenJaminan[] = $file;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
}
if ($allFilesDeleted) {
$dokumenJaminan = [];
$dokumenNomor = [];
} else {
$dokumenJaminan = $newDokumenJaminan;
$dokumenNomor = $newDokumenNomor;
} }
} }
if (!empty($dokumenJaminan)) { if (!empty($dokumenJaminan)) {
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan); $detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
$detailData['dokumen_nomor'] = json_encode($dokumenNomor); $detailData['dokumen_nomor'] = json_encode($dokumenNomor);
} else if(empty($dokumenJaminan)){
$detailData['dokumen_jaminan'] = null;
$detailData['dokumen_nomor'] = null;
} }
if (isset($request->detail_dokumen_jaminan_id[$key])) { if (isset($request->detail_dokumen_jaminan_id[$key])) {

View File

@@ -1,256 +1,265 @@
<?php <?php
namespace Modules\Lpj\Http\Controllers; namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Exception; use Exception;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\JenisPenilaian; use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Models\Penilai; use Modules\Lpj\Models\DokumenJaminan;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\JenisPenilaian;
use Modules\Lpj\Models\Regions; use Modules\Lpj\Models\Penilai;
use Modules\Lpj\Models\DokumenJaminan; use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\Regions;
class RegistrasiController extends Controller class RegistrasiController extends Controller
{
public $user;
public function index()
{ {
return view('lpj::registrasi.index'); public $user;
}
public function dataForDatatables(Request $request) public function index()
{ {
if (is_null($this->user) || !$this->user->can('debitur.view')) { return view('lpj::registrasi.index');
//abort(403, 'Sorry! You are not allowed to view users.');
} }
// Retrieve data from the database public function dataForDatatables(Request $request)
$query = Permohonan::query() {
->whereIn('status', ['preregister', 'revisi']); if (is_null($this->user) || !$this->user->can('debitur.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = Permohonan::query()
->whereIn('status', ['preregister', 'revisi']);
// Apply search filter if provided // Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) { if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search'); $search = $request->get('search');
$query->where(function ($q) use ($search) { $query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%'); $q->orWhere('status', 'LIKE', '%' . $search . '%');
}); });
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
} }
// Apply sorting if provided public function edit($id)
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { {
$order = $request->get('sortOrder'); return view('lpj::registrasi.edit', compact('id'));
$column = $request->get('sortField');
$query->orderBy($column, $order);
} }
// Get the total count of records public function setData(Request $request)
$totalRecords = $query->count(); : JsonResponse
{
$data = [];
$datas = [];
// Apply pagination if provided if (request()->ajax()) {
if ($request->has('page') && $request->has('size')) { $id = $request->id;
$page = $request->get('page'); $datas = Permohonan::find($id);
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size); if ($datas) {
$jenisPenilaians = null;
$regions = null;
$regions = Regions::pluck('name', 'id');
$jenisPenilaians = JenisPenilaian::pluck('name', 'id');
$data['status'] = 'success';
$data['regions'] = $regions;
$data['jenisPenilaians'] = $jenisPenilaians;
$data['datas'] = $datas;
$data['message'] ['message_success'] = ["data successfully found"];
} else {
$data['status'] = 'error';
$data['datas'] = null;
$data['message'] ['message_data'] = ["data not found"];
}
} else {
$data['status'] = 'error';
$data['message']['message_ajax'] = ["no ajax request"];
}
return response()->json($data);
} }
// Get the filtered count of records public function show($id)
$filteredRecords = $query->count(); {
$permohonan = Permohonan::find($id);
$debitur = Debiture::find($permohonan->debiture_id);
$documents = DokumenJaminan::with('pemilik', 'detail')->where('permohonan_id', $id)->get();
return view('lpj::registrasi.show', compact('id', 'permohonan', 'documents', 'debitur'));
}
// Get the data for the current page public function storeRevisi(Request $request, $id)
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); {
try {
$permohonan = Permohonan::find($id);
// Calculate the page count $permohonan->update([
$pageCount = ceil($totalRecords / $request->get('size')); 'status' => 'registered'
]);
// Calculate the current page number return redirect()->route('registrasi.index')->with('success', 'Submit Revision successfully');
$currentPage = 0 + 1; } catch (Exception $e) {
return redirect()
->route('registrasi.index')
->with('error', 'Failed to create permohonan' . $e->getMessage());
// Return the response data as a JSON object }
return response()->json([ }
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function edit($id) public function update(Request $request, $id)
{ : JsonResponse
return view('lpj::registrasi.edit', compact('id')); {
} // init
$data = [];
$dataku = [];
$tindakan = null;
if (request()->ajax()) {
$validator = RegistrasiController::rulesEditnya($request, $id);
public function setData(Request $request): JsonResponse if ($validator['fails']) {
{ $data['message'] = $validator['errors'];
$data = []; $data['status'] = 'error';
$datas = []; } else {
try {
$tindakan = $request->tindakan;
$dataku = [
'registrasi_by' => Auth::id(),
'registrasi_at' => now(),
];
if (request()->ajax()) { if ($tindakan == 0) {
$id = $request->id; $dataku['jenis_penilaian_id'] = $request->jenis_penilaian;
$datas = Permohonan::find($id); $dataku['region_id'] = $request->region;
$dataku['status'] = 'registered';
if ($request->catatan2) {
$dataku['registrasi_catatan'] = $request->catatan2;
}
} else {
$dataku['registrasi_catatan'] = $request->catatan;
$dataku['status'] = 'revisi';
}
if ($datas) { $data['dataku'] = $dataku;
$jenisPenilaians = null;
$regions = null;
$regions = Regions::pluck('name', 'id');
$jenisPenilaians = JenisPenilaian::pluck('name', 'id');
$data['status'] = 'success'; $modal = Permohonan::find($id);
$data['regions'] = $regions;
$data['jenisPenilaians'] = $jenisPenilaians; $modal->update($dataku);
$data['datas'] = $datas;
$data['message'] ['message_success'] = ["data successfully found"]; if ($modal && $request->jenis_laporan) {
foreach ($modal->documents as $document) {
Penilai::updateOrCreate(
[
'permohonan_id' => $id,
'dokument_id' => $document->id
],
['type' => $request->jenis_laporan]
);
}
}
//
$data['status'] = 'success';
$data['message'] ['message_success'] = ['Regitrasi ' . $modal->nomor_registrasi . ' successfully'];
} catch (Exception $e) {
$data['status'] = 'error';
$data['message'] ['message_try_catch'] = ['Regitrasi updated failed.'];
}
}
} else { } else {
$data['status'] = 'error'; $data['status'] = 'error';
$data['datas'] = null; $data['message'] ['message_ajax'] = ["no ajax request"];
$data['message'] ['message_data'] = ["data not found"];
} }
} else {
$data['status'] = 'error'; return response()->json($data);
$data['message']['message_ajax'] = ["no ajax request"];
} }
return response()->json($data); public function rulesEditnya($request, $id)
} {
$tindakan = null;
$jenis_penilaian = null;
$validate_catatan = '';
$tindakan = $request->tindakan;
$jenis_penilaian = $request->jenis_penilaian;
public function update(Request $request, $id): JsonResponse $validateIt = [
{ // 'name' diambil dari definisi parameter yang di kirim pada POST Data
// init 'tindakan' => 'required',
$data = []; ];
$dataku = [];
$tindakan = null;
if (request()->ajax()) {
$validator = RegistrasiController::rulesEditnya($request, $id);
if ($validator['fails']) { $messageIt = [
$data['message'] = $validator['errors']; 'tindakan.required' => 'Silahkan pilih Tindakan',
$data['status'] = 'error'; ];
} else {
try {
$tindakan = $request->tindakan;
$dataku = [
'registrasi_by' => Auth::id(),
'registrasi_at' => now(),
];
if ($tindakan == 0) { if ($tindakan == 0) {
$dataku['jenis_penilaian_id'] = $request->jenis_penilaian; $validateIt['jenis_penilaian'] = ['required'];
$dataku['region_id'] = $request->region; $messageIt ['jenis_penilaian.required'] = 'Silahkan pilih Jenis Penilaian';
$dataku['status'] = 'registered';
if ($request->catatan2) {
$dataku['registrasi_catatan'] = $request->catatan2;
}
} else {
$dataku['registrasi_catatan'] = $request->catatan;
$dataku['status'] = 'revisi';
}
$data['dataku'] = $dataku; // INTERNAL
if (1 == $jenis_penilaian) {
$modal = Permohonan::find($id); $validateIt['region'] = ['required'];
$messageIt ['region.required'] = 'Silahkan pilih Region';
$modal->update($dataku);
if($modal && $request->jenis_laporan){
Penilai::updateOrCreate(
['permohonan_id' => $id],
['type' => $request->jenis_laporan]
);
}
//
$data['status'] = 'success';
$data['message'] ['message_success'] = ['Regitrasi ' . $modal->nomor_registrasi . ' successfully'];
} catch (Exception $e) {
$data['status'] = 'error';
$data['message'] ['message_try_catch'] = ['Regitrasi updated failed.'];
} }
} else if ($tindakan == 1) {
$validateIt['catatan'] = ['required'];
$messageIt ['catatan.required'] = 'Silahkan isi Catatan';
} }
} else {
$data['status'] = 'error';
$data['message'] ['message_ajax'] = ["no ajax request"];
}
return response()->json($data); $validator = Validator::make($request->all(), $validateIt, $messageIt);
}
public function rulesEditnya($request, $id) $data['fails'] = $validator->fails();
{ $data['errors'] = $validator->errors();
$tindakan = null;
$jenis_penilaian = null;
$validate_catatan = '';
$tindakan = $request->tindakan;
$jenis_penilaian = $request->jenis_penilaian;
$validateIt = [
// 'name' diambil dari definisi parameter yang di kirim pada POST Data
'tindakan' => 'required',
];
$messageIt = [
'tindakan.required' => 'Silahkan pilih Tindakan',
];
if ($tindakan == 0) {
$validateIt['jenis_penilaian'] = ['required'];
$messageIt ['jenis_penilaian.required'] = 'Silahkan pilih Jenis Penilaian';
// INTERNAL
if (1 == $jenis_penilaian) {
$validateIt['region'] = ['required'];
$messageIt ['region.required'] = 'Silahkan pilih Region';
}
} elseif ($tindakan == 1) {
$validateIt['catatan'] = ['required'];
$messageIt ['catatan.required'] = 'Silahkan isi Catatan';
}
$validator = Validator::make($request->all(), $validateIt, $messageIt);
$data['fails'] = $validator->fails();
$data['errors'] = $validator->errors();
return $data;
}
public function show($id)
{
$permohonan = Permohonan::find($id);
$debitur = Debiture::find($permohonan->debiture_id);
$documents = DokumenJaminan::with('pemilik', 'detail')->where('permohonan_id', $id)->get();
return view('lpj::registrasi.show', compact('id', 'permohonan', 'documents', 'debitur'));
}
public function storeRevisi(Request $request, $id)
{
try {
$permohonan = Permohonan::find($id);
$permohonan->update([
'status' => 'registered'
]);
return redirect()->route('registrasi.index')->with('success', 'Submit Revision successfully');
} catch (Exception $e) {
return redirect()->route('registrasi.index')->with('error', 'Failed to create permohonan' . $e->getMessage());
return $data;
} }
} }
}

View File

@@ -762,21 +762,23 @@ class SurveyorController extends Controller
} }
// If validation passes, update permohonan status // If validation passes, update permohonan status
$permohonan = Permohonan::findOrFail($id); $permohonan = Permohonan::with('jenisPenilaian')->findOrFail($id);
$permohonan->update([ $permohonan->update([
'status' => 'survey-completed', 'status' => 'survey-completed',
'submitted_at' => now() 'submitted_at' => now()
]); ]);
LaporanExternal::updateOrCreate( if($permohonan->jenisPenilaian->name=="External") {
['permohonan_id' => $permohonan->id], LaporanExternal::updateOrCreate(
[ ['permohonan_id' => $permohonan->id],
'nomor_laporan' => $permohonan->nomor_registrasi, [
'tanggal_laporan' => now(), 'nomor_laporan' => $permohonan->nomor_registrasi,
'created_by' => Auth::id(), 'tanggal_laporan' => now(),
] 'created_by' => Auth::id(),
); ]
);
}
return response()->json([ return response()->json([

View File

@@ -27,18 +27,16 @@ class LampiranDokumen extends Base
{ {
$user = Auth::user(); $user = Auth::user();
if ($user && ($user->hasRole('penilai') || $user->hasRole('administrator'))) { if ($user && $user->hasAnyRole(['penilai', 'administrator', 'Penilai', 'admin'])) {
$file = $fileData['file']; $file = $fileData['file'];
$keterangan = $fileData['keterangan'] ?? null;
$fileName = $fileData['nama_file'] ?? time() . '_' . $file->getClientOriginalName(); $fileName = $fileData['nama_file'] ?? time() . '_' . $file->getClientOriginalName();
$filePath = $file->storeAs('lampiran_dokumen', $fileName, 'public'); $filePath = $file->storeAs('lampiran_dokumen', $fileName, 'public');
return self::create([ return self::create([
'permohonan_id' => $fileData['permohonan_id'] ?? null, 'permohonan_id' => $fileData['permohonan_id'] ?? null,
'nama_file' => $fileName, 'nama_file' => $fileName,
'path_file' => $filePath, 'path_file' => $filePath,
'keterangan' => $keterangan, 'keterangan' => $fileData['keterangan'] ?? null,
]); ]);
} }

View File

@@ -390,7 +390,7 @@
@endforelse @endforelse
</div> </div>
@if(Auth::user()->hasRole(['Penilai', 'administrator','penilai','admin'])) @if(Auth::user()->hasRole(['Penilai', 'administrator','penilai','admin','surveyor']))
<form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6"> <form action="{{ route('lampiran.upload',) }}" method="POST" enctype="multipart/form-data" class="mt-6">
@csrf @csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}"> <input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">

View File

@@ -22,9 +22,13 @@
</td> </td>
<td style="width:1%; padding: 2px; vertical-align: top;">:</td> <td style="width:1%; padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px;"> <td style="padding: 2px;">
{{ $item }} @if (strpos(strtolower($key), 'tanggal') !== false)
@if ($key == 'luas_bangunan' || $key == 'luas_tanah') {{ formatTanggalIndonesia($item) }}
<sup>m2</sup> @else
{{ $item }}
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
<sup>m2</sup>
@endif
@endif @endif
</td> </td>
</tr> </tr>

View File

@@ -308,6 +308,7 @@
</a> </a>
</span> </span>
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button> <button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
</div> </div>
@if($detail->details) @if($detail->details)

View File

@@ -98,7 +98,6 @@
@include('lpj::component.print-out-dokument') @include('lpj::component.print-out-dokument')
<tr> <tr>
<td style="width: 20%; padding: 2px;">Atas Nama</td> <td style="width: 20%; padding: 2px;">Atas Nama</td>
<td style="width: 1%; padding: 2px;">:</td> <td style="width: 1%; padding: 2px;">:</td>
@@ -106,31 +105,25 @@
</tr> </tr>
@if (!empty($memo['lokasi']['address'])) @if (!empty($memo['lokasi']['address']))
<tr> @php
<td width="20%">Terletak di</td> $alamatFields = [
<td style="width: 1%; vertical-align: top;">:</td> 'Terletak di' => 'address',
<td> {{ $alamat['address'] ?? '' }}</td> 'Desa/Kelurahan' => 'village_code',
</tr> 'Kecamatan' => 'district_code',
<tr> 'Kabupaten/Kota' => 'city_code',
<td>Desa/Kelurahan</td> 'Provinsi' => 'province_code'
<td style="width: 1%; vertical-align: top;">:</td> ];
<td>{{ $alamat['village_code'] ?? '' }}</td> @endphp
</tr>
<tr> @foreach ($alamatFields as $label => $field)
<td>Kecamatan</td> @if (!empty($alamat[$field]))
<td style="width: 1%; vertical-align: top;">:</td> <tr>
<td>{{ $alamat['district_code'] ?? '' }}</td> <td width="20%">{{ $label }}</td>
</tr> <td style="width: 1%; vertical-align: top;">:</td>
<tr> <td>{{ $alamat[$field] }}</td>
<td>Kabupaten/Kota</td> </tr>
<td style="width: 1%; vertical-align: top;">:</td> @endif
<td> {{ $alamat['city_code'] ?? '' }}</td> @endforeach
</tr>
<tr>
<td>Provinsi</td>
<td style="width: 1%; vertical-align: top;">:</td>
<td>{{ $alamat['province_code'] ?? '' }}</td>
</tr>
@endif @endif
</table> </table>

View File

@@ -323,11 +323,11 @@
</div> </div>
</div> </div>
@if($permohonan->jenisPenilaian->name=="External") @if($permohonan->jenisPenilaian->name=="Eksternal")
@if(isset($permohonan->laporanExternal->file_resume) || isset($permohonan->laporanExternal->file_laporan)) @if(isset($permohonan->laporanExternal->file_resume) || isset($permohonan->laporanExternal->file_laporan))
<div class="dropdown" data-dropdown="true" data-dropdown-trigger="click"> <div class="dropdown" data-dropdown="true" data-dropdown-trigger="click">
<button class="dropdown-toggle btn btn-primary"> <button class="dropdown-toggle btn btn-primary">
Laporan External Laporan Eksternal
</button> </button>
<div class="dropdown-content w-full max-w-56 py-2 !ml-[200px] !mt-[-20px]"> <div class="dropdown-content w-full max-w-56 py-2 !ml-[200px] !mt-[-20px]">
<div class="menu menu-default flex flex-col w-full"> <div class="menu menu-default flex flex-col w-full">