Compare commits

...

10 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
4bef7cdafd feat(laporan-admin-kredit): tambah kolom kolektibilitas & keterangan pada index dan export Excel
- Tambah kolom "Kolektibilitas" (min-w 150px) & "Keterangan" (min-w 200px) di tabel index laporan admin kredit
- Dukungan sorting & filtering pada kedua kolom baru dengan integrasi DataTable
- Implementasi truncation keterangan >50 karakter dengan suffix "..." dan fallback "-" jika kosong
- Responsive design di tabel index agar tetap readable di berbagai layar
- Mapping data export Excel ditambahkan field kolektibilitas & keterangan (posisi kolom N & O)
- Update heading Excel: tambah header "Kolektibilitas" & "Keterangan", geser "Created At" ke kolom P
- Tambah format Excel: FORMAT_TEXT untuk kolektibilitas & keterangan, FORMAT_DATE_DATETIME untuk created_at
- Dampak: informasi laporan admin kredit lebih lengkap, mendukung analisis kolektibilitas & dokumentasi tambahan
2025-09-22 09:12:52 +07:00
Daeng Deni Mardaeni
bf728972b5 (laporan-admin-kredit): tambah kolom keterangan & kolektibilitas
- Tambah field `keterangan` (TEXT) & `kolektibilitas` (VARCHAR 10) pada tabel laporan_admin_kredit
- Update model LaporanAdminKredit dengan fillable baru
- Tambah dropdown kolektibilitas (1-5: Lancar, DPK, Kurang Lancar, Diragukan, Macet) di form
- Tambah textarea keterangan dengan old() support untuk validasi
- Validasi: `keterangan` nullable|string, `kolektibilitas` nullable|string|in:1..5
- Update controller: simpan field baru dengan DB transaction & error handling
- Migration baru untuk menambah kolom `keterangan` & `kolektibilitas`
- UI/UX: konsistensi styling, responsive grid layout, placeholder informatif
- Testing: form simpan & validasi berhasil, migration jalan tanpa error
2025-09-22 09:12:42 +07:00
Daeng Deni Mardaeni
dfd2a82b42 🎨(view): Refaktor dan optimasi tampilan detail jaminan dengan perbaikan CSS & struktur kode
- Konsistensi urutan class CSS mengikuti standar Tailwind (layout → sizing → typography → colors)
- Perbaikan indentasi, spacing, whitespace, dan formatting string ("" → '')
- Penyusunan ulang struktur HTML dengan alignment & spacing yang lebih rapi
- Optimalisasi Blade template: perbaikan kondisi `@if (isset($penawaran))` & closing tag
- Standarisasi penggunaan grid layout dan urutan class grid (contoh: `grid grid-cols-1 gap-5 xl:grid-cols-2`)
- Konsistensi typography classes (`font-normal text-gray-700 text-2sm`) dan urutan color classes
- Refaktor struktur tabel: perbaikan class ordering, cell formatting, dan spacing kolom
- Penyusunan ulang komponen accordion dengan indentasi & struktur konten yang konsisten
- Konsistensi class pada tombol accordion & link structure untuk meningkatkan maintainability
2025-09-21 21:19:56 +07:00
Daeng Deni Mardaeni
c4bb3bea28 🔧(backend): Perbaikan & optimasi controller serta view untuk modul penilai dan surveyor
- PenilaiController: tambah eager loading relasi `penawaran` untuk kurangi N+1 query
- RegistrasiFinalController: ubah filter status dari `spk` → `registrasi-final`
- SurveyorController: perbaiki pengecekan jenisPenilaian dengan `in_array` (support External/Eksternal, case-insensitive)
- SurveyorController: ubah field `tanggal_laporan` → `tgl_final_laporan` sesuai DB baru
- SurveyorController: sanitasi koordinat lat/lon dengan menghapus koma untuk valid format
- SurveyorController: perbaiki exception handling (`Exeception` → `\Exception`, `$th` → `$e`, tambah namespace lengkap)
- SurveyorController: konsistensi penggunaan `Auth::user()` alih-alih `auth()->user()`
- View pembayaran/index.blade.php: tambahkan safe navigation `data.debiture?.name` untuk hindari null error
- View penilai/index.blade.php: cleanup baris kosong & perbaiki logika status pakai `data.penawaran?.status`
2025-09-21 21:17:19 +07:00
Daeng Deni Mardaeni
006dd44c64 🎨 refactor(form-penilai): rapikan struktur CSS dan formatting kode
- Reorder CSS class sesuai standar Tailwind (layout → sizing → styling)
- Perbaiki indentasi, spacing, dan line breaks untuk readability
- Ganti `else if` menjadi `elseif` pada PHP conditional
- Rapikan multi-line assignment pada nilai luas apartemen-kantor
- Update contoh class: `input w-full` → `w-full input`, `card-title uppercase` → `uppercase card-title`
- Rapikan class ordering pada container flex & grid
- Perbaiki class di button: `btn btn-primary btn-sm mt-5` → `mt-5 btn btn-primary btn-sm`
- Konsistensi class ordering di dynamic HTML generation (JavaScript)
- Fokus pada konsistensi visual tanpa mengubah tampilan UI
2025-09-19 10:18:30 +07:00
Daeng Deni Mardaeni
698935d06f 🔧 refactor(laporan): rapikan logika role pemohon-ao di index laporan
- Gabungkan blok kondisional @if pemohon-ao menjadi satu blok dengan else if
- Perbaiki struktur kode untuk menghindari error "Undefined constant data"
- Tambah komentar untuk memperjelas logika bisnis role-based
- Optimasi kondisi nilai_liquidasi dan status_bayar agar lebih efisien
- Rapikan line breaking dan indentasi parameter generateLaporanButton
- Hapus duplikasi logika pemohon-ao → kode lebih maintainable
- Pisahkan logika role pemohon-ao dan role lain agar lebih jelas
- Konsistensi formatting dan readability di Blade template
- Pastikan tombol laporan tampil sesuai role & kondisi tanpa error JS
2025-09-19 09:22:20 +07:00
Daeng Deni Mardaeni
564c7ccac4 🔧 refactor(laporan): perbaiki URL routing edit laporan admin kredit
- Ubah URL dari `laporan-admin-kredit/${data.id}/edit` → `admin-kredit/laporan/${data.id}/edit`
- Perbaiki konsistensi routing pattern agar sesuai dengan definisi route
- Pastikan tombol edit laporan admin kredit mengarah ke halaman edit yang benar
- Konsistensi routing mencegah error 404 dan meningkatkan UX
2025-09-19 09:17:01 +07:00
Daeng Deni Mardaeni
2b5556410d 🔧 refactor(laporan): kontrol akses role, optimasi query, dan perbaikan UI
- Tambah role `pemohon-ao` & `pemohon-eo` untuk upload lampiran di LampiranDokumen.php
- Implementasi kontrol akses role di lampiran-dokumen.blade.php & laporan/index.blade.php (logika khusus nilai_liquidasi)
- Modifikasi query di LaporanController.php: hapus filter approval_eo_at & optimasi kondisi WHERE
- Perbaikan formatting query dengan indentasi lebih rapi & maintainable
- Standardisasi urutan class CSS di beberapa Blade (activity/index, penilaian/otorisator/index-sla & index)
- Pisahkan logika generateLaporanButton jadi function terpisah di laporan/index.blade.php
- Perbaikan tampilan tombol laporan berbasis role + cleanup baris kosong & indentasi
- Konsistensi UI/UX: responsive design lebih baik, interface clean & styling konsisten dengan Tailwind
- Tingkatkan security & maintainability: granular role access, query lebih efisien, code lebih terstruktur
2025-09-19 09:10:06 +07:00
Daeng Deni Mardaeni
ee7c8ce97f 🔧 refactor(inspeksi): gunakan updateOrCreate & perbaikan kode
- Ganti `Inspeksi::create()` → `updateOrCreate()` di PenilaiController (2x) & SurveyorController (1x) dengan kondisi upsert (permohonan_id + dokument_id)
- Tambah logging di SaveFormInspesksiService.php (`Log::info`) untuk debugging & validasi action kosong
- Perbaiki error handling dengan pesan lebih informatif `'Gagal menyimpan data : '.$e->getMessage()`
- Refaktor parsing action memakai array_map & array_filter agar lebih efisien
- Rapikan kode: hapus baris kosong tidak perlu & improve readability
- Perbaiki urutan class CSS di beberapa Blade view (rap-penilai, penilai/index, surveyor/inspeksi)
- Perbaiki XSS di rap-penilai.blade.php dengan `{!! json_encode($dokumen->address ?? '') !!}`
- Tingkatkan integritas database: cegah duplikasi data inspeksi via updateOrCreate()
- Tambah keamanan & maintainability: logging, validasi input, perbaikan format, serta pembersihan kode lama
2025-09-19 09:06:12 +07:00
Daeng Deni Mardaeni
17f7482080 ♻️ refactor(js): pindahkan fungsi loading SweetAlert ke global scope dan perbaiki bug
- Memindahkan fungsi showLoadingSwal() dan hideLoadingSwal() ke resources/assets/js/app.js
- Menambahkan fitur timer dan progress bar pada fungsi global loading
- Menghapus duplikasi fungsi showLoadingSwal() dari penilai/index.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/otorisator/index-sla.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/otorisator/index.blade.php (~18 baris)
- Menghapus duplikasi fungsi dari penilaian/paparan-so.blade.php (~18 baris)
- Memperbaiki syntax error tag HTML di surveyor/components/informasi.blade.php
- Membersihkan duplikasi fungsi & memperbaiki escape string di surveyor/js/utils.blade.php
- Mengurangi ±90 baris kode duplikat, meningkatkan maintainability & UX (loading dialog lebih informatif)
2025-09-19 09:01:20 +07:00
35 changed files with 1483 additions and 1351 deletions

View File

@@ -32,6 +32,8 @@ class LaporanAdminKreditExport implements WithColumnFormatting, WithHeadings, Fr
$row->nilai_pasar_wajar,
$row->nilai_likuidasi,
$row->nama_penilai,
$row->kolektibilitas,
$row->keterangan,
$row->created_at
];
}
@@ -52,6 +54,8 @@ class LaporanAdminKreditExport implements WithColumnFormatting, WithHeadings, Fr
'Nilai Pasar Wajar',
'Nilai Likuidasi',
'Nama Penilai',
'Kolektibilitas',
'Keterangan',
'Created At'
];
}
@@ -64,7 +68,9 @@ class LaporanAdminKreditExport implements WithColumnFormatting, WithHeadings, Fr
'J' => NumberFormat::FORMAT_DATE_DDMMYYYY,
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'M' => NumberFormat::FORMAT_DATE_DATETIME,
'N' => NumberFormat::FORMAT_TEXT, // Kolektibilitas
'O' => NumberFormat::FORMAT_TEXT, // Keterangan
'P' => NumberFormat::FORMAT_DATE_DATETIME, // Created At (moved from M to P)
];
}
}

View File

@@ -3,6 +3,7 @@
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
@@ -149,6 +150,8 @@
$request->validate([
'kode_register_t24' => 'nullable',
'cif' => 'required',
'keterangan' => 'nullable|string',
'kolektibilitas' => 'nullable|string|in:1,2,3,4,5',
]);
try {
@@ -157,6 +160,8 @@
// Update only the editable fields
$laporanAdminKredit->update([
'kode_register_t24' => $request->kode_register_t24,
'keterangan' => $request->keterangan,
'kolektibilitas' => $request->kolektibilitas,
'updated_by' => Auth::id(),
]);

View File

@@ -75,7 +75,10 @@ class LaporanController extends Controller
}
// Retrieve data from the database
$query = Permohonan::query()->whereIn('status',['proses-laporan','done', 'paparan', 'proses-paparan'])->whereNotNull('approval_so_at')->whereNotNull('approval_eo_at')->where(function ($q) {
$query = Permohonan::query()->whereIn('status',['proses-laporan','done', 'paparan', 'proses-paparan'])
->whereNotNull('approval_so_at')
//->whereNotNull('approval_eo_at')
->where(function ($q) {
$q->whereIn('nilai_plafond_id', [1,4])
->whereNotNull('approval_dd_at')
->orWhereIn('nilai_plafond_id', [2,3]);

View File

@@ -622,7 +622,8 @@ class PenilaiController extends Controller
'jenisfasilitasKredit',
'penilaian.userPenilai',
'penilai',
'nilaiPlafond'
'nilaiPlafond',
'penawaran'
])->get();
// Calculate the page count
@@ -1006,11 +1007,10 @@ class PenilaiController extends Controller
],
];
Inspeksi::create([
Inspeksi::updateOrCreate([
'permohonan_id' => $validatedData['permohonan_id'],
'dokument_id' => $validatedData['dokument_id'],
'dokument_id' => $validatedData['dokument_id']
],[
'data_form' => json_encode($newData),
'name' => $validatedData['type']
]);
@@ -1252,9 +1252,10 @@ class PenilaiController extends Controller
Inspeksi::create([
Inspeksi::updateOrCreate([
'permohonan_id' => $validated['permohonan_id'],
'dokument_id' => $validated['dokument_id'],
'dokument_id' => $validated['dokument_id']
],[
'data_form' => json_encode($newData),
'name' => $validated['type']
]);

View File

@@ -49,7 +49,7 @@
$query =PenawaranTender::query()
->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
->where('penawaran.status','=','spk')
->where('penawaran.status','=','registrasi-final')
->withCount('penawarandetails');
// Apply search filter if provided

View File

@@ -794,12 +794,12 @@ class SurveyorController extends Controller
]);
if ($permohonan->jenisPenilaian->name == "External") {
if (in_array(strtolower($permohonan->jenisPenilaian->name), ['external', 'eksternal'])) {
LaporanExternal::updateOrCreate(
['permohonan_id' => $permohonan->id],
[
'nomor_laporan' => $permohonan->nomor_registrasi,
'tanggal_laporan' => now(),
'tgl_final_laporan' => now(),
'created_by' => Auth::id(),
]
);
@@ -1396,6 +1396,11 @@ class SurveyorController extends Controller
}
public function storeDataPembanding(Request $request)
{
$request->merge([
'kordinat_lat' => $request->get('kordinat_lat') ? str_replace(',', '', $request->get('kordinat_lat')) : null,
'kordinat_lng' => $request->get('kordinat_lng') ? str_replace(',', '', $request->get('kordinat_lng')) : null,
]);
try {
DB::beginTransaction();
@@ -1847,10 +1852,10 @@ class SurveyorController extends Controller
return redirect()
->route('basicdata.' . $type . '.index')
->with('success', 'created successfully');
} catch (Exeception $e) {
} catch (\Exception $e) {
return redirect()
->route('basicdata.' . $type . '.index')
->with('error', $th->getMessage());
->with('error', $e->getMessage());
}
}
}
@@ -2116,7 +2121,7 @@ class SurveyorController extends Controller
public function dataForDatatablesData(Request $request, $type)
{
if (is_null(auth()->user()) || !$this->user->can('jenis_aset.view')) {
if (is_null(Auth::user()) || !$this->user->can('jenis_aset.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
@@ -2156,7 +2161,7 @@ class SurveyorController extends Controller
if (array_key_exists($type, $models)) {
$query = $models[$type]::query();
} else {
throw new InvalidArgumentException("Invalid type: $type");
throw new \InvalidArgumentException("Invalid type: $type");
}
if ($request->has('search') && !empty($request->get('search'))) {
@@ -2229,9 +2234,9 @@ class SurveyorController extends Controller
$model = $modelClass::findOrFail($id);
$model->delete();
return response()->json(['success' => true, 'message' => 'deleted successfully']);
} catch (ModelNotFoundException $e) {
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
return response()->json(['success' => false, 'message' => 'not found.'], 404);
} catch (Exception $e) {
} catch (\Exception $e) {
return response()->json(['success' => false, 'message' => 'Failed to delete.'], 500);
}
}
@@ -2387,14 +2392,14 @@ class SurveyorController extends Controller
$path = $file->storeAs("public/surveyor/{$request->type}", $fileName);
if ($path === false) {
throw new Exception("Failed to store file for {$fileKey}");
throw new \Exception("Failed to store file for {$fileKey}");
}
if (isset($data[$fileKey]) && $data[$fileKey]) {
$this->deleteFile($data[$fileKey]);
}
return str_replace('public/', '', $path);
} else {
throw new Exception("Invalid file upload for {$fileKey}");
throw new \Exception("Invalid file upload for {$fileKey}");
}
} elseif (isset($data[$fileKey]) && $data[$fileKey]) {
return $data[$fileKey];
@@ -2423,14 +2428,14 @@ class SurveyorController extends Controller
public function uploadFile($file, $type)
{
if (!$file->isValid()) {
throw new Exception("Invalid file upload for {$type}");
throw new \Exception("Invalid file upload for {$type}");
}
$fileName = time() . '_' . $file->getClientOriginalName();
$path = $file->storeAs("public/surveyor/{$type}", $fileName);
if ($path === false) {
throw new Exception("Failed to store file for {$type}");
throw new \Exception("Failed to store file for {$type}");
}
return str_replace('public/', '', $path);
@@ -2880,9 +2885,10 @@ class SurveyorController extends Controller
$inspeksi->data_form = json_encode($existingData);
$inspeksi->save();
} else {
Inspeksi::create([
Inspeksi::updateOrCreate([
'permohonan_id' => $request->input('permohonan_id'),
'dokument_id' => $request->input('document_id'),
'dokument_id' => $request->input('document_id')
],[
'data_form' => json_encode($existingData),
]);
}

View File

@@ -27,7 +27,7 @@ class LampiranDokumen extends Base
{
$user = Auth::user();
if ($user && $user->hasAnyRole(['penilai', 'administrator', 'Penilai', 'admin','surveyor'])) {
if ($user && $user->hasAnyRole(['penilai', 'administrator', 'Penilai', 'admin','surveyor','pemohon-ao','pemohon-eo'])) {
$file = $fileData['file'];
$fileName = $fileData['nama_file'] ?? time() . '_' . $file->getClientOriginalName();
$filePath = $file->storeAs('lampiran_dokumen', $fileName, 'public');

View File

@@ -18,7 +18,9 @@ class LaporanAdminKredit extends Base
'tanggal_kunjungan',
'nilai_pasar_wajar',
'nilai_likuidasi',
'nama_penilai'
'nama_penilai',
'keterangan',
'kolektibilitas'
];
protected $casts = [

View File

@@ -4,6 +4,7 @@ namespace Modules\Lpj\Services;
use Modules\Lpj\Models\Inspeksi;
use Illuminate\Http\Request;
use \Illuminate\Support\Facades\Log;
class SaveFormInspesksiService
{
@@ -20,6 +21,7 @@ class SaveFormInspesksiService
$inspeksi->name = $request->input('type');
$processedData = $this->getActionSpecificRules($validatedData, $type, $request, $inspeksi);
Log::info($processedData);
// Merge data lama dengan data baru
$existingData = json_decode($inspeksi->data_form, true) ?: [];
@@ -33,6 +35,7 @@ class SaveFormInspesksiService
'upload_gs'
];
foreach ($fotoTypes as $fotoType) {
if (isset($existingData[$fotoType])) {
$processedData[$fotoType] = $existingData[$fotoType];
@@ -57,7 +60,7 @@ class SaveFormInspesksiService
} catch (\Exception $e) {
return [
'success' => false,
'message' => 'Gagal menyimpan data',
'message' => 'Gagal menyimpan data : '.$e->getMessage(),
'error' => $e->getMessage()
];
}
@@ -85,36 +88,31 @@ class SaveFormInspesksiService
$hasAssetDescriptionRules = false;
$hasFactaData = false;
$pisah = array_filter(
explode(',', $action),
function ($act) use ($allowedActions) {
return isset($allowedActions[trim($act)]);
}
);
// dd($pisah);
$actions = array_map('trim', explode(',', $action));
$pisah = array_filter($actions, function($act) use ($allowedActions) {
return isset($allowedActions[$act]);
});
foreach ($pisah as $act) {
$act = trim($act); // Bersihkan spasi
if($act){
if (isset($allowedActions[$act])) {
$method = $allowedActions[$act];
$actionRules = $this->$method($data, $request, $inspeksi);
$rules = array_merge($rules, $actionRules);
// Cek apakah act memerlukan asset description rules
if($act){
if (in_array($act, ['apartemen-kantor', 'tanah', 'bangunan', 'rap'])) {
$hasAssetDescriptionRules = true;
}
// Cek apakah act memerlukan fakta data
if (in_array($act, ['rap'])) {
$hasFactaData = true;
}
}
}
}
}
if ($hasAssetDescriptionRules) {
@@ -450,8 +448,6 @@ class SaveFormInspesksiService
$data['perizinan'] = $perizinanData;
$partisiResult = [];
if (isset($data['partisi'])) {
foreach ($data['partisi'] as $name => $values) {

View File

@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('laporan_admin_kredit', function (Blueprint $table) {
$table->text('keterangan')->nullable()->comment('Keterangan tambahan untuk laporan admin kredit');
$table->string('kolektibilitas', 10)->nullable()->comment('Status kolektibilitas kredit');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('laporan_admin_kredit', function (Blueprint $table) {
$table->dropColumn(['keterangan', 'kolektibilitas']);
});
}
};

View File

@@ -31,5 +31,27 @@ function hitungHariKerja(tanggalMulai, tanggalSelesai) {
return hariKerja;
}
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log("Dialog loading otomatis ditutup.");
}
});
}
function hideLoadingSwal() {
Swal.close();
}
// Make the function available globally
window.hitungHariKerja = hitungHariKerja;
window.showLoadingSwal = showLoadingSwal;
window.hideLoadingSwal = hideLoadingSwal;

View File

@@ -43,15 +43,15 @@
}
</style>
@endpush
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card border border-agi-100 pb-2.5">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<div class="pb-2.5 border card border-agi-100">
<div class="card-header bg-agi-50" id="basic_settings">
<div class="card-title flex flex-row gap-1.5">
<div class="flex flex-row gap-1.5 card-title">
Activity
</div>
<div class="card-header bg-agi-50 py-5 flex-wrap">
<div class="flex-wrap py-5 card-header bg-agi-50">
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
@@ -64,30 +64,30 @@
<div class="dropdown" data-dropdown="true" data-dropdown-trigger="click">
<button
class="dropdowns-toggle btn btn-sm btn-light inline-flex justify-between w-full items-center">
class="inline-flex justify-between items-center w-full dropdowns-toggle btn btn-sm btn-light">
Pilih Status
<i class="ki-outline ki-down dropdown-open:hidden">
</i>
<i class="ki-outline ki-up hidden dropdown-open:block">
<i class="hidden ki-outline ki-up dropdown-open:block">
</i>
</button>
<div
class="dropdowns-content w-full max-w-56 py-2 absolute mt-2 origin-top-right z-50 bg-white rounded-md shadow-lg ring-1 ring-black ring-opacity-5">
<div class="menu menu-default flex flex-col w-full">
class="absolute z-50 py-2 mt-2 w-full bg-white rounded-md ring-1 ring-black ring-opacity-5 shadow-lg origin-top-right dropdowns-content max-w-56">
<div class="flex flex-col w-full menu menu-default">
<!-- Checkbox untuk All Status -->
<div class="menu-item">
<label class="menu-link flex items-center px-4 py-2 text-sm text-gray-700">
<label class="flex items-center px-4 py-2 text-sm text-gray-700 menu-link">
<input id="select-all" type="checkbox"
class="form-checkbox h-4 w-4 text-blue-600">
class="w-4 h-4 text-blue-600 form-checkbox">
<span class="ml-2">All Status</span>
</label>
</div>
<!-- Dinamis Status dari Backend -->
@foreach ($status_permohonan as $item)
<div class="menu-item">
<label class="menu-link flex items-center px-4 py-2 text-sm text-gray-700">
<label class="flex items-center px-4 py-2 text-sm text-gray-700 menu-link">
<input type="checkbox"
class="form-checkbox status-checkbox h-4 w-4 text-blue-600"
class="w-4 h-4 text-blue-600 form-checkbox status-checkbox"
value="{{ strtolower($item->name) }}">
<span class="ml-2">{{ $item->name }}</span>
</label>
@@ -105,12 +105,12 @@
</div>
</div>
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="min-w-full card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="permohonan-table" data-api-url="{{ route('activity.datatables') }}">
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border"
data-datatable-table="true">
<thead>
<tr>
@@ -158,13 +158,13 @@
</table>
</div>
<div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
class="flex-col gap-3 justify-center font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex gap-2 items-center">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<div class="flex gap-4 items-center">
<span data-datatable-info="true"></span>
<div class="pagination" data-datatable-pagination="true"></div>
</div>
@@ -291,8 +291,6 @@
};
let dataTable = new KTDataTable(element, dataTableOptions);
function highlightFreezeRows() {

View File

@@ -8,8 +8,8 @@
{{ $title }}
</h3>
<div class="flex items-center gap-2">
{!! $customlink ?? "" !!}
<div class="flex gap-2 items-center">
{!! $customlink ?? '' !!}
@if (isset($id))
@php
$parameters = isset($id) ? ['id' => $id] : [];
@@ -31,65 +31,64 @@
@endif
</div>
</div>
<div class="card-body lg:py-7.5 grid grid-cols-3">
<div class="grid grid-cols-3 card-body lg:py-7.5">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Nomor Register Permohonan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Pemohon:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }}
</span>
</div>
@if (isset($penawaran))
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Nomor Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $penawaran->code }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Nomor Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $penawaran->tujuanPenilaianKjpp->name }}
</span>
</div>
@else
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Tujan Permohonan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Nilai Plafond:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $permohonan->nilaiPlafond->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Status Bayar:
</h3>
<span
@@ -102,18 +101,18 @@
</div>
</div>
<div class="card border border-agi-100 min-w-full">
<div class="min-w-full border card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title">
Detail Debitur
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-5 lg:gap-7.5">
<div class="pb-3 card-table scrollable-x-auto">
<div class="grid grid-cols-1 gap-5 xl:grid-cols-2 lg:gap-7.5">
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<table class="table text-sm text-gray-500 align-middle">
<tr>
<td class="py-2 text-gray-600 font-normal">
<td class="py-2 font-normal text-gray-600">
Nama
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
@@ -124,7 +123,7 @@
<td class="py-3">
Email
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->email ?? '' }}
</td>
</tr>
@@ -132,24 +131,24 @@
<td class="py-3">
No Hp
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->phone ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
<td class="py-3 font-normal text-gray-600">
Alamat
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->address ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
<td class="py-3 font-normal text-gray-600">
&nbsp;
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->village->name ?? '' }},
{{ $permohonan->debiture->district->name ?? '' }},
{{ $permohonan->debiture->city->name ?? '' }},
@@ -160,9 +159,9 @@
</table>
</div>
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<table class="table text-sm text-gray-500 align-middle">
<tr>
<td class="py-3 text-gray-600 font-normal">
<td class="py-3 font-normal text-gray-600">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
@@ -170,7 +169,7 @@
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
<td class="py-3 font-normal text-gray-600">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
@@ -178,10 +177,10 @@
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
<td class="py-3 font-normal text-gray-600">
Nomor Rekening
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->nomor_rekening ?? '' }}
</td>
</tr>
@@ -189,7 +188,7 @@
<td class="py-3">
NPWP
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->npwp ?? '' }}
</td>
</tr>
@@ -201,7 +200,7 @@
<div class="card border border-agi-100 min-w-full">
<div class="min-w-full border card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title">
Data Jaminan
@@ -214,52 +213,52 @@
data-accordion-item="true" id="accordion_detail_jaminan">
<button @class(['accordion-toggle py-4 group', 'mx-8' => !isset($status)])"
data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
<span class="text-base font-medium text-gray-900">
@if (count($permohonan->documents) > 1)
Jaminan {{ $loop->index + 1 }}
@else
Jaminan
@endif
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
<i class="block text-gray-600 ki-outline ki-plus text-2sm accordion-active:hidden">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
<i class="hidden text-gray-600 ki-outline ki-minus text-2sm accordion-active:block">
</i>
</button>
<div class="accordion-content {{ count($permohonan->documents) > 1 ? 'hidden' : '' }}"
id="accordion_detail_jaminan_{{ $loop->index }}">
@if (!isset($status))
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="grid grid-cols-2 card-body lg:py-7.5">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $dokumen->pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $dokumen->jenisJaminan->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
<h3 class="font-medium text-gray-900 text-md">
Alamat Jaminan:
</h3>
<span class="text-2sm text-gray-700">
<span class="text-gray-700 text-2sm">
{{ formatAlamat($dokumen) }}
</span>
</div>
@@ -267,18 +266,18 @@
@endif
<div class="card-table scrollable-x-auto pb-3">
<div class="pb-3 card-table scrollable-x-auto">
<a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}"
class="ml-6 btn btn-dark dark:btn-light">
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
</a>
<table class="table align-middle text-sm text-gray-500">
<table class="table text-sm text-gray-500 align-middle">
@php $document = $dokumen; @endphp
@foreach ($document->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td colspan="2">
<strong class="text-2xs text-gray-600 uppercase">
<strong class="text-gray-600 uppercase text-2xs">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</strong>
</td>
@@ -286,26 +285,40 @@
@if (isset($detail->dokumen_jaminan))
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor)) ? json_decode($detail->dokumen_nomor) : ($detail->dokumen_nomor ? [$detail->dokumen_nomor] : []);
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
<span class="pl-3 text-gray-600 uppercase text-2xs">
{{ $loop->index + 1 }}. Nomor : {{ $dokumen_nomor[$index] }}
</span>
</td>
<td class="text-left">
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
@if (in_array(Auth::user()->roles[0]->name, [
'administrator',
'pemohon-eo',
'surveyor',
'senior-officer',
'EO Appraisal',
'DD Appraisal',
]))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
class="flex-none mt-2 mr-2 badge badge-sm badge-outline">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
@endif
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')">
<i class="ki-filled ki-eye mr-2"></i>Preview
<span class="mt-2 badge badge-sm badge-outline badge-warning"
onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')">
<i class="mr-2 ki-filled ki-eye"></i>Preview
</span>
</td>
</tr>
@@ -314,8 +327,8 @@
@foreach (json_decode($detail->details)[$index] as $key => $value)
<tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
- {{ str_replace("_"," ",$key) ?? "" }}
<span class="pl-3 text-gray-600 uppercase text-2xs">
- {{ str_replace('_', ' ', $key) ?? '' }}
</span>
</td>
<td class="text-left">
@@ -331,7 +344,7 @@
<tr>
<td>
<span class="text-2xs text-gray-600 uppercase pl-3">
<span class="pl-3 text-gray-600 uppercase text-2xs">
- keterangan
</span>
</td>
@@ -354,7 +367,5 @@
@include('lpj::component.lampiran-dokumen')
@include('lpj::component.history-permohonan')
@endif
@include('lpj::component.pdfviewer')

View File

@@ -1,4 +1,4 @@
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@foreach ($permohonan->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@@ -32,7 +32,7 @@
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Informasi dan pembanding
</h3>
<div class="card-tools">
@@ -47,14 +47,14 @@
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
total nilai pasar wajar
</h3>
</div>
<div class="card-body gap-5">
<div class="gap-5 card-body">
<div>
<label for="total_nilai_pasar_wajar" class="form-label">Total Nilai Pasar Wajar</label>
<div class="card-body grid gap-2.5 ">
<div class="grid gap-2.5 card-body">
@php
$labelNilai = [
@@ -86,7 +86,9 @@
$forminspeksi['tanah']['luas_tanah']['tidak sesuai'] ??
($forminspeksi['tanah']['luas_tanah']['sesuai'] ?? null);
} elseif ($item === 'apartemen-kantor') {
$luas = $forminspeksi['luas_unit']['sesuai'] ?? ($forminspeksi['luas_unit']['tidak sesuai'] ?? null);
$luas =
$forminspeksi['luas_unit']['sesuai'] ??
($forminspeksi['luas_unit']['tidak sesuai'] ?? null);
} else {
$luas = null;
}
@@ -97,17 +99,17 @@
$nilaiKey2 = 'nilai_' . $item . '_2';
@endphp
@if (isset($labelNilai[$item]))
<div class="flex grid-col-3 gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex gap-2.5 w-full grid-col-3">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="form-label max-w-56">
{{ $labelNilai[$item] }}
</label>
<input type="text" id="{{ $luasKey }}" class="input w-full"
<input type="text" id="{{ $luasKey }}" class="w-full input"
name="{{ $luasKey }}"
value="{{ old($luasKey, $lpjData[$luasKey] ?? null) }}"
oninput="calculateTotal()">
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="">X</label>
<label class="input">
<i class="">Rp</i>
@@ -117,11 +119,10 @@
oninput="calculateTotal()">
</label>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label class="input">
<i class="">Rp</i>
<input id="{{ $nilaiKey2 }}" type="text"
class="w-full currency-format"
<input id="{{ $nilaiKey2 }}" type="text" class="w-full currency-format"
name="{{ $nilaiKey2 }}"
value="{{ old($nilaiKey2, $lpjData[$nilaiKey2] ?? null) }}">
</label>
@@ -135,8 +136,8 @@
</div>
</div>
<div class="flex justify-end gap-2 ">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full grid-col-2">
<div class="flex gap-2 justify-end">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap grid-col-2">
<label class="form-label max-w-56" for="">Total Nilai</label>
<label for="province" class="input">
<i class="">Rp
@@ -151,18 +152,18 @@
</div>
<div class="tambah mb-10" style="margin-bottom: 20px;">
<div class="mb-10 tambah" style="margin-bottom: 20px;">
<button type="button" id="tambah-npw" class="btn btn-primary">
<i class="ki-filled ki-plus"></i>
Tambah NPW </button>
</div>
<div>
<label for="total_nilai_pasar_wajar" class="form-label uppercase">TOTAL NILAI
<label for="total_nilai_pasar_wajar" class="uppercase form-label">TOTAL NILAI
LIKUIDASI</label>
<div class="card-body grid gap-2.5 w-full">
<div class="flex grid-col-3 gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="grid gap-2.5 w-full card-body">
<div class="flex gap-2.5 w-full grid-col-3">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<div class="w-full">
<label class="input">
@@ -176,7 +177,7 @@
</span>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="">X</label>
<label class="input">
<i class="">Rp
@@ -188,7 +189,7 @@
</label>
</div>
<div class="grid gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label class="input">
<i class="">Rp
@@ -203,16 +204,16 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label>
<div class="w-full">
<div id="keterangan_penilai-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
<div id="keterangan_penilai-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
@if (!empty($lpjData['keterangan_penilai']) && is_array($lpjData['keterangan_penilai']))
@foreach ($lpjData['keterangan_penilai'] as $index => $item)
<div class="keterangan_penilai flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan_penilai[]" class="textarea mt-2 " placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan_penilai.$index", $item) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan_penilai textarea-group">
<textarea name="keterangan_penilai[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan_penilai.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -220,19 +221,19 @@
</div>
@endforeach
@else
<div class="keterangan_penilai flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan_penilai[]" class="textarea mt-2 " placeholder="Masukkan catatan penting" rows="10"></textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan_penilai textarea-group">
<textarea name="keterangan_penilai[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-keterangan_penilai" class="alert text-danger text-sm"></em>
<em id="error-keterangan_penilai" class="text-sm alert text-danger"></em>
</div>
@endif
</div>
<button type="button"
onclick="addClonableItem('keterangan_penilai-container', 'keterangan_penilai')"
class="btn btn-primary btn-sm mt-5 ">
class="mt-5 btn btn-primary btn-sm">
<i class="ki-outline ki-plus"></i>
</button>
</div>
@@ -256,21 +257,21 @@
const newNPWRow = document.createElement('div');
newNPWRow.className = 'flex grid-col-3 gap-2.5 w-full npw-row';
newNPWRow.innerHTML = `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<input type="text"
id="name_npw_${npwCounter}"
class="input w-full"
class="w-full input"
name="name_npw_${npwCounter}"
placeholder="Nama NPW">
<input type="text"
id="ls_npw_${npwCounter}"
class="input w-full "
class="w-full input"
name="luas_npw_${npwCounter}"
placeholder="Luas NPW"
oninput="calculateTotal()">
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="">X</label>
<label class="input">
<i class="">Rp
@@ -283,13 +284,13 @@
oninput="calculateTotal()">
</label>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label class="input">
<i class="">Rp
</i>
<input type="text"
id="nilai_npw_${npwCounter}_2"
class="input w-full currency-format"
class="w-full input currency-format"
name="nilai_npw_${npwCounter}_2"
placeholder="Total Nilai"
readonly>
@@ -333,16 +334,16 @@
newNPWRow.className = 'flex grid-col-3 gap-2.5 w-full npw-row mb-3';
newNPWRow.innerHTML = `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<input type="text"
id="name_npw_${npwCounter}"
class="input w-full"
class="w-full input"
name="name_npw_${npwCounter}"
placeholder="Nama NPW"
value="${npw.name || ''}">
<input type="text"
id="ls_npw_${npwCounter}"
class="input w-full currency-format"
class="w-full input currency-format"
name="luas_npw_${npwCounter}"
placeholder="Luas NPW"
value="${npw.luas || ''}"
@@ -350,7 +351,7 @@
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="">X</label>
<label class="input">
<i class="">Rp
@@ -364,7 +365,7 @@
oninput="calculateTotal()">
</label>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label class="input">
<i class="">Rp
</i>
@@ -377,7 +378,7 @@
readonly>
</label>
<div>
<button type="button" class="btn btn-danger remove-npw h-full">
<button type="button" class="h-full btn btn-danger remove-npw">
<i class="ki-filled ki-minus"></i>
</button>
</div>
@@ -620,4 +621,24 @@
input.value = formattedValue;
}
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log("Dialog loading otomatis ditutup.");
}
});
}
function hideLoadingSwal() {
Swal.close();
}
</script>

View File

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

View File

@@ -246,27 +246,34 @@
</a>`;
}
// Logika untuk role pemohon-ao
@if (auth()->user()->hasRole('pemohon-ao'))
if (data.nilai_liquidasi == null) {
laporanButton = `
<a href="laporan/${data.id}" class="btn btn-sm btn-primary">
Laporan
</a>`;
} else if ((data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar") &&
data.nilai_liquidasi > 0) {
laporanButton = generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID,
data.penilai.type_penilai == 'resume' && !data.penilai.resume ? type :
typePenilaian);
}
@else
// Logika untuk role selain pemohon-ao
if (data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar") {
laporanButton = generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID,
data.penilai.type_penilai == 'resume' && !data.penilai.resume ? type :
typePenilaian);
}
@endif
if ((data.status_bayar == "sudah_bayar" || data.status_bayar == "tidak_bayar") && data
.nilai_liquidasi > 0) {
if (data.penilai.type_penilai == 'resume' && !data.penilai.resume) {
laporanButton = `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${type}" class="btn btn-sm btn-primary">
function generateLaporanButton(data, dokumenID, inspeksiId, jenisJaminanID, typeParam) {
return `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${typeParam}" class="btn btn-sm btn-primary">
Laporan
</a>`;
} else {
laporanButton = `
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0&type=${typePenilaian}" class="btn btn-sm btn-primary">
Laporan
</a>`;
}
}

View File

@@ -50,23 +50,23 @@
<label class="form-label">Jenis Agunan</label>
<div class="bg-gray-100 input">{{ $laporanAdminKredit->jenis_agunan }}</div>
</div>
<div class="form-group">
<label class="form-label">Nama Pemilik</label>
<div class="bg-gray-100 input">{{ $laporanAdminKredit->nama_pemilik }}</div>
</div>
<div class="form-group">
<label class="form-label">Bukti Kepemilikan</label>
<div class="bg-gray-100 input">{{ $laporanAdminKredit->bukti_kepemilikan }}</div>
<div class="textarea bg-gray-100 h-auto min-h-[100px] p-3">
{{ $laporanAdminKredit->bukti_kepemilikan }}</div>
</div>
<div class="form-group">
<label class="form-label">Alamat Agunan</label>
<div class="textarea bg-gray-100 h-auto min-h-[70px] p-3">
<div class="textarea bg-gray-100 h-auto min-h-[100px] p-3">
{{ $laporanAdminKredit->alamat_agunan }}</div>
</div>
<div class="form-group">
<label class="form-label">Nama Pemilik</label>
<div class="bg-gray-100 input">{{ $laporanAdminKredit->nama_pemilik }}</div>
</div>
<div class="form-group">
<label class="form-label">Tanggal Kunjungan</label>
<div class="bg-gray-100 input">
@@ -89,6 +89,35 @@
<label class="form-label">Nama Penilai</label>
<div class="bg-gray-100 input">{{ $laporanAdminKredit->nama_penilai }}</div>
</div>
<div class="form-group">
<label for="kolektibilitas" class="form-label">Kolektibilitas</label>
<select class="input" id="kolektibilitas" name="kolektibilitas">
<option value="">Pilih Kolektibilitas</option>
<option value="1"
{{ old('kolektibilitas', $laporanAdminKredit->kolektibilitas ?? '') == '1' ? 'selected' : '' }}>
Kolektibilitas 1 - Lancar</option>
<option value="2"
{{ old('kolektibilitas', $laporanAdminKredit->kolektibilitas ?? '') == '2' ? 'selected' : '' }}>
Kolektibilitas 2 - Dalam Perhatian Khusus</option>
<option value="3"
{{ old('kolektibilitas', $laporanAdminKredit->kolektibilitas ?? '') == '3' ? 'selected' : '' }}>
Kolektibilitas 3 - Kurang Lancar</option>
<option value="4"
{{ old('kolektibilitas', $laporanAdminKredit->kolektibilitas ?? '') == '4' ? 'selected' : '' }}>
Kolektibilitas 4 - Diragukan</option>
<option value="5"
{{ old('kolektibilitas', $laporanAdminKredit->kolektibilitas ?? '') == '5' ? 'selected' : '' }}>
Kolektibilitas 5 - Macet</option>
</select>
</div>
<div class="form-group">
<label for="keterangan" class="form-label">Keterangan</label>
<input class="textarea" id="input" name="keterangan"
placeholder="Masukkan keterangan tambahan..."
value={{ old('keterangan', $laporanAdminKredit->keterangan ?? '') }}>
</div>
</div>
<div class="flex gap-3 justify-end">

View File

@@ -97,6 +97,14 @@
<span class="sort"> <span class="sort-label"> Nama Penilai </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="kolektibilitas">
<span class="sort"> <span class="sort-label"> Kolektibilitas </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[200px]" data-datatable-column="keterangan">
<span class="sort"> <span class="sort-label"> Keterangan </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[100px]" data-datatable-column="actions">
<span class="sort"> <span class="sort-label"> Actions </span>
<span class="sort-icon"> </span> </span>
@@ -201,11 +209,24 @@
nama_penilai: {
title: 'Nama Penilai',
},
kolektibilitas: {
title: 'Kolektibilitas',
},
keterangan: {
title: 'Keterangan',
render: (item, data) => {
// Truncate keterangan if too long
if (data.keterangan && data.keterangan.length > 50) {
return data.keterangan.substring(0, 50) + '...';
}
return data.keterangan || '-';
},
},
actions: {
title: 'Action',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a href="laporan-admin-kredit/${data.id}/edit" class="btn btn-sm btn-outline btn-info">
<a href="admin-kredit/laporan/${data.id}/edit" class="btn btn-sm btn-outline btn-info">
<i class="ki-filled ki-pencil"></i>
</a>
</div>`;

View File

@@ -195,7 +195,7 @@
debitur_id: {
title: 'Debitur',
render: (item, data) => {
return `${data.debiture.name}`;
return `${data.debiture?.name}`;
},
},
status_bayar: {

View File

@@ -79,7 +79,7 @@
@if (!empty($forminspeksi['fakta']['kondisi_lingkungan']))
<tr>
<td width="25%" style="vertical-align: top;">Kondisi Lingkungan</td>
<td width="25%" style="vertical-align: top;">Kondisi Lain Terkait Lingkungan</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@foreach ($forminspeksi['fakta']['kondisi_lingkungan'] ?? [] as $kondisi)
@@ -88,9 +88,20 @@
</td>
</tr>
@endif
@if (!empty($forminspeksi['fakta']['kondisi_lingkungan']))
<tr>
<td width="25%" style="vertical-align: top;">Kondisi Lain Terkait Bangunan</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">
@foreach ($forminspeksi['fakta']['kondisi_lain_bangunan'] ?? [] as $kondisi)
{!! nl2br(e($kondisi)) !!}
@endforeach
</td>
</tr>
@endif
@if (!empty($forminspeksi['fakta']['informasi_dokument']))
<tr>
<td width="25%" style="vertical-align: top;">Informasi Lain terkait
<td width="25%" style="vertical-align: top;">Informasi Lain Terkait
Dokumen</td>
<td width="1%" style="vertical-align: top;">:</td>
<td style="vertical-align: top;">

View File

@@ -5,7 +5,7 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@php
$senior_officer = null;
$jenisJaminan = null;
@@ -69,13 +69,13 @@
@endphp
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
CALL Report
</h3>
@php
use Illuminate\Support\Facades\Route;
@endphp
<div class="flex items-center gap-2">
<div class="flex gap-2 items-center">
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
Route::currentRouteName('otorisator.show'))
@@ -91,42 +91,42 @@
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Kepada</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="kepada" class="input w-full" placeholder="Masukkan..."
<input type="text" name="kepada" class="w-full input" placeholder="Masukkan..."
value="{{ $callReport['kepada'] ?? old('kepada') }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Dari</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="dari" class="input w-full" placeholder="Masukkan..."
<input type="text" name="dari" class="w-full input" placeholder="Masukkan..."
value="{{ $callReport['dari'] ?? ($permohonan->branch->name ?? old('dari')) }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Laporan</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="nomor_laporan" class="input w-full cursor-not-allowed"
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="nomor_laporan" class="w-full cursor-not-allowed input"
placeholder="Masukkan..." value="{{ $nomorLaporan ?? '' }}" @readonly(true)>
</div>
</div>
{{-- 250109828129/ --}}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal" class="input w-full" placeholder="Masukkan..."
<input type="date" name="tanggal" class="w-full input" placeholder="Masukkan..."
value="{{ $callReport['tanggal'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Perihal</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="perihal" class="input w-full" placeholder="Masukkan..."
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="perihal" class="w-full input" placeholder="Masukkan..."
value="{{ $callReport['perihal'] ?? '' }}">
</div>
</div>
@@ -135,9 +135,9 @@
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Menindak lanjuti permintaan <b>
<h1 class="font-medium text-gray-900 uppercase text-md">Menindak lanjuti permintaan <b>
{{ $permohonan->tujuanPenilaian->name ?? '' }}</b>, BAG CABang
<b>{{ $permohonan->branch->name }}</b>
disampaikan hal sebagai berikut:
@@ -145,45 +145,45 @@
</div>
<div class="card-body">
<div class="grid gap-5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<div class="grid gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="nama_debiture" class="form-label max-w-56">Nama Debitur</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nama_debiture" name="nama_debiture"
class="input w-full cursor-not-allowed" placeholder="Nama Debiture"
class="w-full cursor-not-allowed input" placeholder="Nama Debiture"
value="{{ $permohonan->debiture->name ?? old('nama_debiture') }}"
@readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="kjjp" class="form-label max-w-56">KJPP</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="kjjp" name="kjjp"
class="input w-full cursor-not-allowed" placeholder="Masukkan kjjp"
class="w-full cursor-not-allowed input" placeholder="Masukkan kjjp"
value="{{ preg_replace('/^K\\d+ - /', '', $permohonan->penawaran->nama_kjpp_sebelumnya ?? old('kjjp')) }}
"
@readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Jenis Aset</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="jenis_asset" name="jenis_asset"
class="input w-full cursor-not-allowed" placeholder="Masukkan jenis_asset"
class="w-full cursor-not-allowed input" placeholder="Masukkan jenis_asset"
value="{{ $jenisJaminan ?? old('jenis_asset') }}" @readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="penilai" class="form-label max-w-56">Tanggal Penilaian </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="datetime" id="tanggal_penilaian" name="tanggal_penilaian"
class="input w-full cursor-not-allowed" placeholder="Masukkan Tanggal Penilai"
class="w-full cursor-not-allowed input" placeholder="Masukkan Tanggal Penilai"
value="{{ $tanggalPenilaian ?? old('penilai') }}" @readonly(true)>
</div>
</div>
@@ -198,43 +198,43 @@
</div>
</div>
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">lokasi objek
<h1 class="font-medium text-gray-900 uppercase text-md">lokasi objek
</h1>
</div>
<div class="card-body grid gap-2.5 w-full">
<div class="grid gap-2.5 w-full card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province" class="form-label max-w-56">Provinsi</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="province" class="input w-full cursor-not-allowed" readonly
<input type="text" id="province" class="w-full cursor-not-allowed input" readonly
value="{{ isset($permohonan->debiture->province) ? $permohonan->debiture->province->name : '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="city" class="form-label max-w-56">Kabupaten/Kota</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="city" class="input w-full cursor-not-allowed" readonly
<input type="text" id="city" class="w-full cursor-not-allowed input" readonly
value="{{ isset($permohonan->debiture->city) ? $permohonan->debiture->city->name : '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="district" class="form-label max-w-56">Kecamatan</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="district" class="input w-full cursor-not-allowed" readonly
<input type="text" id="district" class="w-full cursor-not-allowed input" readonly
value="{{ isset($permohonan->debiture->district) ? $permohonan->debiture->district->name : '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="village" class="form-label max-w-56">Desa/Kelurahan</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="village" class="input w-full cursor-not-allowed" readonly
<input type="text" id="village" class="w-full cursor-not-allowed input" readonly
value="{{ isset($permohonan->debiture->village) ? $permohonan->debiture->village->name : '' }}">
</div>
</div>
@@ -242,9 +242,9 @@
</div>
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Dokument</h1>
<h1 class="font-medium text-gray-900 uppercase text-md">Dokument</h1>
</div>
<div class="card-body">
@@ -252,79 +252,85 @@
</div>
</div>
<div class="w-full grid grid-cols-1 lg:grid-cols-1 gap-4">
<div class="grid grid-cols-1 gap-4 w-full lg:grid-cols-1">
<!-- Bagian Nilai KJPP -->
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Nilai KJPP</h1>
<h1 class="font-medium text-gray-900 uppercase text-md">Nilai KJPP</h1>
</div>
<div class="card-body grid gap-5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="grid gap-5 w-full card-body">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="lelang-1" class="form-label max-w-56">Lelang ke </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="lelang-1" name="lelang_kjpp" class="input w-full"
<input type="text" id="lelang-1" name="lelang_kjpp" class="w-full input"
placeholder="Masukkan Lelang" value="{{ $callReport['lelang_kjpp'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="nilai-pasar-1" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nilai-pasar-1" name="nilai_pasar_kjpp"
class="input w-full nilai-pasar currency-format" placeholder="Masukkan likuidasi" value="{{ $callReport['nilai_pasar_kjpp'] ?? '' }}">
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi"
value="{{ $callReport['nilai_pasar_kjpp'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="likuidasi-1" class="form-label max-w-56">Nilai Likuidasi(%)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="likuidasi-1" name="persentase_likuidasi_kjpp" class="input w-full likuidasi"
placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)"
data-group="1" value="{{ $callReport['persentase_likuidasi_kjpp'] ?? '' }}">
<input type="text" id="likuidasi-1" name="persentase_likuidasi_kjpp"
class="w-full input likuidasi" placeholder="Masukkan likuidasi dalam bentuk persen"
onkeyup="calculateTotal(this)" data-group="1"
value="{{ $callReport['persentase_likuidasi_kjpp'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="total-likuidasi-1" class="form-label max-w-56">Total Nilai Likuidasi (NL)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="total-likuidasi-1" name="hasil_nilai_likuidasi_kjpp"
class="input w-full total-likuidasi currency-format" placeholder="Hasil perhitungan" value="{{ $callReport['hasil_nilai_likuidasi_kjpp'] ?? '' }}">
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan"
value="{{ $callReport['hasil_nilai_likuidasi_kjpp'] ?? '' }}">
</div>
</div>
</div>
</div>
<!-- Bagian Nilai Internal -->
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md hidden">
<div class="hidden w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Nilai Internal</h1>
<h1 class="font-medium text-gray-900 uppercase text-md">Nilai Internal</h1>
</div>
<div class="card-body grid gap-5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="grid gap-5 w-full card-body">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="lelang-2" class="form-label max-w-56">Lelang ke </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="lelang-2" name="lelang_internal" class="input w-full"
<input type="text" id="lelang-2" name="lelang_internal" class="w-full input"
placeholder="Masukkan Lelang" value="{{ $callReport['lelang_internal'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="nilai-pasar-2" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nilai-pasar-2" name="nilai_pasar_internal"
class="input w-full nilai-pasar currency-format" placeholder="Masukkan likuidasi" value="{{ $callReport['nilai_pasar_internal'] ?? '' }}">
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi"
value="{{ $callReport['nilai_pasar_internal'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="likuidasi-2" class="form-label max-w-56">Nilai Likuidasi(%)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="likuidasi-2" name="persentase_likuidasi_internal" class="input w-full likuidasi"
placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)"
data-group="2" value="{{ $callReport['persentase_likuidasi_internal'] ?? '' }}">
<input type="text" id="likuidasi-2" name="persentase_likuidasi_internal"
class="w-full input likuidasi" placeholder="Masukkan likuidasi dalam bentuk persen"
onkeyup="calculateTotal(this)" data-group="2"
value="{{ $callReport['persentase_likuidasi_internal'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="total-likuidasi-2" class="form-label max-w-56">Total Nilai Likuidasi (NL)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="total-likuidasi-2" name="hasil_nilai_likuidasi_internal"
class="input w-full total-likuidasi currency-format" placeholder="Hasil perhitungan" value="{{ $callReport['hasil_nilai_likuidasi_internal'] ?? '' }}">
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan"
value="{{ $callReport['hasil_nilai_likuidasi_internal'] ?? '' }}">
</div>
</div>
</div>
@@ -332,47 +338,47 @@
</div>
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Penilaian ke lokasi objek telah dilakukan oleh
<h1 class="font-medium text-gray-900 uppercase text-md">Penilaian ke lokasi objek telah dilakukan oleh
:
</h1>
</div>
<div class="card-body">
<div class="grid gap-5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<div class="grid gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="staf" class="form-label max-w-56">Staf Subdit Appraisal </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="staf" name="staf"
class="input w-full cursor-not-allowed" placeholder="Masukkan Nama Staff"
class="w-full cursor-not-allowed input" placeholder="Masukkan Nama Staff"
value="{{ $penilai->userPenilaiTeam->name ?? '' }}" @readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="penilai" class="form-label max-w-56">Pihak KJPP</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="penilai" name="pihak_kjjpp" class="input w-full "
<input type="text" id="penilai" name="pihak_kjjpp" class="w-full input"
value="{{ $callReport['pihak_kjjpp'] ?? ($forminspeksi['signature']['kjjp']['name'] ?? '') }}"
placeholder="Masukkan Nama KJPP">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="pihak_bag" class="form-label max-w-56">Pihak BAGI Cab </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="pihak_bag" name="pihak_bag"
class="input w-full cursor-not-allowed" placeholder="Masukkan Pihak Bag"
class="w-full cursor-not-allowed input" placeholder="Masukkan Pihak Bag"
value="{{ $permohonan->user->name ?? '' }} || {{ $permohonan->branch->name }}"
@readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="debitur_perwakilan" class="form-label max-w-56">Debitur/perwakilan debitur
</label>
@@ -380,14 +386,14 @@
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $item)
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="debitur_perwakilan" name="debitur_perwakilan"
class="input w-full cursor-not-allowed" placeholder="Masukkan Penilai"
class="w-full cursor-not-allowed input" placeholder="Masukkan Penilai"
value="{{ $item ?? '' }}" @readonly(true)>
</div>
@endforeach
@else
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="debitur_perwakilan" name="debitur_perwakilan"
class="input w-full cursor-not-allowed" placeholder="Masukkan Penilai"
class="w-full cursor-not-allowed input" placeholder="Masukkan Penilai"
value="{{ $permohonan->debiture->name ?? '' }}" @readonly(true)>
</div>
@endif
@@ -401,18 +407,18 @@
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Informasi yang didapatkan sebagai berikut :
</h3>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Faktor Positif</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_positif']))
@foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif)
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old("fakta_positif.$index", $positif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -420,28 +426,28 @@
</div>
@endforeach
@else
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_positif textarea-group">
<textarea class="mt-2 textarea" name="fakta_positif[]" rows="10">{{ old('fakta_positif.0', '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
<i class="ki-outline ki-plus"></i>
</button>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Faktor Negatif</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($forminspeksi['fakta']['fakta_negatif']))
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif)
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="mt-2 textarea" name="fakta_negatif[]" rows="10">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -449,16 +455,16 @@
</div>
@endforeach
@else
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="mt-2 textarea" name="fakta_negatif[]" rows="10">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
<em id="error-fakta_negatif" class="text-sm alert text-danger"></em>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
<i class="ki-outline ki-plus"></i>
</button>
@@ -466,16 +472,16 @@
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 " style="margin-top: 20px ">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px ">
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label>
<div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
<div id="keterangan-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
@if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $index => $item)
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -483,18 +489,18 @@
</div>
@endforeach
@else
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10"></textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<em id="error-keterangan" class="text-sm alert text-danger"></em>
</div>
@endif
</div>
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
class="btn btn-primary btn-sm mt-5 ">
class="mt-5 btn btn-primary btn-sm">
<i class="ki-outline ki-plus"></i>
</button>
</div>
@@ -503,9 +509,10 @@
</div>
</div>
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}>
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
@@ -564,19 +571,25 @@
jsonData.lelang_kjpp = document.querySelector('input[name="lelang_kjpp"]')?.value.trim() || "";
// Ambil nilai lainnya
jsonData.nilai_pasar_kjpp = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_kjpp"]')?.value.trim() ||
jsonData.nilai_pasar_kjpp = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_kjpp"]')?.value
.trim() ||
"");
jsonData.persentase_likuidasi_kjpp = cleanCurrencyValue(document.querySelector('input[name="persentase_likuidasi_kjpp"]')?.value
jsonData.persentase_likuidasi_kjpp = cleanCurrencyValue(document.querySelector(
'input[name="persentase_likuidasi_kjpp"]')?.value
.trim() || "");
jsonData.hasil_nilai_likuidasi_kjpp = cleanCurrencyValue(document.querySelector('input[name="hasil_nilai_likuidasi_kjpp"]')
jsonData.hasil_nilai_likuidasi_kjpp = cleanCurrencyValue(document.querySelector(
'input[name="hasil_nilai_likuidasi_kjpp"]')
?.value.trim() || "");
jsonData.lelang_internal = document.querySelector('input[name="lelang_internal"]')?.value.trim() || "";
jsonData.nilai_pasar_internal = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_internal"]')?.value.trim() ||
jsonData.nilai_pasar_internal = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_internal"]')
?.value.trim() ||
"");
jsonData.persentase_likuidasi_internal = cleanCurrencyValue(document.querySelector('input[name="persentase_likuidasi_internal"]')?.value
jsonData.persentase_likuidasi_internal = cleanCurrencyValue(document.querySelector(
'input[name="persentase_likuidasi_internal"]')?.value
.trim() || "");
jsonData.hasil_nilai_likuidasi_internal = cleanCurrencyValue(document.querySelector('input[name="hasil_nilai_likuidasi_internal"]')
jsonData.hasil_nilai_likuidasi_internal = cleanCurrencyValue(document.querySelector(
'input[name="hasil_nilai_likuidasi_internal"]')
?.value.trim() || "");
return jsonData;

View File

@@ -6,14 +6,14 @@
@section('content')
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form id="form-memo" method="POST" class="w-full grid gap-5">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<form id="form-memo" method="POST" class="grid gap-5 w-full">
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Memo Antar Kantor
</h3>
<div class="flex items-center gap-2">
<div class="flex gap-2 items-center">
@php
use Illuminate\Support\Facades\Route;
@endphp
@@ -30,51 +30,51 @@
@endif
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Kepada</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="kepada" class="input w-full" placeholder="Masukkan..."
<input type="text" name="kepada" class="w-full input" placeholder="Masukkan..."
value=" {{ $memo->kepada ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Dari</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="dari" class="input w-full" placeholder="Masukkan..."
<input type="text" name="dari" class="w-full input" placeholder="Masukkan..."
value="{{ $memo->dari ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor Memo</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="nomor_memo" class="input w-full" placeholder="Masukkan..."
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="nomor_memo" class="w-full input" placeholder="Masukkan..."
value="{{ $nomorLaporan ?? '' }}" @readonly(true)>
</div>
</div>
{{-- 250109828129/ --}}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal" class="input w-full" placeholder="Masukkan..."
<input type="date" name="tanggal" class="w-full input" placeholder="Masukkan..."
value="{{ $memo->tanggal ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Perihal</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="perihal" class="input w-full" placeholder="Masukkan..."
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="perihal" class="w-full input" placeholder="Masukkan..."
value="{{ $memo->perihal ?? '' }}">
</div>
</div>
</div>
</div>
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
<div class="w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h1 class="text-md font-medium text-gray-900 uppercase">Sehubungan dengan permintaan BAGI Cabang
<h1 class="font-medium text-gray-900 uppercase text-md">Sehubungan dengan permintaan BAGI Cabang
<b>{{ $permohonan->branch->name }}</b>, untuk dilakukan survey untuk penilaian baru/review, calon
debitur/debitur an
<b>{{ $permohonan->debiture->name }}</b>,dengan deskripsi sebagai berikut :
@@ -82,12 +82,12 @@
</div>
<div class="card-body">
<div class="grid gap-5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Jenis Aset</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="jenis_asset_tidak_sesuai" class="input w-full" name="jenis_asset_tidak_sesuai">
<select id="jenis_asset_tidak_sesuai" class="w-full input" name="jenis_asset_tidak_sesuai">
<option value="">Select Jenis asset</option>
@foreach ($basicData['jenisJaminan'] as $item)
<option value="{{ $item->name }}"
@@ -99,21 +99,21 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<div class="grid gap-2.5 w-full">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="lokasi" class="form-label max-w-56">Lokasi</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="lokasi" name="lokasi" class="input w-full"
<input type="text" id="lokasi" name="lokasi" class="w-full input"
placeholder="Masukkan Jl."
value="{{ $memo->lokasi->lokasi ?? old('lokasi') }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="province_code" class="form-label max-w-56">Provinsi</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="province_code" name="province_code" class="input w-full">
<select id="province_code" name="province_code" class="w-full input">
<option value="">Pilih Provinsi</option>
@foreach ($provinces as $item)
<option value="{{ $item->code }}"
@@ -124,10 +124,10 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="city_code" class="form-label max-w-56">Kota/Kabupaten</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="city_code" name="city_code" class="select w-full">
<select id="city_code" name="city_code" class="w-full select">
<option value="">Pilih Kota/Kabupaten</option>
@if (isset($cities))
@foreach ($cities as $item)
@@ -140,10 +140,10 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="district_code" class="form-label max-w-56">Kecamatan</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="district_code" name="district_code" class="select w-full">
<select id="district_code" name="district_code" class="w-full select">
<option value="">Pilih Kecamatan</option>
@if (isset($districts))
@foreach ($districts as $item)
@@ -156,10 +156,10 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="village_code" class="form-label max-w-56">Kelurahan</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="village_code" name="village_code" class="select w-full">
<select id="village_code" name="village_code" class="w-full select">
<option value="">Pilih Kelurahan</option>
@if (isset($villages))
@foreach ($villages as $item)
@@ -172,29 +172,29 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="address" class="form-label max-w-56">Address</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="address" name="address" class="input w-full"
<input type="text" id="address" name="address" class="w-full input"
placeholder="Masukkan Jl."
value="{{ $memo->lokasi->address ?? old('address') }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="tanggal_survey" class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date-time" id="tanggal_survey" name="tanggal_survey"
class="input w-full" placeholder="Masukkan Tanggal Survey"
class="w-full input" placeholder="Masukkan Tanggal Survey"
value="{{ $permohonan->penilaian->updated_at ?? old('tanggal_survey') }}"
@readonly(true)>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="penilai" class="form-label max-w-56">Penilai</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="penilai" name="penilai" class="input w-full"
<input type="text" id="penilai" name="penilai" class="w-full input"
placeholder="Masukkan Penilai"
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
</div>
@@ -211,30 +211,30 @@
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Dokumen
</h3>
</div>
<div class="card-body grid gap-5">
<div class="grid gap-5 card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Terlampir</label>
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
<div class="terlampir flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="terlampir[]" rows="3">{{ $memo->terlampir[0] ?? old('terlampir', '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full terlampir textarea-group">
<textarea class="mt-2 textarea" name="terlampir[]" rows="3">{{ $memo->terlampir[0] ?? old('terlampir', '') }}</textarea>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Berdasarkan hasil survey dapat disampaikan sbb:</label>
<div id="hasil_survey" class="flex flex-wrap items-baseline w-full">
@if (!empty($memo->hasil_survey))
@foreach ($memo->hasil_survey as $index => $positif)
<div class="hasil_survey flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="hasil_survey[]" rows="3">{{ old("hasil_survey.$index", $positif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full hasil_survey textarea-group">
<textarea class="mt-2 textarea" name="hasil_survey[]" rows="3">{{ old("hasil_survey.$index", $positif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -242,15 +242,15 @@
</div>
@endforeach
@else
<div class="hasil_survey flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="hasil_survey[]" rows="3">{{ old('hasil_survey.0', '') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full hasil_survey textarea-group">
<textarea class="mt-2 textarea" name="hasil_survey[]" rows="3">{{ old('hasil_survey.0', '') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('hasil_survey', 'hasil_survey')">
<i class="ki-outline ki-plus"></i>
</button>
@@ -258,13 +258,13 @@
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Kesimpulan dan saran</label>
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
@if (!empty($memo->kesimpulan_saran))
@foreach ($memo->kesimpulan_saran as $index => $negatif)
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="kesimpulan_saran[]" rows="3">{{ old("kesimpulan_saran.$index", $negatif) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full fakta_negatif textarea-group">
<textarea class="mt-2 textarea" name="kesimpulan_saran[]" rows="3">{{ old("kesimpulan_saran.$index", $negatif) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -272,16 +272,16 @@
</div>
@endforeach
@else
<div class="kesimpulan_saran flex items-center gap-2 mt-2 textarea-group w-full">
<textarea class="textarea mt-2" name="kesimpulan_saran[]" rows="3">{{ old('kesimpulan_saran.0') }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full kesimpulan_saran textarea-group">
<textarea class="mt-2 textarea" name="kesimpulan_saran[]" rows="3">{{ old('kesimpulan_saran.0') }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-kesimpulan_saran" class="alert text-danger text-sm"></em>
<em id="error-kesimpulan_saran" class="text-sm alert text-danger"></em>
</div>
@endif
<button type="button" class="btn btn-primary btn-sm mt-5"
<button type="button" class="mt-5 btn btn-primary btn-sm"
onclick="addClonableItem('fakta-negatif-container', 'kesimpulan_saran')">
<i class="ki-outline ki-plus"></i>
</button>
@@ -290,19 +290,19 @@
</div>
</div>
<div class="card border border-agi-100 rounded-lg shadow-md">
<div class="rounded-lg border shadow-md card border-agi-100">
<div class="card-body">
<div class=" py-4 flex items-center justify-between">
<h1 class="text-md font-medium text-gray-900">Upload Foto</h1>
<div class="flex justify-between items-center py-4">
<h1 class="font-medium text-gray-900 text-md">Upload Foto</h1>
</div>
<div class="dropzone" id="dropzone-upload">
<div class="dz-message needsclick" data-foto-type="upload_foto">
<i class="ki-duotone ki-file-up text-primary text-3xl"><span class="path1"></span><span
<i class="text-3xl ki-duotone ki-file-up text-primary"><span class="path1"></span><span
class="path2"></span></i>
<div class="ms-4">
<h3 class="fs-5 fw-bold text-gray-900 mb-1">Drop files here or click to upload.</h3>
<span class="fs-7 fw-semibold text-gray-500">Upload up to 10 files</span>
<h3 class="mb-1 text-gray-900 fs-5 fw-bold">Drop files here or click to upload.</h3>
<span class="text-gray-500 fs-7 fw-semibold">Upload up to 10 files</span>
</div>
</div>
</div>
@@ -314,7 +314,7 @@
{{-- @include('lpj::penilai.components.foto-lampiran') --}}
<div class="flex card-footer justify-end gap-5">
<div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<a class="btn btn-primary" onclick="saveMemo()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
@@ -461,6 +461,7 @@
}
});
}
function saveMemo() {
const form = document.getElementById('form-memo');
const formData = new FormData(form);

View File

@@ -5,7 +5,7 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
@csrf
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi }}">
@@ -16,48 +16,48 @@
@include('lpj::assetsku.includenya')
<div class="card">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
RAP
</h3>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Kepada</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="kepada" class="input w-full" placeholder="Masukkan..."
<input type="text" name="kepada" class="w-full input" placeholder="Masukkan..."
value=" {{ $rap['kepada'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Dari</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="dari" class="input w-full" placeholder="Masukkan..."
<input type="text" name="dari" class="w-full input" placeholder="Masukkan..."
value="{{ $rap['dari'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nomor RAP</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="nomor_rap" class="input w-full" placeholder="Masukkan..."
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="nomor_rap" class="w-full input" placeholder="Masukkan..."
value="{{ $nomorLaporan ?? '' }}" @readonly(true)>
</div>
</div>
{{-- 250109828129/ --}}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="date" name="tanggal" class="input w-full" placeholder="Masukkan..."
<input type="date" name="tanggal" class="w-full input" placeholder="Masukkan..."
value="{{ $rap['tanggal'] ?? '' }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Perihal</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="perihal" class="input w-full" placeholder="Masukkan..."
<div class="flex flex-wrap w-full items-base line">
<input type="text" name="perihal" class="w-full input" placeholder="Masukkan..."
value="{{ $rap['perihal'] ?? '' }}">
</div>
</div>
@@ -65,7 +65,7 @@
</div>
@include('lpj::surveyor.components.header')
@include('lpj::surveyor.components.rap')
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
@@ -107,7 +107,8 @@
const addressInput = document.getElementById('address');
if (status === 'sesuai') {
addressInput.value = "{{ $dokumen->address ?? '' }}";
addressInput.value = {!! json_encode($dokumen->address ?? '') !!};
inputs.forEach(element => {
if (element.tagName === 'INPUT') {
element.setAttribute('readonly', true);

View File

@@ -5,12 +5,12 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="min-w-full border card border-agi-100 card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="penilai-table" data-api-url="{{ route('penilai.dataForTables') }}">
<div class="card-header bg-agi-50 py-5 flex-wrap">
<div class="flex-wrap py-5 card-header bg-agi-50">
<h3 class="card-title">
Penilai
</h3>
@@ -29,7 +29,7 @@
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border"
data-datatable-table="true">
<thead>
<tr>
@@ -82,13 +82,13 @@
</table>
</div>
<div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
class="flex-col gap-3 justify-center font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex gap-2 items-center">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<div class="flex gap-4 items-center">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
@@ -218,9 +218,6 @@
}
}
return formatDate(waktu_penilaian);
},
@@ -228,7 +225,11 @@
status: {
title: 'Status',
render: (item, data) => {
return `<span class="badge badge-sm badge-default uppercase flex justify-center">${data.status.replace(/-/g, ' ')}</span>`;
if (data.penawaran) {
return `<span class="flex justify-center uppercase badge badge-sm badge-default">${data.penawaran?.status.replace(/-/g, ' ')}</span>`;
}
//return `<span class="flex justify-center uppercase badge badge-sm badge-default">${data.status.replace(/-/g, ' ')}</span>`;
},
},
actions: {
@@ -237,9 +238,10 @@
if (data.status === 'survey-completed' || data.status === 'proses-laporan' || data
.status === 'paparan' || data.status === 'proses-paparan' || data.status ===
'paparan' || data.status == 'revisi-laporan' || data.status === 'done' || data
.status === 'revisi-paparan' || data.status === 'unfreeze-sla' || data.status === 'reject-freeze') {
.status === 'revisi-paparan' || data.status === 'unfreeze-sla' || data.status ===
'reject-freeze' || data.penawaran?.status === 'registrasi-final') {
return `
<div class="flex flex-nowrap justify-center gap-1.5">
<div class="flex flex-nowrap gap-1.5 justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="penilai/${data.id}/show">
<i class="ki-outline ki-eye"></i>
</a>
@@ -258,7 +260,7 @@
</a>
</div>`;
} else if (data.status === 'freeze') {
return ` <div class="flex flex-nowrap justify-center gap-1.5">
return ` <div class="flex flex-nowrap gap-1.5 justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="penilai/${data.id}/show">
<i class="ki-outline ki-eye"></i>
</a>
@@ -348,9 +350,13 @@
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('Dialog loading otomatis ditutup.');
console.log("Dialog loading otomatis ditutup.");
}
});
}
function hideLoadingSwal() {
Swal.close();
}
</script>
@endpush

View File

@@ -6,96 +6,95 @@
@section('content')
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card border border-agi-100 pb-2.5">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<div class="pb-2.5 border card border-agi-100">
<div class="card-header light:light:bg-agi-50" id="basic_settings">
<h3 class="card-title">
Detail Penilaian
</h3>
<div class="flex items-center gap-2">
<div class="flex gap-2 items-center">
<a href="{{ route('penilai.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i>
Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Nomor Registrasi
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->nomor_registrasi) ? $permohonan->nomor_registrasi : '' }}</p>
</div>
<label class="form-label max-w-56">
Nama Debitur
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->debiture->name) ? $permohonan->debiture->name : '' }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Cabang
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->branch->name) ? $permohonan->branch->name : '' }}</p>
</div>
<label class="form-label max-w-56">
Alamat Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ formatAlamat($permohonan->debiture) }}
</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Nama AO/Pemohon
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->user->name) ? $permohonan->user->name : '' }}</p>
</div>
<label class="form-label max-w-56">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->jenisFasilitasKredit->name) ? $permohonan->jenisFasilitasKredit->name : '' }}
</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tanggal Permohonan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
</div>
<label class="form-label max-w-56">
CIF
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ isset($permohonan->debiture->cif) ? $permohonan->debiture->cif : '' }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tanggal Konfirmasi Kunjungan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ formatTanggalIndonesia($permohonan->penilaian->waktu_penilaian) ?? '' }}</p>
</div>
@if (!in_array(strtolower($permohonan->tujuanPenilaian->name), ['penilaian ulang', 'asuransi', 'lelang']))
<label class="form-label max-w-56">
Status Bayar
</label>
@@ -105,7 +104,6 @@
{{ str_replace('_', ' ', $permohonan->status_bayar) }}
</span>
</div>
@endif
</div>
</div>
@@ -113,9 +111,9 @@
@foreach ($permohonan->documents as $dokumen)
<div class="card border border-agi-100">
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="border card border-agi-100">
<div class="grid gap-5 card-body">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
@php
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
@@ -125,11 +123,11 @@
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ $surveyor->userPenilaiTeam->name }}
</p>
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }}
</p>
</div>
@@ -138,45 +136,45 @@
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ $penilai->userPenilaiTeam->name }}
</p>
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ checkRegionUserName($penilai->userPenilaiTeam->id) }}
</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tujuan Penilaian
</label>
<p class="flex text-gray-600 font-medium text-sm w-full">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ $permohonan->tujuanPenilaian->name }}</p>
<label class="form-label max-w-56">
Jenis Jaminan
</label>
<p class="flex text-gray-600 font-medium text-sm w-full">
<p class="flex w-full text-sm font-medium text-gray-600">
@foreach ($permohonan->documents as $document)
{{ $document->jenisjaminan->name }}
@endforeach
</p>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tanggal Survei
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ formatTanggalIndonesia($permohonan->penilaian->updated_at) }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tanggal Laporan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
@php
$tglLaporan = getNomorLaporan($permohonan->id, $dokumen->id, 'tanggal_laporan');
@@ -185,24 +183,24 @@
{{ isset($tglLaporan) ? formatTanggalIndonesia($tglLaporan) : '-' }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
No. Laporan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ getNomorLaporan($permohonan->id, $dokumen->id) ?? '-' }}
</p>
</div>
</div>
@if ($permohonan->status == 'revisi-laporan')
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Catatan Revisi
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
<p class="flex w-full text-sm font-medium text-gray-600">
{{ $permohonan->keterangan ?? '' }}
</p>
</div>
@@ -217,7 +215,7 @@
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'ALAT BERAT'];
@endphp
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full card-footer mt-2 ">
<div class="flex flex-wrap gap-2.5 items-baseline mt-2 w-full lg:flex-nowrap card-footer">
<div class="flex gap-5">
<a class="btn btn-primary"
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
@@ -240,8 +238,8 @@
</button>
{{-- kios tanah bangunan kalo dalam mall ruko --}}
<div class="dropdown-content w-full max-w-56 py-2">
<div class="menu menu-default flex flex-col w-full">
<div class="py-2 w-full dropdown-content max-w-56">
<div class="flex flex-col w-full menu menu-default">
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
<div class="menu-item">
<a class="menu-link"
@@ -321,17 +319,18 @@
</div>
</div>
@if($permohonan->jenisPenilaian->name=="Eksternal")
@if ($permohonan->jenisPenilaian->name == 'Eksternal')
@if (isset($permohonan->laporanExternal->file_resume) || isset($permohonan->laporanExternal->file_laporan))
<div class="dropdown" data-dropdown="true" data-dropdown-trigger="click">
<button class="dropdown-toggle btn btn-primary">
Laporan Eksternal
</button>
<div class="dropdown-content w-full max-w-56 py-2 !ml-[200px] !mt-[-20px]">
<div class="menu menu-default flex flex-col w-full">
<div class="flex flex-col w-full menu menu-default">
@if (isset($permohonan->laporanExternal->file_resume) && !empty($permohonan->laporanExternal->file_resume))
<div class="menu-item">
<a class="menu-link" onclick="viewPDF('{{ Storage::url($permohonan->laporanExternal->file_resume) }}')">
<a class="menu-link"
onclick="viewPDF('{{ Storage::url($permohonan->laporanExternal->file_resume) }}')">
<span class="menu-icon">
<i class="ki-outline ki-badge"></i>
</span>
@@ -342,9 +341,9 @@
</div>
@endif
@if (isset($permohonan->laporanExternal->file_laporan) && !empty($permohonan->laporanExternal->file_laporan))
<div class="menu-item">
<a class="menu-link" onclick="viewPDF('{{ Storage::url($permohonan->laporanExternal->file_laporan) }}')">
<a class="menu-link"
onclick="viewPDF('{{ Storage::url($permohonan->laporanExternal->file_laporan) }}')">
<span class="menu-icon">
<i class="ki-outline ki-setting-2"></i>
</span>
@@ -362,7 +361,7 @@
@endif
</div>
<div class="flex justify-end gap-5">
<div class="flex gap-5 justify-end">
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => $dokumen->id, 'jenis_jaminan_id' => $dokumen->jenis_jaminan_id]) }}"
class="btn btn-light">
@@ -385,7 +384,7 @@
</div>
@endforeach
@if ($permohonan->status != 'freeze')
<div class="flex justify-start gap-5">
<div class="flex gap-5 justify-start">
<a class="btn btn-success" onclick="savePenilai()">
<i class="ki-filled ki-paper-plane"></i>
REPORT
@@ -417,7 +416,7 @@
</i>
</button>
</div>
<div class="modal-body grid gap-5">
<div class="grid gap-5 modal-body">
@php
$jenisJaminanId = null;
@@ -429,7 +428,6 @@
// Ambil ID inspeksi pertama (jika ada)
// Ambil jenis jaminan jika ada
if ($firstDocument->jenisjaminan) {
$jenisJaminanId = $firstDocument->jenisjaminan->id;
@@ -444,7 +442,7 @@
<div class="flex items-baseline w-full">
<label for="" class="form-label max-w-56">Import Kertas Kerja</label>
<div class="flex justify-center items-center gap-2">
<div class="flex gap-2 justify-center items-center">
<input type="file" id="kertas_kerja" class="file-input">
<button type="button" class="btn btn-outline btn-success"
onclick="uploadKertasKerja({{ $permohonan->id }}, '{{ $documentId }}', '{{ $jenisJaminanId }}')">Upload
@@ -455,7 +453,7 @@
@if (isset($permohonan->penilai) && isset($permohonan->penilai->kertas_kerja) && $permohonan->penilai->kertas_kerja)
<span data-modal-dismiss="true" class="btn btn-warning btn-outline"
onclick="viewPDF('{{ Storage::url($permohonan->penilai->kertas_kerja) }}')"><i
class="ki-filled ki-eye mr-2"></i>Lihat Kertas Kerja</span>
class="mr-2 ki-filled ki-eye"></i>Lihat Kertas Kerja</span>
@endif
</div>

View File

@@ -5,10 +5,10 @@
@endsection
@section('content')
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@include('lpj::component.detail-jaminan', ['backLink' => 'penilaian.index'])
<div class="card border border-agi-100 pb-2.5">
<div class="pb-2.5 border card border-agi-100">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Form Assignment
@@ -21,8 +21,8 @@
@method('PUT')
@endif
@csrf
<div class="pl-1 grid gap-2.5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-2.5 pl-1">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Penilai yang Dilakukan oleh
</label>
@@ -35,12 +35,12 @@
<input class="input @error('jenis_penilaian_id') border-danger bg-danger-light @enderror"
type="text" value="{{ $jenisPenilaian->name }}" readonly>
@error('jenis_penilaian_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tim Penilai yang di tunjuk
</label>
@@ -49,17 +49,17 @@
<input class="input @error('teams_id') border-danger bg-danger-light @enderror"
type="text" value="{{ $regionName->name ?? '' }}" readonly>
@error('teams_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
<div
class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 {{ $penilaianTeam->isEmpty() ? '' : 'hidden' }}">
<!-- $penilaianTeam->isEmpty() -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Pilih Surveyor dan Penilai
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="surveyor_selection" name="surveyor_selection"
class="tomselect input @error('surveyor_selection') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Surveyor dan Penilai</option>
@@ -67,18 +67,18 @@
<option value="berbeda">Berbeda</option>
</select>
</div>
<em id="error-surveyor_selection" class="alert text-danger text-sm"></em>
<em id="error-surveyor_selection" class="text-sm alert text-danger"></em>
</div>
</div>
<div id="same_surveyor_penilai" class="hidden">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Surveyor dan Penilai yang di tunjuk
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="penilai_surveyor_id" name="penilai_surveyor_id"
class="input tomselect @error('penilai_surveyor_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Surveyor dan Penilai</option>
@@ -92,18 +92,18 @@
</select>
</div>
<em id="error-penilai_surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_surveyor_id" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
<div id="surveyorPenilaiRegion" class="hidden items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="surveyorPenilaiRegion" class="hidden flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Pilih Region
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="surveyor_penilai_region_id" name="surveyor_penilai_region_id"
class="tomselect input @error('surveyor_penilai_region_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Region</option>
@@ -117,7 +117,7 @@
</select>
</div>
<em id="error-surveyor_penilai_region_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_penilai_region_id" class="text-sm alert text-danger"></em>
</div>
</div>
@@ -128,12 +128,12 @@
@if (
$penilaianTeam->isNotEmpty() &&
$penilaianTeam->contains(fn($item) => $item->role == 'surveyor' && is_null($item->user_id)))
<div id="surveyorId" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="surveyorId" class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Surveyor yang di tunjuk
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="surveyor_id" name="surveyor_id"
class="tomselect input @error('surveyor_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Surveyor</option>
@@ -148,17 +148,17 @@
</select>
</div>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_id" class="text-sm alert text-danger"></em>
</div>
</div>
@elseif($penilaianTeam->isEmpty())
<div id="surveyorId" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="surveyorId" class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Surveyor yang di tunjuk
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="surveyor_id" name="surveyor_id"
class="tomselect input @error('surveyor_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Surveyor</option>
@@ -173,19 +173,19 @@
</select>
</div>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_id" class="text-sm alert text-danger"></em>
</div>
</div>
@endif
<div id="surveyorRegion" class="hidden items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="surveyorRegion" class="hidden flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Pilih Region
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="surveyor_region_id" name="surveyor_region_id"
class="tomselect input @error('surveyor_region_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Region</option>
@@ -199,7 +199,7 @@
</select>
</div>
<em id="error-surveyor_region_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_region_id" class="text-sm alert text-danger"></em>
</div>
</div>
@@ -208,12 +208,12 @@
@if (
$penilaianTeam->isNotEmpty() &&
$penilaianTeam->contains(fn($item) => $item->role == 'penilai' && is_null($item->user_id)))
<div id="penilaiId" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="penilaiId" class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Penilai yang di tunjuk
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="penilai_id" name="penilai_id"
class="input tomselect @error('penilai_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Penilai</option>
@@ -226,16 +226,16 @@
@endif
</select>
</div>
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_id" class="text-sm alert text-danger"></em>
</div>
</div>
@elseif($penilaianTeam->isEmpty())
<div id="penilaiId" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="penilaiId" class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Penilai yang di tunjuk
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="penilai_id" name="penilai_id"
class="input tomselect @error('penilai_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Penilai</option>
@@ -248,16 +248,16 @@
@endif
</select>
</div>
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_id" class="text-sm alert text-danger"></em>
</div>
</div>
@endif
<div id="penilaiRegion" class="hidden items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div id="penilaiRegion" class="hidden flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Pilih Region
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<div class="w-full input-group">
<select id="penilai_region_id" name="penilai_region_id"
class="tomselect input @error('penilai_region_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Region</option>
@@ -270,13 +270,13 @@
@endif
</select>
</div>
<em id="error-penilai_region_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_region_id" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Tanggal assign
</label>
@@ -286,12 +286,12 @@
type="datetime-local" name="tanggal_kunjungan"
value="{{ isset($penilaian->tanggal_kunjungan) ? \Carbon\Carbon::createFromTimestamp($penilaian->tanggal_kunjungan)->format('Y-m-d\TH:i') : '' }}">
<em id="error-tanggal_kunjungan" class="alert text-danger text-sm"></em>
<em id="error-tanggal_kunjungan" class="text-sm alert text-danger"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
Catatan
</label>
@@ -300,16 +300,16 @@
name="keterangan">{{ $permohonan->registrasi_catatan ? $permohonan->registrasi_catatan . "\n\n" : '' }}{{ $penilaian->keterangan ?? '' }}</textarea>
</div>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<em id="error-keterangan" class="text-sm alert text-danger"></em>
</div>
</div>
<div class="flex justify-end card-footer mt-2">
<div class="flex justify-end mt-2 card-footer">
<button type="button" onclick="submitAssignment()" class="btn btn-success">
Aprove
</button>
<button type="button" data-modal-toggle="#modal_revisi" class="btn btn-warning ml-3">
<button type="button" data-modal-toggle="#modal_revisi" class="ml-3 btn btn-warning">
Revisi
</button>
@@ -339,32 +339,32 @@
<input type="hidden" name="nomor_registrasi"
value="{{ $penilaian->nomor_registrasi ?? $permohonan->nomor_registrasi }}">
<div class="pl-1 grid gap-2.5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="grid gap-2.5 pl-1">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Dokumen Revisi</label>
<div class="flex flex-wrap items-baseline w-full">
<input id="dokumen"
class="file-input @error('dokumen') border-danger bg-danger-light @enderror"
type="file" name="dokumen">
@error('dokumen')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Catatan</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea id="keterangan" class="textarea @error('keterangan') border-danger bg-danger-light @enderror"
rows="3" name="keterangan"></textarea>
@error('keterangan')
<em class="alert text-danger text-sm">{{ $message }}</em>
<em class="text-sm alert text-danger">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="modal-footer justify-end mt-2">
<div class="justify-end mt-2 modal-footer">
<div class="flex gap-4">
<button type="button" class="btn btn-light" data-modal-dismiss="true">Cancel</button>
<button id="btnSubmit" type="submit" class="btn btn-primary"

View File

@@ -5,12 +5,12 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card border border-agi-100 pb-2.5">
<div class=" card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<div class="pb-2.5 border card border-agi-100">
<div class="min-w-full card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="permohonan-table"
data-api-url="{{ route('otorisator.sla.datatables') }}">
<div class="card-header bg-agi-50 py-5 flex-wrap">
<div class="flex-wrap py-5 card-header bg-agi-50">
<h3 class="card-title">
Daftar {{ $header }}
</h3>
@@ -29,7 +29,7 @@
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border"
data-datatable-table="true">
<thead>
<tr>
@@ -81,13 +81,13 @@
</table>
</div>
<div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
class="flex-col gap-3 justify-center font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex gap-2 items-center">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<div class="flex gap-4 items-center">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
@@ -291,22 +291,5 @@
}
});
}
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('Dialog loading otomatis ditutup.');
}
});
}
</script>
@endpush

View File

@@ -5,8 +5,8 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<div class="min-w-full border card border-agi-100 card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="permohonan-table"
data-api-url="{{ route('otorisator.datatables', ['otorisator' => $header]) }}">
<div class="flex-wrap py-5 card-header bg-agi-50">
@@ -22,7 +22,7 @@
@if ($header == 'Pelaporan')
<div class="flex">
<select class="select select-sm w-28" id="region">
<select class="w-28 select select-sm" id="region">
<option value="">
Pilih Region
</option>
@@ -44,7 +44,7 @@
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
<table class="table text-sm font-medium text-gray-700 align-middle table-auto table-border"
data-datatable-table="true">
<thead>
<tr>
@@ -112,13 +112,13 @@
</table>
</div>
<div
class="flex-col justify-center gap-3 font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex items-center gap-2">
class="flex-col gap-3 justify-center font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex gap-2 items-center">
Show
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<div class="flex gap-4 items-center">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
@@ -234,7 +234,7 @@
title: 'Jenis laporan',
render: (item, data) => {
if (data.penilai.type_penilai) {
return `<span class="text-md font-bold capitalize">${data.penilai.type_penilai}</span>`;
return `<span class="font-bold capitalize text-md">${data.penilai.type_penilai}</span>`;
}
return '';
},
@@ -285,7 +285,7 @@
const isAdmin = userRoles.includes('administrator');
let buttons = `
<div class="flex justify-center flex-nowrap">
<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="otorisator/show/${data.id}/${dataHeader}">
<i class="ki-outline ki-eye"></i>
</a>
@@ -361,22 +361,5 @@
}
});
}
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('Dialog loading otomatis ditutup.');
}
});
}
</script>
@endpush

View File

@@ -5,7 +5,7 @@
@endsection
@section('content')
<div class="w-full card grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full card lg:gap-7.5">
<div class="min-w-full card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="permohonan-table"
@@ -98,13 +98,13 @@
</table>
</div>
<div
class="flex-col justify-center gap-3 font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex items-center gap-2">
class="flex-col gap-3 justify-center font-medium text-gray-600 card-footer md:justify-between md:flex-row text-2sm">
<div class="flex gap-2 items-center">
Show
<select class="w-16 select select-sm" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<div class="flex gap-4 items-center">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
@@ -280,7 +280,7 @@
const isAdmin = userRoles.includes('administrator');
let buttons = `
<div class="flex justify-center flex-nowrap">
<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="otorisator/show/${data.id}/${dataHeader}">
<i class="ki-outline ki-eye"></i>
</a>
@@ -348,22 +348,5 @@
}
});
}
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log('Dialog loading otomatis ditutup.');
}
});
}
</script>
@endpush

View File

@@ -97,7 +97,6 @@
<span class="sort-icon"></span>
</span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Aksi</th>
</tr>
</thead>
</table>
@@ -283,21 +282,6 @@
render: (item, data) => {
return data.status_badge || '-';
},
},
actions: {
title: 'Aksi',
render: (item, data) => {
return `
<div class="flex gap-2">
<button class="btn btn-sm btn-primary" onclick="moveToLaporan(${data.id})" title="SLIK">
<i class="ki-filled ki-file-up"></i> SLIK
</button>
<button class="btn btn-sm btn-light btn-icon" onclick="showDetail(${data.id})" title="Detail">
<i class="ki-filled ki-eye"></i>
</button>
</div>
`;
},
}
},
};

View File

@@ -167,7 +167,7 @@
<div class="flex items-stretch flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Spek Bangunan</label>
<div class="flex flex-wrap items-baseline w-full" id="spek-bangunan-container">
@if (isset($forminspeksi['bangunan']) && is_array($forminspeksi['bangunan']))
@if (isset($forminspeksi['bangunan']) && is_array($forminspeksi['bangunan']) && !empty($forminspeksi['bangunan']['spesifikasi_bangunan']))
@foreach ($forminspeksi['bangunan']['spesifikasi_bangunan'] as $index => $bangunan)
<div class="spek-bangunan w-full gap-4 mt-5">
<input type="hidden" name="nama_bangunan[]"

View File

@@ -5,9 +5,9 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5">
<div class="grid gap-5 w-full lg:gap-7.5">
<div class="grid gap-5">
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
<div class="min-w-full card-grid" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="data-table" data-api-url="">
@php
@@ -47,14 +47,14 @@
<div class="card">
<div class="card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin: 20px">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin: 20px">
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label>
<div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ $comparisons['keterangan'] ?? old('keterangan') }}</textarea>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<div id="keterangan-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ $comparisons['keterangan'] ?? old('keterangan') }}</textarea>
<em id="error-keterangan" class="text-sm alert text-danger"></em>
</div>
</div>
@@ -63,7 +63,7 @@
</div>
</div>
<div class="card-footer">
<div class="flex justify-end gap-2">
<div class="flex gap-2 justify-end">
<button type="button" onclick="submitData()" class="btn btn-primary">
<i class="ki-duotone ki-save-2 fs-2"></i>
Simpan

View File

@@ -1,7 +1,7 @@
<!-- Informasi Tata Ruang -->
<div class="card border border-agi-100 w-full ">
<div class="w-full border card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
ATURAN TATA KOTA
@else
@@ -102,57 +102,56 @@
@if (count($inputDinasTata) > 0)
@foreach ($inputDinasTata as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">{{ $item['label'] }}</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" name="{{ $item['name'] }}" class="input"
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
@error($item['name'])
<em class="alert text-danger text-sm"></em>
<em class="text-sm alert text-danger"></em>
@enderror
</div>
</div>
@endforeach
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
<span class="form-label">Gambar Surat Ukur</span>
</label>
<div class="input-group w-full flex gap-2">
<div class="flex gap-2 w-full input-group">
<input class="upload_gs" type="hidden" name="upload_gs" value="upload_gs">
<div class="w-full">
<input id="inputGistaru" type="file" name="upload_gs"
class="file-input file-input-bordered w-full"
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'upload-gs-preview', 'upload_gs')">
<img id="upload-gs-preview"
src="{{ isset($forminspeksi['upload_gs']) && is_string($forminspeksi['upload_gs']) && !empty($forminspeksi['upload_gs']) ? asset('storage/' . $forminspeksi['upload_gs']) : '' }}"
alt="Foto Gs" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['upload_gs']) && is_string($forminspeksi['upload_gs']) && !empty($forminspeksi['upload_gs']) ? '' : 'display: none;' }} max-width: 30rem;" />
style="{{ isset($forminspeksi['upload_gs']) && is_string($forminspeksi['upload_gs']) && !empty($forminspeksi['upload_gs']) ? '' : 'display: none;' }} max-width: 20rem;" />
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
<span class="form-label">Sentuh Tanahku</span>
</label>
<div class="input-group w-full flex gap-2">
<div class="flex gap-2 w-full input-group">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputGistaru" type="file" name="foto_sentuh_tanahku"
class="file-input file-input-bordered w-full"
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'sentuh_tanahku-preview', 'foto_sentuh_tanahku')"
>
onchange="uploadFile(this, 'sentuh_tanahku-preview', 'foto_sentuh_tanahku')">
<img id="sentuh_tanahku-preview"
src="{{ isset($forminspeksi['foto_sentuh_tanahku']) && is_string($forminspeksi['foto_sentuh_tanahku']) && !empty($forminspeksi['foto_sentuh_tanahku']) ? asset('storage/' . $forminspeksi['foto_sentuh_tanahku']) : '' }}"
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_sentuh_tanahku']) && is_string($forminspeksi['foto_sentuh_tanahku']) && !empty($forminspeksi['foto_sentuh_tanahku']) ? '' : 'display: none;' }} max-width: 30rem;"/>
style="{{ isset($forminspeksi['foto_sentuh_tanahku']) && is_string($forminspeksi['foto_sentuh_tanahku']) && !empty($forminspeksi['foto_sentuh_tanahku']) ? '' : 'display: none;' }} max-width: 20rem;" />
</div>
</div>
@@ -160,22 +159,22 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
<span class="form-label">Gistaru</span>
</label>
<div class="input-group w-full flex gap-2">
<div class="flex gap-2 w-full input-group">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputGistaru" type="file" name="foto_gistaru"
class="file-input file-input-bordered w-full"
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'gistaru-preview', 'foto_gistaru')">
<img id="gistaru-preview"
src="{{ isset($forminspeksi['foto_gistaru']) && is_string($forminspeksi['foto_gistaru']) && !empty($forminspeksi['foto_gistaru']) ? asset('storage/' . $forminspeksi['foto_gistaru']) : '' }}"
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
style="{{ isset($forminspeksi['foto_gistaru']) && is_string($forminspeksi['foto_gistaru']) && !empty($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 30rem;" />
style="{{ isset($forminspeksi['foto_gistaru']) && is_string($forminspeksi['foto_gistaru']) && !empty($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 20rem;" />
</div>
@@ -186,28 +185,30 @@
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
<span class="form-label">Bhumi</span>
</label>
<div class="input-group w-full flex gap-2">
<div class="flex gap-2 w-full input-group">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full grid gap-2">
<div class="grid gap-2 w-full">
<input id="inputBhumi" type="file" name="foto_bhumi"
class="file-input file-input-bordered w-full "
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'bhumi-preview', 'foto_bhumi')">
@php
$bhumiPath = isset($forminspeksi['foto_bhumi']) && is_string($forminspeksi['foto_bhumi']) && !empty($forminspeksi['foto_bhumi'])
$bhumiPath =
isset($forminspeksi['foto_bhumi']) &&
is_string($forminspeksi['foto_bhumi']) &&
!empty($forminspeksi['foto_bhumi'])
? asset('storage/' . $forminspeksi['foto_bhumi'])
: '';
@endphp
<img id="bhumi-preview"
src="{{ $bhumiPath }}"
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
style="{{ $bhumiPath ? '' : 'display: none;' }} max-width: 30rem;" />
<img id="bhumi-preview" src="{{ $bhumiPath }}" alt="Foto Bhumi"
class="mt-2 max-w-full h-auto"
style="{{ $bhumiPath ? '' : 'display: none;' }} max-width: 20rem;" />
</div>
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light" target="_blank">
<i class="ki-filled ki-map"></i> Bhumi
@@ -216,40 +217,41 @@
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">
<span class="form-label">Blad Tata Ruang Perdaerah</span>
</label>
<div class="input-group w-full flex gap-2">
<div class="flex gap-2 w-full input-group">
<input class="name_rute" type="hidden" name="name_rute" value="rute">
<div class="w-full">
<input id="inputArgisRegion" type="file" name="foto_argis_region"
class="file-input file-input-bordered w-full"
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'argis-region-preview', 'foto_argis_region')">
@php
$argisRegionPath = isset($forminspeksi['foto_argis_region']) && is_string($forminspeksi['foto_argis_region']) && !empty($forminspeksi['foto_argis_region'])
$argisRegionPath =
isset($forminspeksi['foto_argis_region']) &&
is_string($forminspeksi['foto_argis_region']) &&
!empty($forminspeksi['foto_argis_region'])
? asset('storage/' . $forminspeksi['foto_argis_region'])
: '';
@endphp
<img id="argis-region-preview"
src="{{ $argisRegionPath }}"
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
style="{{ $argisRegionPath ? '' : 'display: none;' }} max-width: 30rem;">
<img id="argis-region-preview" src="{{ $argisRegionPath }}" alt="Foto Argis Region"
class="mt-2 max-w-full h-auto"
style="{{ $argisRegionPath ? '' : 'display: none;' }} max-width: 20rem;">
</div>
< </div>
</div>
</div>
<!-- Upload Photo Button -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<label for="" class="form-label max-w-56 text-sm font-medium text-gray-700">Upload
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label for="" class="text-sm font-medium text-gray-700 form-label max-w-56">Upload
Peta</label>
<div class="w-full grid gap-5">
<div class="input-group w-full flex gap-2">
<div class="grid gap-5 w-full">
<div class="flex gap-2 w-full input-group">
<input id="foto_tempat" type="file" name="foto_tempat"
class="file-input file-input-bordered w-full"
class="w-full file-input file-input-bordered"
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
onchange="uploadFile(this, 'foto_tempat-preview', 'foto_tempat')">
<button type="button" id="btnCamera" class="btn btn-light"
@@ -258,30 +260,33 @@
</button>
</div>
@php
$fotoTempat = isset($forminspeksi['foto_tempat']) && is_string($forminspeksi['foto_tempat']) && !empty($forminspeksi['foto_tempat'])
$fotoTempat =
isset($forminspeksi['foto_tempat']) &&
is_string($forminspeksi['foto_tempat']) &&
!empty($forminspeksi['foto_tempat'])
? asset('storage/' . $forminspeksi['foto_tempat'])
: '';
@endphp
<img id="foto_tempat-preview" src="{{ $fotoTempat ?: '' }}" alt="Foto Tempat"
class="mt-2 max-w-full h-auto"
style="max-width: 30rem; {{ $fotoTempat ? '' : 'display: none;' }}">
style="max-width: 20rem; {{ $fotoTempat ? '' : 'display: none;' }}">
</div>
</div>
<!-- Notes Section -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label lg:form-label max-w-56">Catatan yang Perlu Diperhatikan
</label>
<div class="w-full">
<div id="keterangan-container" class="flex items-baseline flex-wrap gap-2.5 w-full">
<div id="keterangan-container" class="flex flex-wrap gap-2.5 items-baseline w-full">
@if (!empty($forminspeksi['fakta']['keterangan']) && is_array($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $index => $item)
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10">{{ old("keterangan.$index", $item) }}</textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
@@ -289,18 +294,18 @@
</div>
@endforeach
@else
<div class="keterangan flex items-center gap-2 mt-2 textarea-group w-full">
<textarea name="keterangan[]" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="10"></textarea>
<div class="flex gap-2 items-center mt-2 w-full keterangan textarea-group">
<textarea name="keterangan[]" class="mt-2 textarea" placeholder="Masukkan catatan penting" rows="10"></textarea>
<button class="btn btn-danger btn-sm remove-btn" type="button"
style="display: none;">
<i class="ki-outline ki-trash"></i>
</button>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<em id="error-keterangan" class="text-sm alert text-danger"></em>
</div>
@endif
</div>
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
class="btn btn-primary btn-sm mt-5 ">
class="mt-5 btn btn-primary btn-sm">
<i class="ki-outline ki-plus"></i>
</button>
</div>

View File

@@ -6,7 +6,7 @@
@section('content')
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
@csrf
<input id="permohonan_id" type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
@@ -46,14 +46,14 @@
@endif
@endforeach
@endif
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
<div class="overflow-hidden w-full rounded-lg border shadow-md card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Tanda Tangan
</h3>
</div>
<div class="card-body">
<div class="flex items-baseline justify-between flex-wrap lg:flex-nowrap">
<div class="flex flex-wrap justify-between items-baseline lg:flex-nowrap">
@foreach (['penilai', 'cabang', 'debitur', 'kjpp'] as $type)
@include('lpj::component.signature-pad', ['type' => $type])
@endforeach
@@ -65,7 +65,7 @@
</div>
</div>
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()">
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>

View File

@@ -1,10 +1,16 @@
<script>
function showLoadingSwal(message) {
function showLoadingSwal(message, duration = 5000) {
Swal.fire({
title: message,
allowOutsideClick: false,
didOpen: () => {
Swal.showLoading();
},
timer: duration, // Durasi dalam milidetik
timerProgressBar: true, // Menampilkan progres bar timer
}).then((result) => {
if (result.dismiss === Swal.DismissReason.timer) {
console.log("Dialog loading otomatis ditutup.");
}
});
}
@@ -413,7 +419,8 @@
const addressInput = document.getElementById('address');
if (status === 'sesuai') {
addressInput.value = "{{ $dokumen->address ?? '' }}";
addressInput.value = {!! json_encode($dokumen->address ?? '') !!};
inputs.forEach(element => {
if (element.tagName === 'INPUT') {
element.setAttribute('readonly', true);