prbaikan output foto di laporan dan penilai dan surveyor by region

This commit is contained in:
majid
2024-12-30 09:28:06 +07:00
parent fa0a864a10
commit f60a4c558e
6 changed files with 343 additions and 298 deletions

View File

@@ -1,331 +1,340 @@
<?php <?php
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
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;
use Modules\Lpj\Models\JenisDokumen; use Modules\Lpj\Models\JenisDokumen;
use Modules\Usermanagement\Models\User; use Modules\Lpj\Models\TeamsUsers;
use Modules\Usermanagement\Models\User;
function formatTanggalIndonesia($date, $time = false) function formatTanggalIndonesia($date, $time = false)
{ {
Carbon::setLocale('id'); Carbon::setLocale('id');
$waktu = Carbon::parse($date); $waktu = Carbon::parse($date);
if (!$time) { if (!$time) {
return $waktu->translatedFormat('d F Y'); return $waktu->translatedFormat('d F Y');
}
return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB';
} }
return $waktu->translatedFormat('d F Y') . ' pukul ' . $waktu->format('H.i') . ' WIB';
}
function formatRupiah($number) function formatRupiah($number)
{ {
$number = (float) $number; $number = (float) $number;
return 'Rp ' . number_format($number, 2, ',', '.'); return 'Rp ' . number_format($number, 2, ',', '.');
} }
function formatAlamat($alamat) function formatAlamat($alamat)
{ {
return ($alamat->address ? $alamat->address . ', ' : '') . (isset($alamat->village) ? $alamat->village->name . ', ' : '') . (isset($alamat->city) ? $alamat->city->name . ', ' : '') . (isset($alamat->province) ? $alamat->province->name . ', ' : '') . ($alamat->postal_code ?? ''); return ($alamat->address ? $alamat->address . ', ' : '') . (isset($alamat->village) ? $alamat->village->name . ', ' : '') . (isset($alamat->city) ? $alamat->city->name . ', ' : '') . (isset($alamat->province) ? $alamat->province->name . ', ' : '') . ($alamat->postal_code ?? '');
} }
// andy add // andy add
function checkActiveDateRangePenawaran($id) function checkActiveDateRangePenawaran($id)
{ {
$penawaran = PenawaranTender::find($id); $penawaran = PenawaranTender::find($id);
$start_date = strtotime($penawaran->start_date); $start_date = strtotime($penawaran->start_date);
$end_date = strtotime($penawaran->end_date); $end_date = strtotime($penawaran->end_date);
// $todays_date = strtotime(now()); // $todays_date = strtotime(now());
$todays_date = strtotime("+1 day", strtotime(now())); $todays_date = strtotime("+1 day", strtotime(now()));
$allow = true;
if ($todays_date >= $start_date && $todays_date <= $end_date) {
//Penawaran dibuka
$allow = true; $allow = true;
if ($todays_date >= $start_date && $todays_date <= $end_date) { } else {
//Penawaran dibuka if ($todays_date < $start_date) {
//Penawaran Belum dibuka
$allow = true; $allow = true;
} else { } else {
if ($todays_date < $start_date) { //Penawaran sudah ditutup
//Penawaran Belum dibuka
$allow = true;
} else {
//Penawaran sudah ditutup
$allow = false;
}
}
return $allow;
}
function checkKelengkapanDetailKJPP($id)
{
$allow = true;
// DB::enableQueryLog();
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
$query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where(
function ($query) {
// no_proposal
$query->orWhere('no_proposal', '', "");
$query->orWhereNull('no_proposal');
// tgl_proposal
$query->orWhere('tgl_proposal', '', "");
$query->orWhereNull('tgl_proposal');
$query->orWhere('biaya_penawaran', '', "");
$query->orWhereNull('biaya_penawaran');
$query->orWhere('attachment', '', "");
$query->orWhereNull('attachment');
$query->orWhere('dokumen_persetujuan', '', "");
$query->orWhereNull('dokumen_persetujuan');
},
)->get();
// $sql = DB::getQueryLog();
if (sizeof($query) > 0) {
$allow = false; $allow = false;
} }
return $allow;
} }
// convert return $allow;
function convertSlug($slug) }
{
$words = explode('-', $slug);
foreach ($words as $index => $word) { function checkKelengkapanDetailKJPP($id)
$words[$index] = strtoupper($word); {
} $allow = true;
// DB::enableQueryLog();
// detail_penawaran apakah isian biaya_penawaran, attachment, dokumen_persetujuan sudah lengkap?
$query = PenawaranDetailTender::select('id')->where('penawaran_id', '=', $id)->where('status', '=', 1)->where(
function ($query) {
// no_proposal
$query->orWhere('no_proposal', '', "");
$query->orWhereNull('no_proposal');
return implode(' ', $words); // tgl_proposal
$query->orWhere('tgl_proposal', '', "");
$query->orWhereNull('tgl_proposal');
$query->orWhere('biaya_penawaran', '', "");
$query->orWhereNull('biaya_penawaran');
$query->orWhere('attachment', '', "");
$query->orWhereNull('attachment');
$query->orWhere('dokumen_persetujuan', '', "");
$query->orWhereNull('dokumen_persetujuan');
},
)->get();
// $sql = DB::getQueryLog();
if (sizeof($query) > 0) {
$allow = false;
} }
// generate last penawaran.code return $allow;
function onLastnumberCodePenawaran() }
: string
{
// ambil code terakhir
$maxCode = PenawaranTender::max('code');
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
// $penawaran = PenawaranTender::latest()->first();
$penawaran = PenawaranTender::where('code','=',$maxCode)->first();
$code_penawaran_last='';
// nomor di set 0001 // convert
$noUrutAkhirString = sprintf("%04s", 1); function convertSlug($slug)
if($penawaran) {
{ $words = explode('-', $slug);
$isNum = substr($maxCode, 2); // memastikan string ke 3 s/d 8 adalan numiric
$isNP = substr($maxCode, 0, 2); foreach ($words as $index => $word) {
if((8 == strlen($maxCode)) && ("NP"==$isNP) && (isNumeric($isNum))) $words[$index] = strtoupper($word);
{ }
$code_penawaran_last = substr ($maxCode, -4);
$year_penawaran_last = Carbon::parse($penawaran->created_at)->year; return implode(' ', $words);
$year_now = Carbon::now()->year; }
if ($year_now == $year_penawaran_last) {
$noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1)); // generate last penawaran.code
} function onLastnumberCodePenawaran(): string
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001 {
// ambil code terakhir
$maxCode = PenawaranTender::max('code');
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
// $penawaran = PenawaranTender::latest()->first();
$penawaran = PenawaranTender::where('code', '=', $maxCode)->first();
$code_penawaran_last = '';
// nomor di set 0001
$noUrutAkhirString = sprintf("%04s", 1);
if ($penawaran) {
$isNum = substr($maxCode, 2); // memastikan string ke 3 s/d 8 adalan numiric
$isNP = substr($maxCode, 0, 2);
if ((8 == strlen($maxCode)) && ("NP" == $isNP) && (isNumeric($isNum))) {
$code_penawaran_last = substr($maxCode, -4);
$year_penawaran_last = Carbon::parse($penawaran->created_at)->year;
$year_now = Carbon::now()->year;
if ($year_now == $year_penawaran_last) {
$noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1));
} }
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001
}
return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString;
}
function isNumeric($str)
{
return ctype_digit($str);
}
// generate last penawaran.no_spk
function onLastnumberCodePenawaranSPK($jenis_laporan_code): string
{
// 20241124_001 ==> spk_no_core
// XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024
// 001 / PJ / JKT / XI / FR / 2024
$maxCode = PenawaranTender::max('spk_no_core');
$penawaran = PenawaranTender::where('spk_no_core','=',$maxCode)->first();
$no_spk_penawaran_last='';
$year_penawaran_last='';
$year_now = Carbon::now()->year;
// nomor di set 001
$noUrutAkhirString = sprintf("%03s", 1);
if($penawaran)
{
$no_spk_penawaran_last = substr ($maxCode, -3);
$year_penawaran_last = substr ($maxCode, 0, 4);
if($year_now == $year_penawaran_last)
{
$noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1));
}
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001
}
$month = onRomawi(Carbon::now()->month);
$lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now;
return $lastSPK;
}
function onRomawi(int $bln): string
{
switch ($bln){
case 1:
return "I";
break;
case 2:
return "II";
break;
case 3:
return "III";
break;
case 4:
return "IV";
break;
case 5:
return "V";
break;
case 6:
return "VI";
break;
case 7:
return "VII";
break;
case 8:
return "VIII";
break;
case 9:
return "IX";
break;
case 10:
return "X";
break;
case 11:
return "XI";
break;
case 12:
return "XII";
break;
} }
} }
function penyebut($nilai) { return 'NP' . Carbon::now()->format('y') . $noUrutAkhirString;
$nilai = abs($nilai); }
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
$temp = "";
if ($nilai < 12) {
$temp = " ". $huruf[$nilai];
} else if ($nilai <20) {
$temp = penyebut($nilai - 10). " belas";
} else if ($nilai < 100) {
$temp = penyebut($nilai/10)." puluh". penyebut($nilai % 10);
} else if ($nilai < 200) {
$temp = " seratus" . penyebut($nilai - 100);
} else if ($nilai < 1000) {
$temp = penyebut($nilai/100) . " ratus" . penyebut($nilai % 100);
} else if ($nilai < 2000) {
$temp = " seribu" . penyebut($nilai - 1000);
} else if ($nilai < 1000000) {
$temp = penyebut($nilai/1000) . " ribu" . penyebut($nilai % 1000);
} else if ($nilai < 1000000000) {
$temp = penyebut($nilai/1000000) . " juta" . penyebut($nilai % 1000000);
} else if ($nilai < 1000000000000) {
$temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000));
} else if ($nilai < 1000000000000000) {
$temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000));
}
return $temp;
}
function terbilang($nilai) { function isNumeric($str)
if($nilai<0) { {
$hasil = "minus ". trim(penyebut($nilai)); return ctype_digit($str);
} else { }
$hasil = trim(penyebut($nilai));
}
return $hasil;
}
// andy add
// generate last penawaran.no_spk
function onLastnumberCodePenawaranSPK($jenis_laporan_code): string
{
function hitungHariKerja($tanggalMulai, $tanggalSelesai) // 20241124_001 ==> spk_no_core
{ // XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024
$tanggalMulai = Carbon::parse($tanggalMulai)->startOfDay(); // 001 / PJ / JKT / XI / FR / 2024
$tanggalSelesai = Carbon::parse($tanggalSelesai)->endOfDay(); $maxCode = PenawaranTender::max('spk_no_core');
$penawaran = PenawaranTender::where('spk_no_core', '=', $maxCode)->first();
$no_spk_penawaran_last = '';
$year_penawaran_last = '';
$year_now = Carbon::now()->year;
// nomor di set 001
$noUrutAkhirString = sprintf("%03s", 1);
if ($penawaran) {
$no_spk_penawaran_last = substr($maxCode, -3);
$year_penawaran_last = substr($maxCode, 0, 4);
$hariKerja = 0; if ($year_now == $year_penawaran_last) {
$tanggalSekarang = $tanggalMulai->copy(); $noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1));
while ($tanggalSekarang <= $tanggalSelesai) {
// Cek apakah hari ini bukan Sabtu atau Minggu dan bukan hari libur
if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), holidays())) {
$hariKerja++;
}
$tanggalSekarang->addDay();
} }
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001
return $hariKerja;
} }
function holidays() $month = onRomawi(Carbon::now()->month);
{
return HolidayCalendar::pluck('date')->map(
function ($item) {
return Carbon::parse($item)->format('Y-m-d');
},
)->toArray();
}
function countPermohonanForUser($userId) $lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now;
{ return $lastSPK;
return Penilaian::whereHas('userPenilai', function ($query) use ($userId) { }
$query->where('user_id', $userId);
}) function onRomawi(int $bln): string
->whereHas('permohonan', function ($query) { {
$query->where('status', 'assign'); switch ($bln) {
}) case 1:
->count(); return "I";
break;
case 2:
return "II";
break;
case 3:
return "III";
break;
case 4:
return "IV";
break;
case 5:
return "V";
break;
case 6:
return "VI";
break;
case 7:
return "VII";
break;
case 8:
return "VIII";
break;
case 9:
return "IX";
break;
case 10:
return "X";
break;
case 11:
return "XI";
break;
case 12:
return "XII";
break;
} }
}
function getMaxFileSize($jenis) function penyebut($nilai)
{ {
$jenisDokumen = JenisDokumen::where('name', $jenis)->first(); $nilai = abs($nilai);
if (!$jenisDokumen) { $huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
return 2048; $temp = "";
if ($nilai < 12) {
$temp = " ". $huruf[$nilai];
} elseif ($nilai < 20) {
$temp = penyebut($nilai - 10). " belas";
} elseif ($nilai < 100) {
$temp = penyebut($nilai / 10)." puluh". penyebut($nilai % 10);
} elseif ($nilai < 200) {
$temp = " seratus" . penyebut($nilai - 100);
} elseif ($nilai < 1000) {
$temp = penyebut($nilai / 100) . " ratus" . penyebut($nilai % 100);
} elseif ($nilai < 2000) {
$temp = " seribu" . penyebut($nilai - 1000);
} elseif ($nilai < 1000000) {
$temp = penyebut($nilai / 1000) . " ribu" . penyebut($nilai % 1000);
} elseif ($nilai < 1000000000) {
$temp = penyebut($nilai / 1000000) . " juta" . penyebut($nilai % 1000000);
} elseif ($nilai < 1000000000000) {
$temp = penyebut($nilai / 1000000000) . " milyar" . penyebut(fmod($nilai, 1000000000));
} elseif ($nilai < 1000000000000000) {
$temp = penyebut($nilai / 1000000000000) . " trilyun" . penyebut(fmod($nilai, 1000000000000));
}
return $temp;
}
function terbilang($nilai)
{
if ($nilai < 0) {
$hasil = "minus ". trim(penyebut($nilai));
} else {
$hasil = trim(penyebut($nilai));
}
return $hasil;
}
// andy add
function hitungHariKerja($tanggalMulai, $tanggalSelesai)
{
$tanggalMulai = Carbon::parse($tanggalMulai)->startOfDay();
$tanggalSelesai = Carbon::parse($tanggalSelesai)->endOfDay();
$hariKerja = 0;
$tanggalSekarang = $tanggalMulai->copy();
while ($tanggalSekarang <= $tanggalSelesai) {
// Cek apakah hari ini bukan Sabtu atau Minggu dan bukan hari libur
if (!$tanggalSekarang->isWeekend() && !in_array($tanggalSekarang->format('Y-m-d'), holidays())) {
$hariKerja++;
} }
//konversi ke KB (1 MB = 1024 KB) $tanggalSekarang->addDay();
$maxSizeInKB = (int) $jenisDokumen->max_size * 1024;
return $maxSizeInKB;
} }
function getUser($userId){ return $hariKerja;
return User::find($userId); }
function holidays()
{
return HolidayCalendar::pluck('date')->map(
function ($item) {
return Carbon::parse($item)->format('Y-m-d');
},
)->toArray();
}
function countPermohonanForUser($userId)
{
return Penilaian::whereHas('userPenilai', function ($query) use ($userId) {
$query->where('user_id', $userId);
})
->whereHas('permohonan', function ($query) {
$query->where('status', 'assign');
})
->count();
}
function getMaxFileSize($jenis)
{
$jenisDokumen = JenisDokumen::where('name', $jenis)->first();
if (!$jenisDokumen) {
return 2048;
} }
//konversi ke KB (1 MB = 1024 KB)
$maxSizeInKB = (int) $jenisDokumen->max_size * 1024;
function generateLpjUniqueCode($randomLength = 6) return $maxSizeInKB;
{ }
$year = date('y'); function getUser($userId)
$month = str_pad(date('m'), 2, '0', STR_PAD_LEFT); {
$day = str_pad(date('d'), 2, '0', STR_PAD_LEFT); return User::find($userId);
}
// Generate random numbers function generateLpjUniqueCode($randomLength = 6)
$randomNumber = str_pad(mt_rand(0, pow(10, $randomLength) - 1), $randomLength, '0', STR_PAD_LEFT); {
// Concatenate components to create the custom code $year = date('y');
return $year . $month . $day . $randomNumber; $month = str_pad(date('m'), 2, '0', STR_PAD_LEFT);
$day = str_pad(date('d'), 2, '0', STR_PAD_LEFT);
// Generate random numbers
$randomNumber = str_pad(mt_rand(0, pow(10, $randomLength) - 1), $randomLength, '0', STR_PAD_LEFT);
// Concatenate components to create the custom code
return $year . $month . $day . $randomNumber;
}
function checkRegionUserName($userId)
{
$region = TeamsUsers::where('user_id', $userId)->first();
if ($region) {
return $region->team->regions->name;
} else {
return null;
} }
}

View File

@@ -75,7 +75,7 @@
@endforeach @endforeach
@endif @endif
@if (isset($formFoto['foto_lingkungan']['foto_lingkungan'])) {{-- @if (isset($formFoto['foto_lingkungan']['foto_lingkungan']))
@foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item) @foreach ($formFoto['foto_lingkungan']['foto_lingkungan'][0] as $index => $item)
<div class="border photo-item"> <div class="border photo-item">
<h2 class="text-gray-600 font-semibold text-xl"> <h2 class="text-gray-600 font-semibold text-xl">
@@ -91,7 +91,7 @@
@endif @endif
</div> </div>
@endforeach @endforeach
@endif @endif --}}
@if (isset($formFoto['foto_basement'])) @if (isset($formFoto['foto_basement']))
<div class="border photo-item"> <div class="border photo-item">

View File

@@ -263,7 +263,7 @@
@endphp @endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath))) @if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}" <img src="{{ Storage::url($imagePath) }}" alt="{{ $type }}"
class="photo-image"> class="photo-image">
@endif @endif
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p> <p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>

View File

@@ -1067,7 +1067,7 @@
@endphp @endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath))) @if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ asset('storage/' . $imagePath) }}" alt="{{ $type }}" <img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
class="photo-image"> class="photo-image">
@endif @endif
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p> <p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>

View File

@@ -501,7 +501,7 @@
$cekHub = isset($forminspeksi['asset']['hub_cadeb']) && $forminspeksi['asset']['hub_cadeb'] === 'sesuai' $cekHub = isset($forminspeksi['asset']['hub_cadeb']) && $forminspeksi['asset']['hub_cadeb'] === 'sesuai'
? 'sesuai' ? 'sesuai'
: 'tidak sesuai'; : 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'][$cekHub]) $hubCadeb = isset($forminspeksi['asset']['hub_cadeb'][$cekHub])
? $forminspeksi['asset']['hub_cadeb'][$cekHub] ? $forminspeksi['asset']['hub_cadeb'][$cekHub]
: null; : null;
@@ -515,18 +515,18 @@
@foreach ($basicData['hubCadeb'] as $item) @foreach ($basicData['hubCadeb'] as $item)
<td> <td>
<label> <label>
<input type="checkbox" <input type="checkbox"
{{ $item->name === $hubCadeb ? 'checked' : '' }}> {{ $item->name === $hubCadeb ? 'checked' : '' }}>
{{ $item->name }} {{ $item->name }}
</label> </label>
</td> </td>
@php $count++; @endphp @php $count++; @endphp
@if ($count % 3 === 0) @if ($count % 3 === 0)
</tr><tr> <!-- Membuka baris baru setelah 3 kolom --> </tr><tr> <!-- Membuka baris baru setelah 3 kolom -->
@endif @endif
@endforeach @endforeach
{{-- Isi kolom kosong jika tidak genap --}} {{-- Isi kolom kosong jika tidak genap --}}
@if ($count % 3 !== 0) @if ($count % 3 !== 0)
@for ($i = 0; $i < (3 - $count % 3); $i++) @for ($i = 0; $i < (3 - $count % 3); $i++)
@@ -538,7 +538,7 @@
@endif @endif
</td> </td>
</tr> </tr>
<tr> <tr>
@php @php
@@ -848,8 +848,8 @@
@if ($kategori->spek_kategori_bangunan_id == $spesifikasi->id) @if ($kategori->spek_kategori_bangunan_id == $spesifikasi->id)
<td class="checkbox-item"> <td class="checkbox-item">
<label class="checkbox-label"> <label class="checkbox-label">
<input <input
type="checkbox" type="checkbox"
style="margin-right: 3px;" style="margin-right: 3px;"
name="spesifikasi_bangunan[{{ $index }}][{{ $spesifikasi->name }}][]" name="spesifikasi_bangunan[{{ $index }}][{{ $spesifikasi->name }}][]"
value="{{ $kategori->name }}" value="{{ $kategori->name }}"
@@ -878,7 +878,7 @@
<!-- Sarana Pelengkap --> <!-- Sarana Pelengkap -->
<!-- Input tambahan untuk Sarana Pelengkap --> <!-- Input tambahan untuk Sarana Pelengkap -->
@if (isset($forminspeksi['bangunan']['sarana_pelengkap_input'])) @if (isset($forminspeksi['bangunan']['sarana_pelengkap_input']))
@@ -1420,8 +1420,44 @@
</div> </div>
</div> </div>
<div class="page-break"></div> <div class="page-break"></div>
<div class="section">
<div class="judul">
<h6 class="border">
PETA
</h6>
</div>
<div>
@php
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'foto_tempat');
}
@endphp
@if (isset($forminspeksi))
@forelse ($fotoTypes as $type)
<div class="border photo-item">
@php
$imagePath = $forminspeksi[$type] ?? null;
@endphp
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
class="photo-image">
@endif
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
</div>
@empty
<p>Tidak ada tipe foto yang tersedia</p>
@endforelse
@endif
</div>
</div>
<div class="section"> <div class="section">
<div class="judul"> <div class="judul">
<h6 class="border"> <h6 class="border">

View File

@@ -116,7 +116,7 @@
{{ $surveyor->userPenilaiTeam->name }} {{ $surveyor->userPenilaiTeam->name }}
</p> </p>
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->region->name }} <p class="flex w-full text-gray-600 font-medium text-sm">{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
</p> </p>
</div> </div>
<label class="form-label max-w-56"> <label class="form-label max-w-56">
@@ -129,7 +129,7 @@
</p> </p>
<p class="flex w-full text-gray-600 font-medium text-sm"> <p class="flex w-full text-gray-600 font-medium text-sm">
{{ $permohonan->region->name }} {{ checkRegionUserName($penilai->userPenilaiTeam->id) }}
</p> </p>
</div> </div>
</div> </div>