fix: perbaikkan tampilan dan print out lpj setalah migrate db old ke db new
This commit is contained in:
@@ -28,7 +28,7 @@ function formatTanggalIndonesia($date, $time = false)
|
|||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
return $date;
|
return $date;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -562,3 +562,31 @@ function ubahNomorHp($nomorHp) {
|
|||||||
return "Nomor HP tidak valid";
|
return "Nomor HP tidak valid";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function parsePembandingMigration($keterangan) {
|
||||||
|
|
||||||
|
$keterangan = preg_replace('/[-]{5,}/', '',$keterangan); // Hapus ------
|
||||||
|
$keterangan = preg_replace('/[.]{5,}/', '',$keterangan); // Hapus .....
|
||||||
|
|
||||||
|
$keterangan = preg_replace('/\s+/', ' ',$keterangan);
|
||||||
|
$keterangan = preg_replace('/\s*\n\s*/', "\n",$keterangan);
|
||||||
|
|
||||||
|
// Pecah teks per baris untuk diproses
|
||||||
|
$lines = explode("\n",$keterangan);
|
||||||
|
$cleaned = [];
|
||||||
|
|
||||||
|
foreach ($lines as $line) {
|
||||||
|
$line = trim($line);
|
||||||
|
if (!empty($line)) {
|
||||||
|
// Format angka dalam format Rp. 123.456.789
|
||||||
|
$line = preg_replace_callback('/Rp\.\s*([\d.,]+)/', function($matches) {
|
||||||
|
$angka = str_replace(['.', ','], '', $matches[1]);
|
||||||
|
return 'Rp. ' . number_format((int)$angka, 0, ',', '.');
|
||||||
|
}, $line);
|
||||||
|
|
||||||
|
$cleaned[] = $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode("\n", $cleaned);
|
||||||
|
}
|
||||||
|
|||||||
@@ -306,6 +306,7 @@ class ActivityController extends Controller
|
|||||||
$query = Permohonan::query();
|
$query = Permohonan::query();
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
|
$query = $query->orderBy('nomor_registrasi', 'desc');
|
||||||
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) {
|
||||||
@@ -324,7 +325,9 @@ class ActivityController extends Controller
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default sorting if no sort provided
|
|
||||||
|
|
||||||
|
// Apply sorting if provided
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
$order = $request->get('sortOrder');
|
$order = $request->get('sortOrder');
|
||||||
$column = $request->get('sortField');
|
$column = $request->get('sortField');
|
||||||
@@ -333,20 +336,13 @@ class ActivityController extends Controller
|
|||||||
$query->orderBy('nomor_registrasi', 'asc');
|
$query->orderBy('nomor_registrasi', 'asc');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get total count of records before pagination
|
// Get the total count of records
|
||||||
$totalRecords = $query->count();
|
$totalRecords = $query->count();
|
||||||
|
$size = $request->get('size', 10);
|
||||||
// Pagination
|
if ($size == 0) {
|
||||||
if ($request->has('page') && $request->has('size')) {
|
$size = 10;
|
||||||
$page = (int) $request->get('page', 1);
|
|
||||||
$size = (int) $request->get('size', 10);
|
|
||||||
$offset = ($page - 1) * $size;
|
|
||||||
$query->skip($offset)->take($size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get filtered count
|
|
||||||
$filteredRecords = $query->count();
|
|
||||||
|
|
||||||
// Filter by region if user is senior-officer
|
// Filter by region if user is senior-officer
|
||||||
if ($regionId) {
|
if ($regionId) {
|
||||||
$query->whereHas('region', function ($q) use ($regionId) {
|
$query->whereHas('region', function ($q) use ($regionId) {
|
||||||
@@ -361,37 +357,36 @@ class ActivityController extends Controller
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$totalRecords = $query->count();
|
|
||||||
|
|
||||||
// Pagination
|
|
||||||
|
// Apply pagination if provided
|
||||||
if ($request->has('page') && $request->has('size')) {
|
if ($request->has('page') && $request->has('size')) {
|
||||||
$page = (int) $request->get('page', 1);
|
$page = $request->get('page');
|
||||||
$size = (int) $request->get('size', 10);
|
$size = $request->get('size');
|
||||||
$offset = ($page - 1) * $size;
|
$offset = ($page - 1) * $size; // Calculate the offset
|
||||||
|
|
||||||
$query->skip($offset)->take($size);
|
$query->skip($offset)->take($size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get filtered count
|
// Get the filtered count of records
|
||||||
$filteredRecords = $query->count();
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
// Get data with necessary relationships
|
// Get data with necessary relationships
|
||||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan','nilaiPlafond'])->get();
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan','nilaiPlafond'])->get();
|
||||||
|
|
||||||
// Calculate total pages
|
// Calculate the page count
|
||||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
$pageCount = ceil($totalRecords / $size);
|
||||||
|
|
||||||
|
// Calculate the current page number
|
||||||
|
$currentPage = max(1, $request->get('page', 1));
|
||||||
|
|
||||||
|
// Return the response data as a JSON object
|
||||||
|
|
||||||
// Calculate total pages
|
|
||||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'draw' => $request->get('draw'),
|
'draw' => $request->get('draw'),
|
||||||
'recordsTotal' => $totalRecords,
|
'recordsTotal' => $totalRecords,
|
||||||
'recordsFiltered' => $filteredRecords,
|
'recordsFiltered' => $filteredRecords,
|
||||||
'pageCount' => $pageCount,
|
'pageCount' => $pageCount,
|
||||||
'page' => $request->get('page', 1),
|
'page' => $currentPage,
|
||||||
'totalCount' => $totalRecords,
|
'totalCount' => $totalRecords,
|
||||||
'data' => $data,
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -406,7 +406,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Remove values from $legalitasJaminan that are in $currentLegalitasJaminan
|
// Remove values from $legalitasJaminan that are in $currentLegalitasJaminan
|
||||||
$legalitasJaminan = array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray());
|
$legalitasJaminan = is_array($legalitasJaminan)
|
||||||
|
? array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray())
|
||||||
|
: [];
|
||||||
|
|
||||||
$legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get();
|
$legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class LaporanPenilaiJaminanController extends Controller
|
|||||||
// dd($startDate);
|
// dd($startDate);
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query = Permohonan::query();
|
$query = Permohonan::query();
|
||||||
|
$query = $query->orderBy('nomor_registrasi', 'desc');
|
||||||
// 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');
|
||||||
@@ -107,7 +107,7 @@ class LaporanPenilaiJaminanController extends Controller
|
|||||||
->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%')
|
->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%')
|
||||||
->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
|
->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
|
||||||
if (!empty($paramsSearch->tanggal_awal) && !empty($paramsSearch->tanggal_akhir)) {
|
if (!empty($paramsSearch->tanggal_awal) && !empty($paramsSearch->tanggal_akhir)) {
|
||||||
$q->whereBetween('tanggal_permohonan', [$paramsSearch->tanggal_awal, $paramsSearch->tanggal_akhir]);
|
$q->whereBetween('tanggal_permohonan', [$paramsSearch->tanggal_awal, $paramsSearch->tanggal_akhir]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,62 +122,50 @@ class LaporanPenilaiJaminanController extends Controller
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Default sorting if no sort provided
|
// Apply sorting if provided
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
$order = $request->get('sortOrder');
|
$order = $request->get('sortOrder');
|
||||||
$column = $request->get('sortField');
|
$column = $request->get('sortField');
|
||||||
$query->orderBy($column, $order);
|
$query->orderBy($column, $order);
|
||||||
} else {
|
|
||||||
$query->orderBy('nomor_registrasi', 'asc');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get total count of records before pagination
|
|
||||||
$totalRecords = $query->count();
|
|
||||||
|
|
||||||
// Pagination
|
// Get the total count of records
|
||||||
|
$totalRecords = $query->count();
|
||||||
|
$size = $request->get('size', 10);
|
||||||
|
if ($size == 0) {
|
||||||
|
$size = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply pagination if provided
|
||||||
if ($request->has('page') && $request->has('size')) {
|
if ($request->has('page') && $request->has('size')) {
|
||||||
$page = (int) $request->get('page', 1);
|
$page = $request->get('page');
|
||||||
$size = (int) $request->get('size', 10);
|
$size = $request->get('size');
|
||||||
$offset = ($page - 1) * $size;
|
$offset = ($page - 1) * $size; // Calculate the offset
|
||||||
|
|
||||||
$query->skip($offset)->take($size);
|
$query->skip($offset)->take($size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get filtered count
|
// Get the filtered count of records
|
||||||
$filteredRecords = $query->count();
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$totalRecords = $query->count();
|
|
||||||
|
|
||||||
// Pagination
|
|
||||||
if ($request->has('page') && $request->has('size')) {
|
|
||||||
$page = (int) $request->get('page', 1);
|
|
||||||
$size = (int) $request->get('size', 10);
|
|
||||||
$offset = ($page - 1) * $size;
|
|
||||||
$query->skip($offset)->take($size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get filtered count
|
|
||||||
$filteredRecords = $query->count();
|
|
||||||
|
|
||||||
// Get data with necessary relationships
|
// Get data with necessary relationships
|
||||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan.jenisJaminan','nilaiPlafond', 'penilai'])->get();
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan.jenisJaminan','nilaiPlafond', 'penilai'])->get();
|
||||||
|
|
||||||
// Calculate total pages
|
// Calculate the page count
|
||||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
$pageCount = ceil($totalRecords / $size);
|
||||||
|
|
||||||
|
// Calculate the current page number
|
||||||
|
$currentPage = max(1, $request->get('page', 1));
|
||||||
|
|
||||||
|
// Return the response data as a JSON object
|
||||||
|
|
||||||
// Calculate total pages
|
|
||||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'draw' => $request->get('draw'),
|
'draw' => $request->get('draw'),
|
||||||
'recordsTotal' => $totalRecords,
|
'recordsTotal' => $totalRecords,
|
||||||
'recordsFiltered' => $filteredRecords,
|
'recordsFiltered' => $filteredRecords,
|
||||||
'pageCount' => $pageCount,
|
'pageCount' => $pageCount,
|
||||||
'page' => $request->get('page', 1),
|
'page' => $currentPage,
|
||||||
'totalCount' => $totalRecords,
|
'totalCount' => $totalRecords,
|
||||||
'data' => $data,
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -12,10 +12,34 @@ class MasterDataSurveyorSeeder extends Seeder
|
|||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
|
|
||||||
$nameTable =[
|
$nameTable = [
|
||||||
'faasilitas'
|
'fasilitas_objek',
|
||||||
]
|
'gol_mas_sekitar',
|
||||||
|
'jenis_bangunan',
|
||||||
|
'jenis_kapal',
|
||||||
|
'jenis_kendaraan',
|
||||||
|
'jenis_pesawat',
|
||||||
|
'kondisi_bangunan',
|
||||||
|
'kondisi_fisik_tanah',
|
||||||
|
'kontur_tanah',
|
||||||
|
'lalu_lintas_lokasi',
|
||||||
|
'lantai',
|
||||||
|
'merupakan_daerah',
|
||||||
|
'perkerasan_jalan',
|
||||||
|
'sifat_bangunan',
|
||||||
|
'model_alat_berat',
|
||||||
|
'posisi_kavling',
|
||||||
|
'posisi_unit',
|
||||||
|
'tingkat_keramaian',
|
||||||
|
'sarana_pelengkap',
|
||||||
|
'spek_kategori_bangunan',
|
||||||
|
'spek_bangunan',
|
||||||
|
'terletak_diarea',
|
||||||
|
'view_unit'
|
||||||
|
];
|
||||||
|
|
||||||
DB::unprepared(file_get_contents(__DIR__ . '/sql/teams.sql'));
|
foreach ($nameTable as $table) {
|
||||||
|
DB::unprepared(file_get_contents(__DIR__ . '/sql/' . $table . '.sql'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,17 +12,17 @@ use Modules\Lpj\Models\Permohonan;
|
|||||||
|
|
||||||
class MigrationPembandingSeeder extends Seeder
|
class MigrationPembandingSeeder extends Seeder
|
||||||
{
|
{
|
||||||
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_penilai_pembanding_error_2.csv';
|
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_penilai_pembanding_error.csv';
|
||||||
/**
|
/**
|
||||||
* Run the database seeds.
|
* Run the database seeds.
|
||||||
*/
|
*/
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// Path ke file csv
|
// Path ke file csv
|
||||||
$filePath = realpath(__DIR__ . '/csv/inspeksi/mig_penilai_pembanding_2.csv');
|
$filePath = realpath(__DIR__ . '/csv/inspeksi/mig_penilai_pembanding.csv');
|
||||||
|
|
||||||
if (!$filePath) {
|
if (!$filePath) {
|
||||||
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_penilai_pembanding_2.csv');
|
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_penilai_pembanding.csv');
|
||||||
$this->command->error('File csv tidak ditemukan.');
|
$this->command->error('File csv tidak ditemukan.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -141,9 +141,10 @@ class MigrationPembandingSeeder extends Seeder
|
|||||||
// Pastikan kolom penting tersedia
|
// Pastikan kolom penting tersedia
|
||||||
$urutan = (int)($row['mig_urutan'] ?? 999);
|
$urutan = (int)($row['mig_urutan'] ?? 999);
|
||||||
$sumber = trim($row['mig_keterangan'] ?? '');
|
$sumber = trim($row['mig_keterangan'] ?? '');
|
||||||
|
$pembanding = trim($row['mig_pembanding'] ?? '');
|
||||||
$linkGambar = trim($row['mig_path'] ?? '');
|
$linkGambar = trim($row['mig_path'] ?? '');
|
||||||
|
|
||||||
if (empty($sumber) || empty($linkGambar)) {
|
if (empty($pembanding) || empty($linkGambar)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,6 +152,7 @@ class MigrationPembandingSeeder extends Seeder
|
|||||||
$pembandingList[] = [
|
$pembandingList[] = [
|
||||||
'urutan' => $urutan,
|
'urutan' => $urutan,
|
||||||
'sumber' => $sumber,
|
'sumber' => $sumber,
|
||||||
|
'keterangan' => $pembanding,
|
||||||
'foto_objek' => $linkGambar
|
'foto_objek' => $linkGambar
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
Pemohon:
|
Pemohon:
|
||||||
</h3>
|
</h3>
|
||||||
<span class="text-2sm text-gray-700">
|
<span class="text-2sm text-gray-700">
|
||||||
{{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }}
|
{{ $permohonan->user->nik ?? '' }} | {{ $permohonan->user->name ?? '' }} | {{ $permohonan->user->branch->name ?? '' }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
Pemohon:
|
Pemohon:
|
||||||
</h3>
|
</h3>
|
||||||
<span class="text-2sm text-gray-700">
|
<span class="text-2sm text-gray-700">
|
||||||
{{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }}
|
{{ $permohonan->user->nik ?? '' }} | {{ $permohonan->user->name ?? '' }} | {{ $permohonan->user->branch->name ?? '' }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
Nilai Plafond:
|
Nilai Plafond:
|
||||||
</h3>
|
</h3>
|
||||||
<span class="text-2sm text-gray-700">
|
<span class="text-2sm text-gray-700">
|
||||||
{{ $permohonan->nilaiPlafond->name }}
|
{{ $permohonan->nilaiPlafond->name ?? '' }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span class="text-2xs text-gray-600 uppercase pl-3">
|
<span class="text-2xs text-gray-600 uppercase pl-3">
|
||||||
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] }}
|
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] ?? '' }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-left">
|
<td class="text-left">
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
@foreach ($value as $key => $item)
|
@foreach ($value as $key => $item)
|
||||||
@if (!empty($item))
|
@if (!empty($item))
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px;">
|
<td style="padding: 2px;" style="width:25%;">
|
||||||
{{ formatLabel($key) }}
|
{{ formatLabel($key) }}
|
||||||
</td>
|
</td>
|
||||||
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
|
<td style="width:1%; padding: 2px; vertical-align: top;">:</td>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
@foreach($dokumen_jaminan as $index => $dokumen)
|
@foreach($dokumen_jaminan as $index => $dokumen)
|
||||||
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
|
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
|
||||||
<span class="text-2xs text-gray-600 uppercase pl-3">
|
<span class="text-2xs text-gray-600 uppercase pl-3">
|
||||||
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] }}
|
{{ $loop->index+1 }}. Nomor : {{ $dokumen_nomor[$index] ?? '' }}
|
||||||
</span>
|
</span>
|
||||||
<div>
|
<div>
|
||||||
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
|
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
|
||||||
|
|||||||
@@ -157,11 +157,7 @@
|
|||||||
<span class="sort-icon"></span>
|
<span class="sort-icon"></span>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
|
|
||||||
<span class="sort"><span class="sort-label">Jenis Jaminan</span>
|
|
||||||
<span class="sort-icon"></span>
|
|
||||||
</span>
|
|
||||||
</th>
|
|
||||||
<th class="min-w-[150px]" data-datatable-column="laporan">
|
<th class="min-w-[150px]" data-datatable-column="laporan">
|
||||||
<span class="sort"><span class="sort-label">Laporan</span>
|
<span class="sort"><span class="sort-label">Laporan</span>
|
||||||
<span class="sort-icon"></span>
|
<span class="sort-icon"></span>
|
||||||
@@ -265,13 +261,7 @@
|
|||||||
`${data.tujuan_penilaian.name}` : '-';
|
`${data.tujuan_penilaian.name}` : '-';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
jenis_jaminan_id: {
|
|
||||||
title: 'Jenis Jaminan',
|
|
||||||
render: (item, data) => {
|
|
||||||
const jenisJaminan = data.dokumenjaminan.map(d => d.jenis_jaminan.name).join(', ');
|
|
||||||
return jenisJaminan || '-';
|
|
||||||
}
|
|
||||||
},
|
|
||||||
laporan: {
|
laporan: {
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
|
|||||||
@@ -37,7 +37,15 @@
|
|||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="hidden" name="debiture_id" value="{{ $debitur->id ?? '' }}">
|
<input type="hidden" name="debiture_id" value="{{ $debitur->id ?? '' }}">
|
||||||
<p class="text-base text-gray-700">{{ $debitur->name }} | {{ $debitur->address.', '.$debitur->village->name.', '.$debitur->city->name.', '.$debitur->province->name.', '.$debitur->postal_code }}</p>
|
<p class="text-base text-gray-700">
|
||||||
|
{{ $debitur->name ?? '' }} | {{ $debitur->address ?? '' }}
|
||||||
|
{{ $debitur->village?->name ?? '' }}
|
||||||
|
{{ $debitur->city?->name ?? '' }}
|
||||||
|
{{ $debitur->province?->name ?? '' }}
|
||||||
|
{{ $debitur->country?->name ?? '' }},
|
||||||
|
{{ $debitur->postal_code ?? '' }}
|
||||||
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@if (!empty($forminspeksi['fakta']['keterangan']))
|
@if (!empty($forminspeksi['fakta']['keterangan']))
|
||||||
<tr>
|
<tr>
|
||||||
<td width="25%" style="vertical-align: top;">Catatan yang Perlu
|
<td width="25%" style="vertical-align: top;">Catatan yang Perlu
|
||||||
@@ -56,6 +57,7 @@
|
|||||||
</table>
|
</table>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
@endif
|
@endif
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -35,41 +35,50 @@
|
|||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
|
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{{-- mulai --}}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
|
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:
|
<td style="padding: 2px; vertical-align: top;">:
|
||||||
</td>
|
</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
|
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? $lingkungan['perkerasan_jalan'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
|
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}
|
<td style="padding: 2px; vertical-align: top;">{{
|
||||||
|
$lingkungan['lalu_lintas']
|
||||||
|
? (is_array($lingkungan['lalu_lintas'])
|
||||||
|
? implode(', ', $lingkungan['lalu_lintas'])
|
||||||
|
: $lingkungan['lalu_lintas'])
|
||||||
|
: '-'
|
||||||
|
}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
|
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
|
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
|
{{ implode(', ', $lingkungan['tingkat_keramaian']['tingkat_keramaian'] ?? $lingkungan['tingkat_keramaian'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
|
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
|
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? $lingkungan['terletak_diarea'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
{{-- batas --}}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
|
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
|
|||||||
@@ -84,7 +84,10 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
.break-before {
|
||||||
|
page-break-before: always;
|
||||||
|
break-before: page;
|
||||||
|
}
|
||||||
.border {
|
.border {
|
||||||
border: 1px solid #000;
|
border: 1px solid #000;
|
||||||
}
|
}
|
||||||
@@ -93,10 +96,11 @@
|
|||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
page-break-before: auto;
|
page-break-before: auto;
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
@php
|
{{-- @php
|
||||||
$data = '';
|
$data = '';
|
||||||
foreach ($permohonan->documents as $dokumen) {
|
foreach ($permohonan->documents as $dokumen) {
|
||||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||||
@@ -126,7 +130,7 @@
|
|||||||
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
||||||
|
|
||||||
$data = rtrim($data, ', ');
|
$data = rtrim($data, ', ');
|
||||||
@endphp
|
@endphp --}}
|
||||||
|
|
||||||
<body style="width: 90%; margin: auto;">
|
<body style="width: 90%; margin: auto;">
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
<main class="content">
|
<main class="content">
|
||||||
<div style="text-align: center; margin-top: 5px;">
|
<div style="text-align: center; margin-top: 5px;">
|
||||||
<h4 style="text-transform: uppercase; font-size: 16px; margin: 0;">LAPORAN PENILAIAN ATAS
|
<h4 style="text-transform: uppercase; font-size: 16px; margin: 0;">LAPORAN PENILAIAN ATAS
|
||||||
{{ $data }}</h4>
|
{{ $data }}
|
||||||
|
</h4>
|
||||||
<p style="font-size: 12px; margin: 5px 0;">NO: {{ $nomorLaporan }}</p>
|
<p style="font-size: 12px; margin: 5px 0;">NO: {{ $nomorLaporan }}</p>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
@@ -35,13 +36,14 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Permintaan Cabang</td>
|
<td style="padding: 2px; vertical-align: top;">Permintaan Cabang</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">{{ $permohonan->debiture->branch->name ?? '' }}
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
|
{{ $permohonan->debiture->branch->name ?? '' }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Permintaan (AO)</td>
|
<td style="padding: 2px; vertical-align: top;">Permintaan (AO)</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">{{ $permohonan->user->name }}</td>
|
<td style="padding: 2px; vertical-align: top;">{{ $permohonan->user->name ?? '-' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">No Order</td>
|
<td style="padding: 2px; vertical-align: top;">No Order</td>
|
||||||
@@ -597,35 +599,41 @@
|
|||||||
<td style="padding: 2px; vertical-align: top;">:
|
<td style="padding: 2px; vertical-align: top;">:
|
||||||
</td>
|
</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
|
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? $lingkungan['perkerasan_jalan'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}</td>
|
<td style="padding: 2px; vertical-align: top;">{{
|
||||||
</tr>
|
$lingkungan['lalu_lintas']
|
||||||
<tr>
|
? (is_array($lingkungan['lalu_lintas'])
|
||||||
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
? implode(', ', $lingkungan['lalu_lintas'])
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
: $lingkungan['lalu_lintas'])
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
: '-'
|
||||||
{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
|
}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
|
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
|
||||||
{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
<tr>
|
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
|
||||||
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
|
{{ implode(', ', $lingkungan['tingkat_keramaian']['tingkat_keramaian'] ?? $lingkungan['tingkat_keramaian'] ?? ['-']) }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
< <tr>
|
||||||
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
|
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">:</td>
|
<td style="padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="padding: 2px; vertical-align: top;">
|
<td style="padding: 2px; vertical-align: top;">
|
||||||
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
|
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? $lingkungan['terletak_diarea'] ?? ['-']) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -779,6 +787,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
@if (isset($lpjData['likuidasi']) && $lpjData['likuidasi_nilai_2'] > 0)
|
||||||
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" style="padding: 8px; text-align: left; font-weight: bold;">
|
<td colspan="3" style="padding: 8px; text-align: left; font-weight: bold;">
|
||||||
b. Total Nilai Likuidasi
|
b. Total Nilai Likuidasi
|
||||||
@@ -796,6 +808,7 @@
|
|||||||
{{ $lpjData['likuidasi_nilai_2'] ?? '' }}
|
{{ $lpjData['likuidasi_nilai_2'] ?? '' }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -810,6 +823,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<table>
|
<table>
|
||||||
|
@if (isset($forminspeksi['fakta']['fakta_positif']) && count($forminspeksi['fakta']['fakta_positif']) > 0)
|
||||||
<tr>
|
<tr>
|
||||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Positif</strong></td>
|
<td width="25%" style="vertical-align: top;"><strong>Faktor Positif</strong></td>
|
||||||
<td>
|
<td>
|
||||||
@@ -824,6 +838,8 @@
|
|||||||
@endisset
|
@endisset
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
@if (isset($forminspeksi['fakta']['fakta_negatif']) && count($forminspeksi['fakta']['fakta_negatif']) > 0)
|
||||||
<tr>
|
<tr>
|
||||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Negatif</strong></td>
|
<td width="25%" style="vertical-align: top;"><strong>Faktor Negatif</strong></td>
|
||||||
<td>
|
<td>
|
||||||
@@ -838,6 +854,8 @@
|
|||||||
@endisset
|
@endisset
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
@if (isset($forminspeksi['fakta']['batas_batas_input']) && count($forminspeksi['fakta']['batas_batas_input']) > 0)
|
||||||
<tr>
|
<tr>
|
||||||
<td width="25%" style="vertical-align: top;"><strong>Batas batas</strong></td>
|
<td width="25%" style="vertical-align: top;"><strong>Batas batas</strong></td>
|
||||||
<td>
|
<td>
|
||||||
@@ -848,6 +866,7 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
<tr>
|
<tr>
|
||||||
<td width="25%" style="vertical-align: top;"><strong>Informasi Dinas Tata Ruang</strong>
|
<td width="25%" style="vertical-align: top;"><strong>Informasi Dinas Tata Ruang</strong>
|
||||||
</td>
|
</td>
|
||||||
@@ -940,29 +959,32 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<table style="width: 100%; border-collapse: collapse; text-align: center;">
|
<table style="width: 100%; border-collapse: collapse; text-align: center;">
|
||||||
@php
|
@php
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
|
||||||
$imagePathPenilai = storage_path(
|
|
||||||
'app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign,
|
|
||||||
);
|
|
||||||
|
|
||||||
$soUser = User::where('id', $senior_officer->id)->first();
|
// Penilai
|
||||||
$imagePathSo = storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign);
|
$penilaiUser = isset($penilai->userPenilaiTeam) ? $penilai->userPenilaiTeam : null;
|
||||||
|
$imagePathPenilai = $penilaiUser && $penilaiUser->sign
|
||||||
|
? storage_path('app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign)
|
||||||
|
: null;
|
||||||
|
|
||||||
$imagePathEO = storage_path(
|
// Senior Officer
|
||||||
'app/public/signatures/' .
|
$soUser = $permohonan->approval_so ? User::find($permohonan->approval_so) : null;
|
||||||
User::role('EO Appraisal')->first()->id .
|
$imagePathSo = $soUser && $soUser->sign
|
||||||
'/' .
|
? storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign)
|
||||||
User::role('EO Appraisal')->first()->sign,
|
: null;
|
||||||
);
|
|
||||||
|
|
||||||
$imagePathDD = storage_path(
|
// Executive Officer
|
||||||
'app/public/signatures/' .
|
$eoUser = $permohonan->approval_eo ? User::find($permohonan->approval_eo) : null;
|
||||||
User::role('DD Appraisal')->first()->id .
|
$imagePathEO = $eoUser && $eoUser->sign
|
||||||
'/' .
|
? storage_path('app/public/signatures/' . $eoUser->id . '/' . $eoUser->sign)
|
||||||
User::role('DD Appraisal')->first()->sign,
|
: null;
|
||||||
);
|
|
||||||
@endphp
|
// Deputy Director
|
||||||
|
$ddUser = $permohonan->approval_dd ? User::find($permohonan->approval_dd) : null;
|
||||||
|
$imagePathDD = $ddUser && $ddUser->sign
|
||||||
|
? storage_path('app/public/signatures/' . $ddUser->id . '/' . $ddUser->sign)
|
||||||
|
: null;
|
||||||
|
@endphp
|
||||||
<tr>
|
<tr>
|
||||||
<td style=" padding: 4px;height: 50px">
|
<td style=" padding: 4px;height: 50px">
|
||||||
@if (file_exists($imagePathPenilai))
|
@if (file_exists($imagePathPenilai))
|
||||||
|
|||||||
@@ -324,6 +324,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<!-- Total Nilai Likuidasi -->
|
<!-- Total Nilai Likuidasi -->
|
||||||
|
@if (isset($lpjData['likuidasi']) && $lpjData['likuidasi_nilai_2'] > 0)
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" style="padding: 8px; text-align: left">
|
<td colspan="3" style="padding: 8px; text-align: left">
|
||||||
2. Total Nilai Likuidasi
|
2. Total Nilai Likuidasi
|
||||||
@@ -341,6 +342,7 @@
|
|||||||
{{ $lpjData['likuidasi_nilai_2'] ?? '' }}
|
{{ $lpjData['likuidasi_nilai_2'] ?? '' }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@php
|
@php
|
||||||
@@ -375,27 +377,29 @@
|
|||||||
@php
|
@php
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
|
|
||||||
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
|
// Penilai
|
||||||
$imagePathPenilai = storage_path(
|
$penilaiUser = isset($penilai->userPenilaiTeam) ? $penilai->userPenilaiTeam : null;
|
||||||
'app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign,
|
$imagePathPenilai = $penilaiUser && $penilaiUser->sign
|
||||||
);
|
? storage_path('app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign)
|
||||||
|
: null;
|
||||||
|
|
||||||
$soUser = User::where('id', $senior_officer->id)->first();
|
// Senior Officer
|
||||||
$imagePathSo = storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign);
|
$soUser = $permohonan->approval_so ? User::find($permohonan->approval_so) : null;
|
||||||
|
$imagePathSo = $soUser && $soUser->sign
|
||||||
|
? storage_path('app/public/signatures/' . $soUser->id . '/' . $soUser->sign)
|
||||||
|
: null;
|
||||||
|
|
||||||
$imagePathEO = storage_path(
|
// Executive Officer
|
||||||
'app/public/signatures/' .
|
$eoUser = $permohonan->approval_eo ? User::find($permohonan->approval_eo) : null;
|
||||||
User::role('EO Appraisal')->first()->id .
|
$imagePathEO = $eoUser && $eoUser->sign
|
||||||
'/' .
|
? storage_path('app/public/signatures/' . $eoUser->id . '/' . $eoUser->sign)
|
||||||
User::role('EO Appraisal')->first()->sign,
|
: null;
|
||||||
);
|
|
||||||
|
|
||||||
$imagePathDD = storage_path(
|
// Deputy Director
|
||||||
'app/public/signatures/' .
|
$ddUser = $permohonan->approval_dd ? User::find($permohonan->approval_dd) : null;
|
||||||
User::role('DD Appraisal')->first()->id .
|
$imagePathDD = $ddUser && $ddUser->sign
|
||||||
'/' .
|
? storage_path('app/public/signatures/' . $ddUser->id . '/' . $ddUser->sign)
|
||||||
User::role('DD Appraisal')->first()->sign,
|
: null;
|
||||||
);
|
|
||||||
@endphp
|
@endphp
|
||||||
<tr>
|
<tr>
|
||||||
<td style=" padding: 4px;height: 50px">
|
<td style=" padding: 4px;height: 50px">
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = [
|
if ($inspeksi->is_mig != 1) {
|
||||||
|
$fields = [
|
||||||
'jenis_aset' => 'Jenis properti',
|
'jenis_aset' => 'Jenis properti',
|
||||||
'hak_properti' => 'Status Hak Tanah',
|
'hak_properti' => 'Status Hak Tanah',
|
||||||
'address' => 'Alamat Lokasi',
|
'address' => 'Alamat Lokasi',
|
||||||
@@ -22,16 +23,28 @@
|
|||||||
'luas_bangunan' => 'Luas Bangunan',
|
'luas_bangunan' => 'Luas Bangunan',
|
||||||
'tanggal' => 'Tanggal Data',
|
'tanggal' => 'Tanggal Data',
|
||||||
'kordinat' => 'Titik Kordinat',
|
'kordinat' => 'Titik Kordinat',
|
||||||
];
|
];
|
||||||
|
}
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@foreach ($exportData as $index => $data)
|
@foreach (array_slice($exportData, 0, 3) as $index => $data)
|
||||||
<table style="width: 100%; margin-bottom: 15px; border-bottom: 1px solid #ddd;">
|
<table style="width: 100%; margin-bottom: 15px; border-bottom: 1px solid #ddd;">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="font-weight: bold; padding-bottom: 8px;">
|
<td style="font-weight: bold; padding-bottom: 8px;">
|
||||||
Pembanding {{ substr($index, -1) }}
|
Pembanding {{ substr($index, -1) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
@if ($inspeksi->is_mig == 1)
|
||||||
|
<tr>
|
||||||
|
<td style="width: 33%; vertical-align: top;">Keterangan</td>
|
||||||
|
<td style="width: 5%; vertical-align: top;">:</td>
|
||||||
|
<td style="width: 62%;">
|
||||||
|
{{isset($data['keterangan']) ? parsePembandingMigration($data['keterangan']) : '' }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@else
|
||||||
@foreach ($fields as $key => $label)
|
@foreach ($fields as $key => $label)
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 33%;">{{ $label }}</td>
|
<td style="width: 33%;">{{ $label }}</td>
|
||||||
@@ -63,6 +76,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@endif
|
||||||
</table>
|
</table>
|
||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -321,7 +321,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if($permohonan->jenisPenilaian->name=="Eksternal")
|
{{-- @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">
|
||||||
@@ -358,7 +358,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
@endif --}}
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -216,7 +216,7 @@
|
|||||||
</button>
|
</button>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo == null && in_array($permohonan->nilai_plafond_id, [1, 2,3,4]) && $permohonan->status === 'proses-paparan')
|
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo == null && in_array($permohonan->nilai_plafond_id, [1, 2, 3, 4]) && $permohonan->status === 'proses-paparan')
|
||||||
<button onclick="otorisatorData({{ $authorization->id }},'EO')" type="button"
|
<button onclick="otorisatorData({{ $authorization->id }},'EO')" type="button"
|
||||||
class="btn btn-primary">
|
class="btn btn-primary">
|
||||||
<i class="ki-filled ki-double-check"></i>
|
<i class="ki-filled ki-double-check"></i>
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
</button>
|
</button>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd == null && in_array($permohonan->nilai_plafond_id, [4]) &&$permohonan->status === 'proses-paparan')
|
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd == null && in_array($permohonan->nilai_plafond_id, [2, 4]) &&$permohonan->status === 'proses-paparan')
|
||||||
<button onclick="otorisatorData({{ $authorization->id }},'DD')" type="button"
|
<button onclick="otorisatorData({{ $authorization->id }},'DD')" type="button"
|
||||||
class="btn btn-primary">
|
class="btn btn-primary">
|
||||||
<i class="ki-filled ki-double-check"></i>
|
<i class="ki-filled ki-double-check"></i>
|
||||||
|
|||||||
@@ -150,13 +150,13 @@
|
|||||||
user_id: {
|
user_id: {
|
||||||
title: 'User Pemohon',
|
title: 'User Pemohon',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.user.name}`;
|
return `${data?.user?.name || '-'}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
branch_id: {
|
branch_id: {
|
||||||
title: 'Cabang Pemohon',
|
title: 'Cabang Pemohon',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.branch.name}`;
|
return `${data?.branch?.name || '-'}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
debitur_id: {
|
debitur_id: {
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Tanggal Survey</label>
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
<div class="flex flex-wrap items-base line w-full">
|
<div class="flex flex-wrap items-base line w-full">
|
||||||
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
|
<p class="text-2sm text-gray-700"> {{ $permohonan->created_at ? $permohonan->created_at->format('d/m/Y') : '' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -81,10 +81,12 @@
|
|||||||
</div>
|
</div>
|
||||||
@php
|
@php
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
$cabangUser = User::where('id', $permohonan->user->id)->first();
|
$cabangUser = null;
|
||||||
|
|
||||||
|
if ($permohonan->user) {
|
||||||
|
$cabangUser = User::where('id', $permohonan->user->id)->first();
|
||||||
|
}
|
||||||
// print_r($cabangUser->sign);
|
// print_r($cabangUser->sign);
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@@ -95,122 +97,122 @@
|
|||||||
console.log(datas);
|
console.log(datas);
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
const signaturePads = {};
|
const signaturePads = {};
|
||||||
const types = ['penilai', 'cabang', 'debitur', 'kjpp'];
|
const types = ['penilai', 'cabang', 'debitur', 'kjpp'];
|
||||||
|
|
||||||
// Initialize all signature pads
|
// Initialize all signature pads
|
||||||
types.forEach(type => initSignaturePad(type));
|
types.forEach(type => initSignaturePad(type));
|
||||||
|
|
||||||
function initSignaturePad(type) {
|
function initSignaturePad(type) {
|
||||||
const canvas = document.getElementById(`signature-pad-${type}`);
|
const canvas = document.getElementById(`signature-pad-${type}`);
|
||||||
if (!canvas) return;
|
if (!canvas) return;
|
||||||
|
|
||||||
// Improved canvas sizing with strict boundary control
|
// Improved canvas sizing with strict boundary control
|
||||||
function resizeCanvas() {
|
function resizeCanvas() {
|
||||||
const container = canvas.closest('.signature-pad-container');
|
const container = canvas.closest('.signature-pad-container');
|
||||||
const containerWidth = container.clientWidth;
|
const containerWidth = container.clientWidth;
|
||||||
|
|
||||||
// Set canvas style dimensions
|
// Set canvas style dimensions
|
||||||
canvas.style.width = '100%';
|
canvas.style.width = '100%';
|
||||||
canvas.style.height = `${containerWidth * 0.5}px`; // 2:1 aspect ratio
|
canvas.style.height = `${containerWidth * 0.5}px`; // 2:1 aspect ratio
|
||||||
|
|
||||||
// Set actual canvas dimensions with high DPI support
|
// Set actual canvas dimensions with high DPI support
|
||||||
const ratio = window.devicePixelRatio || 1;
|
const ratio = window.devicePixelRatio || 1;
|
||||||
canvas.width = containerWidth * ratio;
|
canvas.width = containerWidth * ratio;
|
||||||
canvas.height = (containerWidth * 0.5) * ratio;
|
canvas.height = (containerWidth * 0.5) * ratio;
|
||||||
|
|
||||||
// Scale canvas context
|
// Scale canvas context
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext('2d');
|
||||||
ctx.scale(ratio, ratio);
|
ctx.scale(ratio, ratio);
|
||||||
|
|
||||||
// Clear and redraw existing signature if any
|
// Clear and redraw existing signature if any
|
||||||
if (signaturePads[type] && !signaturePads[type].isEmpty()) {
|
if (signaturePads[type] && !signaturePads[type].isEmpty()) {
|
||||||
const signaturePad = signaturePads[type];
|
const signaturePad = signaturePads[type];
|
||||||
const imageData = signaturePad.toData();
|
const imageData = signaturePad.toData();
|
||||||
signaturePad.clear();
|
signaturePad.clear();
|
||||||
signaturePad.fromData(imageData);
|
signaturePad.fromData(imageData);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Create signature pad with boundary and scaling control
|
|
||||||
const signaturePad = new SignaturePad(canvas, {
|
|
||||||
backgroundColor: 'rgba(255, 255, 255, 0)',
|
|
||||||
penColor: 'rgb(0, 0, 0)',
|
|
||||||
minWidth: 0.5,
|
|
||||||
maxWidth: 2.5,
|
|
||||||
throttle: 16,
|
|
||||||
dotSize: 2,
|
|
||||||
|
|
||||||
// Custom function to control signature drawing
|
|
||||||
onBegin: (event) => {
|
|
||||||
const ctx = canvas.getContext('2d');
|
|
||||||
const rect = canvas.getBoundingClientRect();
|
|
||||||
const scaleX = canvas.width / rect.width;
|
|
||||||
const scaleY = canvas.height / rect.height;
|
|
||||||
|
|
||||||
// Ensure drawing stays within canvas
|
|
||||||
if (
|
|
||||||
event.clientX < rect.left ||
|
|
||||||
event.clientX > rect.right ||
|
|
||||||
event.clientY < rect.top ||
|
|
||||||
event.clientY > rect.bottom
|
|
||||||
) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create signature pad with boundary and scaling control
|
||||||
|
const signaturePad = new SignaturePad(canvas, {
|
||||||
|
backgroundColor: 'rgba(255, 255, 255, 0)',
|
||||||
|
penColor: 'rgb(0, 0, 0)',
|
||||||
|
minWidth: 0.5,
|
||||||
|
maxWidth: 2.5,
|
||||||
|
throttle: 16,
|
||||||
|
dotSize: 2,
|
||||||
|
|
||||||
|
// Custom function to control signature drawing
|
||||||
|
onBegin: (event) => {
|
||||||
|
const ctx = canvas.getContext('2d');
|
||||||
|
const rect = canvas.getBoundingClientRect();
|
||||||
|
const scaleX = canvas.width / rect.width;
|
||||||
|
const scaleY = canvas.height / rect.height;
|
||||||
|
|
||||||
|
// Ensure drawing stays within canvas
|
||||||
|
if (
|
||||||
|
event.clientX < rect.left ||
|
||||||
|
event.clientX > rect.right ||
|
||||||
|
event.clientY < rect.top ||
|
||||||
|
event.clientY > rect.bottom
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
signaturePads[type] = signaturePad;
|
||||||
|
|
||||||
|
// Initial resize
|
||||||
|
resizeCanvas();
|
||||||
|
|
||||||
|
// Load existing signature
|
||||||
|
if (type === 'penilai' || type === 'cabang') {
|
||||||
|
loadPenilaiAndCabangSignature(type, signaturePad);
|
||||||
|
} else {
|
||||||
|
loadSignature(type, signaturePad);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add event listeners
|
||||||
|
addEventListeners(type, signaturePad);
|
||||||
|
|
||||||
|
// Add resize listener
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
resizeCanvas();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
|
||||||
signaturePads[type] = signaturePad;
|
|
||||||
|
|
||||||
// Initial resize
|
function drawSignature(signaturePad, imageUrl) {
|
||||||
resizeCanvas();
|
const image = new Image();
|
||||||
|
image.crossOrigin = 'Anonymous';
|
||||||
|
image.onload = function() {
|
||||||
|
const ctx = signaturePad.canvas.getContext('2d');
|
||||||
|
const canvasWidth = signaturePad.canvas.width;
|
||||||
|
const canvasHeight = signaturePad.canvas.height;
|
||||||
|
|
||||||
// Load existing signature
|
// Clear previous content
|
||||||
if (type === 'penilai' || type === 'cabang') {
|
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
|
||||||
loadPenilaiAndCabangSignature(type, signaturePad);
|
|
||||||
} else {
|
|
||||||
loadSignature(type, signaturePad);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add event listeners
|
// Calculate scaling to fit within canvas while maintaining aspect ratio
|
||||||
addEventListeners(type, signaturePad);
|
const scale = Math.min(
|
||||||
|
canvasWidth / image.width,
|
||||||
|
canvasHeight / image.height
|
||||||
|
);
|
||||||
|
|
||||||
// Add resize listener
|
const scaledWidth = image.width * scale;
|
||||||
window.addEventListener('resize', () => {
|
const scaledHeight = image.height * scale;
|
||||||
resizeCanvas();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function drawSignature(signaturePad, imageUrl) {
|
// Center the image
|
||||||
const image = new Image();
|
const x = (canvasWidth - scaledWidth) / 2;
|
||||||
image.crossOrigin = 'Anonymous';
|
const y = (canvasHeight - scaledHeight) / 2;
|
||||||
image.onload = function() {
|
|
||||||
const ctx = signaturePad.canvas.getContext('2d');
|
|
||||||
const canvasWidth = signaturePad.canvas.width;
|
|
||||||
const canvasHeight = signaturePad.canvas.height;
|
|
||||||
|
|
||||||
// Clear previous content
|
// Draw the scaled and centered image
|
||||||
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
|
ctx.drawImage(image, x, y, scaledWidth, scaledHeight);
|
||||||
|
};
|
||||||
// Calculate scaling to fit within canvas while maintaining aspect ratio
|
image.onerror = function() {
|
||||||
const scale = Math.min(
|
console.error('Error loading signature image');
|
||||||
canvasWidth / image.width,
|
};
|
||||||
canvasHeight / image.height
|
image.src = imageUrl;
|
||||||
);
|
}
|
||||||
|
|
||||||
const scaledWidth = image.width * scale;
|
|
||||||
const scaledHeight = image.height * scale;
|
|
||||||
|
|
||||||
// Center the image
|
|
||||||
const x = (canvasWidth - scaledWidth) / 2;
|
|
||||||
const y = (canvasHeight - scaledHeight) / 2;
|
|
||||||
|
|
||||||
// Draw the scaled and centered image
|
|
||||||
ctx.drawImage(image, x, y, scaledWidth, scaledHeight);
|
|
||||||
};
|
|
||||||
image.onerror = function() {
|
|
||||||
console.error('Error loading signature image');
|
|
||||||
};
|
|
||||||
image.src = imageUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addEventListeners(type, signaturePad) {
|
function addEventListeners(type, signaturePad) {
|
||||||
document.getElementById(`save-${type}`)?.addEventListener('click', () => saveSignature(type,
|
document.getElementById(`save-${type}`)?.addEventListener('click', () => saveSignature(type,
|
||||||
@@ -237,7 +239,7 @@
|
|||||||
(type === 'penilai' ?
|
(type === 'penilai' ?
|
||||||
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
||||||
(type === 'cabang' ?
|
(type === 'cabang' ?
|
||||||
`{{ asset('storage/signatures/' . $cabangUser->id . '/' . $cabangUser->sign) }}` :
|
`{{ asset('storage/signatures/' . $cabangUser?->id . '/' . $cabangUser?->sign) }}` :
|
||||||
'')) :
|
'')) :
|
||||||
signaturePad.toDataURL('image/png', 1.0); // Use full quality
|
signaturePad.toDataURL('image/png', 1.0); // Use full quality
|
||||||
|
|
||||||
@@ -332,13 +334,13 @@
|
|||||||
} else {
|
} else {
|
||||||
const signUrl = type === 'penilai' ?
|
const signUrl = type === 'penilai' ?
|
||||||
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
||||||
`{{ asset('storage/signatures/' . $cabangUser->id . '/' . $cabangUser->sign) }}`;
|
`{{ asset('storage/signatures/' . $cabangUser?->id . '/' . $cabangUser?->sign) }}`;
|
||||||
|
|
||||||
drawSignature(signaturePad, signUrl);
|
drawSignature(signaturePad, signUrl);
|
||||||
|
|
||||||
const defaultName = type === 'penilai' ?
|
const defaultName = type === 'penilai' ?
|
||||||
`{{ Auth::user()->name }}` :
|
`{{ Auth::user()->name }}` :
|
||||||
`{{ $cabangUser->name }}`;
|
`{{ $cabangUser?->name }}`;
|
||||||
if (nameInputElement) {
|
if (nameInputElement) {
|
||||||
nameInputElement.value = defaultName;
|
nameInputElement.value = defaultName;
|
||||||
}
|
}
|
||||||
@@ -362,7 +364,7 @@
|
|||||||
(type === 'penilai' ?
|
(type === 'penilai' ?
|
||||||
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
`{{ asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign) }}` :
|
||||||
(type === 'cabang' ?
|
(type === 'cabang' ?
|
||||||
`{{ asset('storage/signatures/' . $cabangUser->id . '/' . $cabangUser->sign) }}` :
|
`{{ asset('storage/signatures/' . $cabangUser?->id . '/' . $cabangUser?->sign) }}` :
|
||||||
'')) :
|
'')) :
|
||||||
signaturePad.toDataURL('image/png');
|
signaturePad.toDataURL('image/png');
|
||||||
|
|
||||||
@@ -519,17 +521,17 @@
|
|||||||
const formData = new FormData(form);
|
const formData = new FormData(form);
|
||||||
|
|
||||||
const fotoFields = [
|
const fotoFields = [
|
||||||
'foto_gistaru',
|
'foto_gistaru',
|
||||||
'foto_bhumi',
|
'foto_bhumi',
|
||||||
'foto_argis_region',
|
'foto_argis_region',
|
||||||
'foto_tempat',
|
'foto_tempat',
|
||||||
'foto_sentuh_tanahku',
|
'foto_sentuh_tanahku',
|
||||||
'upload_gs'
|
'upload_gs'
|
||||||
];
|
];
|
||||||
|
|
||||||
fotoFields.forEach((field) => {
|
fotoFields.forEach((field) => {
|
||||||
formData.delete(field);
|
formData.delete(field);
|
||||||
});
|
});
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route('surveyor.store') }}',
|
url: '{{ route('surveyor.store') }}',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@if (!empty($forminspeksi['fakta']['rute_menuju']))
|
||||||
<tr>
|
<tr>
|
||||||
<td width="20%" style="vertical-align: top;">Rute Munuju</td>
|
<td width="20%" style="vertical-align: top;">Rute Munuju</td>
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
@@ -62,8 +62,11 @@
|
|||||||
<p>{{ $forminspeksi['fakta']['rute_menuju'] ?? '' }}</p>
|
<p>{{ $forminspeksi['fakta']['rute_menuju'] ?? '' }}</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
@if (!empty($forminspeksi['fakta']['batas_batas_input']))
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td width="20%" style="vertical-align: top;">Batas Batas </td>
|
<td width="20%" style="vertical-align: top;">Batas Batas </td>
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
@@ -71,13 +74,15 @@
|
|||||||
|
|
||||||
|
|
||||||
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
|
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
|
||||||
@if ($batas)
|
@if ($batas)
|
||||||
<p> - {{ $arah }} : {{ $batas }}</p>
|
<p> - {{ $arah }} : {{ $batas }}</p>
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (!empty($forminspeksi['fakta']['kondisi_lingkungan']))
|
||||||
<tr>
|
<tr>
|
||||||
<td width="20%" style="vertical-align: top;">Kondisi lain terkait lingkungan </td>
|
<td width="20%" style="vertical-align: top;">Kondisi lain terkait lingkungan </td>
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
@@ -89,6 +94,9 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (!empty($forminspeksi['fakta']['kondisi_lain_bangunan']))
|
||||||
<tr>
|
<tr>
|
||||||
<td width="20%" style="vertical-align: top;">Kondisi lain terkait Bangunan </td>
|
<td width="20%" style="vertical-align: top;">Kondisi lain terkait Bangunan </td>
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
@@ -99,6 +107,8 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
@if (!empty($forminspeksi['fakta']['informasi_dokument']))
|
||||||
<tr>
|
<tr>
|
||||||
<td width="20%" style="vertical-align: top;">Informasi Terkait Dokumen </td>
|
<td width="20%" style="vertical-align: top;">Informasi Terkait Dokumen </td>
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
@@ -110,7 +120,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
Jakarta {{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) }}
|
{{ $permohonan->debiture->branch->name ?? '' }} {{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
@@ -1,103 +1,108 @@
|
|||||||
<div class="no-break" >
|
@php
|
||||||
<table
|
$informasi = [
|
||||||
style="width: 100%; border: 1px solid #000; border-collapse: collapse; ">
|
'peruntukan',
|
||||||
<tr>
|
'kdb',
|
||||||
<td style="text-align: center; margin-top: 5px;">
|
'kdh',
|
||||||
<h2 style="text-transform: uppercase; text-align: center; margin: 0;">Informasi Dinas Tata Ruang</h2>
|
'gsb',
|
||||||
</td>
|
'max_lantai',
|
||||||
</tr>
|
'klb',
|
||||||
</table>
|
'gss',
|
||||||
<table>
|
'pelebaran_jalan',
|
||||||
|
'nama_petugas',
|
||||||
|
];
|
||||||
|
|
||||||
|
$fotoTypes = [
|
||||||
|
'upload_gs',
|
||||||
|
'foto_sentuh_tanahku',
|
||||||
|
'foto_gistaru',
|
||||||
|
'foto_bhumi',
|
||||||
|
'foto_argis_region',
|
||||||
|
'foto_tempat',
|
||||||
|
];
|
||||||
|
|
||||||
<tr>
|
$customLabels = [
|
||||||
<td width="20%" style="vertical-align: top;">Informasi Dinas Tata Ruang </td>
|
'upload_gs' => 'Gambar Situasi',
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
|
||||||
<td style="vertical-align: top;">
|
'foto_gistaru' => 'Gistaru',
|
||||||
@php
|
'foto_bhumi' => 'Bhumi',
|
||||||
$informasi = [
|
'foto_argis_region' => 'Blad Tata Ruang ',
|
||||||
'peruntukan',
|
'foto_tempat' => 'Peta Lokasi',
|
||||||
'kdb',
|
];
|
||||||
'kdh',
|
|
||||||
'gsb',
|
|
||||||
'max_lantai',
|
|
||||||
'klb',
|
|
||||||
'gss',
|
|
||||||
'pelebaran_jalan',
|
|
||||||
'nama_petugas',
|
|
||||||
];
|
|
||||||
@endphp
|
|
||||||
|
|
||||||
@foreach ($informasi as $key)
|
// Periksa apakah ada informasi dinas tata ruang yang valid
|
||||||
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
$hasInformasi = collect($informasi)->some(fn($key) => isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-');
|
||||||
@php
|
|
||||||
$displayKey = ucfirst(str_replace('_', ' ', $key));
|
|
||||||
if (strlen($key) == 3) {
|
|
||||||
$displayKey = strtoupper($key);
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
<p> - {{ $displayKey }}: {{ $forminspeksi['fakta'][$key] }}</p>
|
|
||||||
@endif
|
|
||||||
@endforeach
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
@php
|
// Periksa apakah ada foto yang valid
|
||||||
$fotoTypes = [
|
$hasValidPhotos = collect($fotoTypes)->some(function ($type) use ($forminspeksi) {
|
||||||
'upload_gs',
|
$imagePath = $forminspeksi[$type] ?? null;
|
||||||
'foto_sentuh_tanahku',
|
return $imagePath && file_exists(storage_path('app/public/' . $imagePath));
|
||||||
'foto_gistaru',
|
});
|
||||||
'foto_bhumi',
|
|
||||||
'foto_argis_region',
|
|
||||||
'foto_tempat',
|
|
||||||
];
|
|
||||||
|
|
||||||
$customLabels = [
|
// Periksa apakah ada catatan yang perlu diperhatikan
|
||||||
'upload_gs' => 'Gambar Situasi',
|
$hasNotes = !empty($forminspeksi['fakta']['keterangan'] ?? []);
|
||||||
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
|
@endphp
|
||||||
'foto_gistaru' => 'Gistaru',
|
|
||||||
'foto_bhumi' => 'Bhumi',
|
|
||||||
'foto_argis_region' => 'Blad Tata Ruang ',
|
|
||||||
'foto_tempat' => 'Peta Lokasi',
|
|
||||||
];
|
|
||||||
// Memindahkan foto_tempat ke depan jika ada
|
|
||||||
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
|
|
||||||
unset($fotoTypes[$key]);
|
|
||||||
array_unshift($fotoTypes, 'upload_gs');
|
|
||||||
}
|
|
||||||
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
|
|
||||||
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
|
|
||||||
return isset($forminspeksi[$type]) && !empty($forminspeksi[$type]) && is_string($forminspeksi[$type]);
|
|
||||||
});
|
|
||||||
@endphp
|
|
||||||
@foreach ($validPhotoTypes as $type)
|
|
||||||
@php
|
|
||||||
$imagePath = $forminspeksi[$type] ?? null;
|
|
||||||
$imageUrl = is_string($imagePath) ? asset('storage/' . $imagePath) : null;
|
|
||||||
|
|
||||||
@endphp
|
@if ($hasInformasi || $hasValidPhotos || $hasNotes)
|
||||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
<div class="no-break">
|
||||||
|
<table style="width: 100%; border: 1px solid #000; border-collapse: collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="text-align: center; margin-top: 5px;">
|
||||||
|
<h2 style="text-transform: uppercase; text-align: center; margin: 0;">Informasi Dinas Tata Ruang</h2>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
@if ($hasInformasi)
|
||||||
<tr>
|
<tr>
|
||||||
<td style="20%"> {{ $customLabels[$type] ?? '' }}</td>
|
<td width="20%" style="vertical-align: top;">Informasi Dinas Tata Ruang</td>
|
||||||
<td width="1%" style="vertical-align: top;"></td>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
<td style="width: 79%">
|
<td style="vertical-align: top;">
|
||||||
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $imageUrl }}"
|
@foreach ($informasi as $key)
|
||||||
style="max-height: 400px; height: auto; max-width: 100%;">
|
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
||||||
|
@php
|
||||||
|
$displayKey = ucfirst(str_replace('_', ' ', $key));
|
||||||
|
if (strlen($key) == 3) {
|
||||||
|
$displayKey = strtoupper($key);
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
<p>- {{ $displayKey }}: {{ $forminspeksi['fakta'][$key] }}</p>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
|
||||||
<tr>
|
|
||||||
<td width="20%" style="vertical-align: top;">Catatan yang Perlu Diperhatikan </td>
|
|
||||||
<td width="1%" style="vertical-align: top;">:</td>
|
|
||||||
<td style="vertical-align: top;">
|
|
||||||
|
|
||||||
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $informasi)
|
@if ($hasValidPhotos)
|
||||||
<p>{!! nl2br(e($informasi)) !!}</p>
|
@foreach ($fotoTypes as $type)
|
||||||
|
@php
|
||||||
|
$imagePath = $forminspeksi[$type] ?? null;
|
||||||
|
$imageUrl = is_string($imagePath) ? asset('storage/' . $imagePath) : null;
|
||||||
|
@endphp
|
||||||
|
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||||
|
<tr>
|
||||||
|
<td style="20%"> {{ $customLabels[$type] ?? '' }}</td>
|
||||||
|
<td width="1%" style="vertical-align: top;"></td>
|
||||||
|
<td style="width: 79%">
|
||||||
|
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $imageUrl }}"
|
||||||
|
style="max-height: 400px; height: auto; max-width: 100%;">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
</td>
|
@if ($hasNotes)
|
||||||
</tr>
|
<tr>
|
||||||
|
<td width="20%" style="vertical-align: top;">Catatan yang Perlu Diperhatikan</td>
|
||||||
</table>
|
<td width="1%" style="vertical-align: top;">:</td>
|
||||||
</div>
|
<td style="vertical-align: top;">
|
||||||
|
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $informasi)
|
||||||
|
<p>{!! nl2br(e($informasi)) !!}</p>
|
||||||
|
@endforeach
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endif
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|||||||
@@ -69,22 +69,26 @@
|
|||||||
<tr>
|
<tr>
|
||||||
@foreach ($basicData['laluLintasLokasi'] as $index => $item)
|
@foreach ($basicData['laluLintasLokasi'] as $index => $item)
|
||||||
@if ($index % 3 == 0 && $index > 0)
|
@if ($index % 3 == 0 && $index > 0)
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
@endif
|
||||||
|
<td class="checkbox-item">
|
||||||
|
<label class="checkbox-label">
|
||||||
|
<input type="checkbox"
|
||||||
|
{{ isset($forminspeksi['lingkungan']['lalu_lintas'])
|
||||||
|
&& is_array($forminspeksi['lingkungan']['lalu_lintas'])
|
||||||
|
&& in_array($item->name, $forminspeksi['lingkungan']['lalu_lintas'])
|
||||||
|
? 'checked' : '' }}>
|
||||||
|
{{ $item->name }}
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
@endforeach
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
</table>
|
||||||
@endif
|
@endif
|
||||||
<td class="checkbox-item">
|
|
||||||
<label class="checkbox-label">
|
|
||||||
<input type="checkbox"
|
|
||||||
{{ isset($forminspeksi['lingkungan']['lalu_lintas']) && in_array($item->name, $forminspeksi['lingkungan']['lalu_lintas']) ? 'checked' : '' }}>
|
|
||||||
{{ $item->name }}
|
|
||||||
</label>
|
|
||||||
</td>
|
</td>
|
||||||
@endforeach
|
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
|
||||||
@endif
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
<td style="vertical-align: top;">Golongan Masyarakat Sekitar</td>
|
||||||
|
|||||||
@@ -255,12 +255,19 @@
|
|||||||
<td style="width: 1%; padding: 2px; vertical-align: top;">:</td>
|
<td style="width: 1%; padding: 2px; vertical-align: top;">:</td>
|
||||||
<td style="vertical-align: top; padding: 2px;">
|
<td style="vertical-align: top; padding: 2px;">
|
||||||
@if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan']))
|
@if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan']))
|
||||||
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item)
|
@if (is_array($forminspeksi['asset']['debitur_perwakilan']))
|
||||||
<p style="margin: 0; padding:0;">
|
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item)
|
||||||
{{ $item }}
|
<p style="margin: 0; padding:0;">
|
||||||
</p>
|
{{ $item }}
|
||||||
@endforeach
|
</p>
|
||||||
@endif
|
@endforeach
|
||||||
|
@else
|
||||||
|
<p style="margin: 0; padding:0;">
|
||||||
|
{{ $forminspeksi['asset']['debitur_perwakilan'] }}
|
||||||
|
</p>
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -383,12 +390,13 @@
|
|||||||
<td style="width: 25%; padding: 2px; vertical-align: top;">Titik Kordinat</td>
|
<td style="width: 25%; padding: 2px; vertical-align: top;">Titik Kordinat</td>
|
||||||
<td style="width: 1%; vertical-align: top;">:</td>
|
<td style="width: 1%; vertical-align: top;">:</td>
|
||||||
<td style="vertical-align: top; width: 79%;">
|
<td style="vertical-align: top; width: 79%;">
|
||||||
{{ isset($forminspeksi['asset']['kordinat_lat']) ? $forminspeksi['asset']['kordinat_lat'] : '' }}
|
{{ isset($forminspeksi['asset']['kordinat_lat']) && !empty($forminspeksi['asset']['kordinat_lat']) ? $forminspeksi['asset']['kordinat_lat'] : '-' }}
|
||||||
,
|
,
|
||||||
{{ isset($forminspeksi['asset']['kordinat_lng']) ? $forminspeksi['asset']['kordinat_lng'] : '' }}
|
{{ isset($forminspeksi['asset']['kordinat_lng']) && !empty($forminspeksi['asset']['kordinat_lng']) ? $forminspeksi['asset']['kordinat_lng'] : '-' }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="no-break" >
|
<div class="no-break" >
|
||||||
<table
|
<table
|
||||||
style="width: 100%; border: 1px solid #000; border-collapse: collapse; ">
|
style="width: 100%; border: 1px solid #000; border-collapse: collapse; ">
|
||||||
|
|||||||
Reference in New Issue
Block a user