Merge remote-tracking branch 'origin/feature/senior-officer' into surveyor
This commit is contained in:
63
app/Emails/SendJadwalKunjunganEmail.php
Normal file
63
app/Emails/SendJadwalKunjunganEmail.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Emails;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class SendJadwalKunjunganEmail extends Mailable
|
||||
{
|
||||
/**
|
||||
* ID Penilaian.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $id;
|
||||
|
||||
/**
|
||||
* Waktu Penilaian.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $waktu_penilaian;
|
||||
|
||||
/**
|
||||
* Deskripsi Penilaian.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $deskripsi_penilaian;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @param array $emailData
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(array $emailData)
|
||||
{
|
||||
// Validasi data yang diterima
|
||||
if (!isset($emailData['emailData']['id']) ||
|
||||
!isset($emailData['emailData']['waktu_penilaian']) ||
|
||||
!isset($emailData['emailData']['deskripsi_penilaian'])) {
|
||||
throw new \InvalidArgumentException("Data email tidak lengkap.");
|
||||
}
|
||||
|
||||
$this->id = $emailData['emailData']['id'];
|
||||
$this->waktu_penilaian = $emailData['emailData']['waktu_penilaian'];
|
||||
$this->deskripsi_penilaian = $emailData['emailData']['deskripsi_penilaian'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
return $this->subject('Jadwal Kunjungan Penilaian Resmi')
|
||||
->view('lpj::emails.jadwal-kunjungan');
|
||||
}
|
||||
}
|
||||
@@ -19,11 +19,12 @@ class SendPenawaranKJPPEmail extends Mailable
|
||||
public $districts;
|
||||
public $cities;
|
||||
public $provinces;
|
||||
public $user; // Tambahkan user ke data yang dikirimkan ke view, sebagai cc dan bcc
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public function __construct($dp1, $penawaran, $permohonan, $villages, $districts, $cities, $provinces)
|
||||
public function __construct($dp1, $penawaran, $permohonan, $villages, $districts, $cities, $provinces, $user)
|
||||
{
|
||||
// Assign data yang diterima ke properti
|
||||
$this->dp1 = $dp1;
|
||||
@@ -33,6 +34,7 @@ class SendPenawaranKJPPEmail extends Mailable
|
||||
$this->districts = $districts;
|
||||
$this->cities = $cities;
|
||||
$this->provinces = $provinces;
|
||||
$this->user = $user; // Tambahkan user ke data yang dikirimkan ke view, sebagai cc dan bcc
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,6 +52,7 @@ class SendPenawaranKJPPEmail extends Mailable
|
||||
'districts' => $this->districts,
|
||||
'cities' => $this->cities,
|
||||
'provinces' => $this->provinces,
|
||||
'user' => $this->user // Tambahkan user ke data yang dikirimkan ke view, sebagai cc dan bcc
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
49
app/Exports/CustomFieldExport.php
Normal file
49
app/Exports/CustomFieldExport.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Exports;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class CustomFieldExport implements WithColumnFormatting, WithHeadings, FromCollection, WithMapping
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
return CustomField::all();
|
||||
}
|
||||
|
||||
public function map($row): array
|
||||
{
|
||||
return [
|
||||
$row->id,
|
||||
$row->name,
|
||||
$row->type,
|
||||
$row->created_at,
|
||||
$row->updated_at,
|
||||
];
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'ID',
|
||||
'Name',
|
||||
'Type',
|
||||
'Created At',
|
||||
'Updated At',
|
||||
];
|
||||
}
|
||||
|
||||
public function columnFormats(): array
|
||||
{
|
||||
return [
|
||||
'A' => NumberFormat::FORMAT_NUMBER,
|
||||
'D' => NumberFormat::FORMAT_DATE_DDMMYYYY,
|
||||
'E' => NumberFormat::FORMAT_DATE_DDMMYYYY,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Models\HolidayCalendar;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
use Modules\Lpj\Models\HolidayCalendar;
|
||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||
use Modules\Lpj\Models\PenawaranTender;
|
||||
use Modules\Lpj\Models\Penilaian;
|
||||
@@ -359,3 +360,16 @@ function getNomorLaporan($permohonanId, $documentId){
|
||||
])->first();
|
||||
return $laporan->nomor_laporan ?? null;
|
||||
}
|
||||
|
||||
function getCustomField($param){
|
||||
if(is_numeric($param)){
|
||||
$field = CustomField::find($param);
|
||||
} else {
|
||||
$field = CustomField::where(['name' => $param])->first();
|
||||
}
|
||||
if($field){
|
||||
return $field;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,6 +244,15 @@ class ActivityController extends Controller
|
||||
// abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
|
||||
$userRole = $user->roles->pluck('name')->first();
|
||||
$regionId = null;
|
||||
|
||||
// If user is senior-officer, get their regionId
|
||||
if ($userRole === 'senior-officer') {
|
||||
$userTeam = TeamsUsers::with('team')->firstWhere('user_id', $user->id);
|
||||
$regionId = $userTeam?->team->regions_id;
|
||||
}
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = Permohonan::query();
|
||||
|
||||
@@ -289,22 +298,39 @@ class ActivityController extends Controller
|
||||
// Get filtered count
|
||||
$filteredRecords = $query->count();
|
||||
|
||||
// Get data
|
||||
|
||||
$data = null;
|
||||
$userRole = $user->roles[0]->name ?? null;
|
||||
|
||||
if (in_array($userRole, ['surveyor', 'surveyor-penilai'])) {
|
||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian'])
|
||||
->whereHas('penilaian.userPenilai', function ($q) use ($user) {
|
||||
$q->where('user_id', $user->id);
|
||||
})
|
||||
->get();
|
||||
} else {
|
||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])
|
||||
->get();
|
||||
// Filter by region if user is senior-officer
|
||||
if ($regionId) {
|
||||
$query->whereHas('region', function ($q) use ($regionId) {
|
||||
$q->where('region_id', $regionId);
|
||||
});
|
||||
}
|
||||
|
||||
// Filter for specific roles
|
||||
if (in_array($userRole, ['surveyor', 'surveyor-penilai'])) {
|
||||
$query->whereHas('penilaian.userPenilai', function ($q) use ($user) {
|
||||
$q->where('user_id', $user->id);
|
||||
});
|
||||
}
|
||||
|
||||
$totalRecords = $query->count();
|
||||
|
||||
// Pagination
|
||||
if ($request->has('page') && $request->has('size')) {
|
||||
$page = (int) $request->get('page', 1);
|
||||
$size = (int) $request->get('size', 10);
|
||||
$offset = ($page - 1) * $size;
|
||||
$query->skip($offset)->take($size);
|
||||
}
|
||||
|
||||
// Get filtered count
|
||||
$filteredRecords = $query->count();
|
||||
|
||||
// Get data with necessary relationships
|
||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan'])->get();
|
||||
|
||||
// Calculate total pages
|
||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
153
app/Http/Controllers/CustomFieldController.php
Normal file
153
app/Http/Controllers/CustomFieldController.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Modules\Lpj\Exports\CustomFieldExport;
|
||||
use Modules\Lpj\Http\Requests\CustomFieldRequest;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
|
||||
class CustomFieldController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::custom_fields.index');
|
||||
}
|
||||
|
||||
public function store(CustomFieldRequest $request)
|
||||
{
|
||||
$validate = $request->validated();
|
||||
|
||||
if ($validate) {
|
||||
try {
|
||||
// Save to database
|
||||
CustomField::create($validate);
|
||||
return redirect()
|
||||
->route('basicdata.custom-field.index')
|
||||
->with('success', 'Custom Field created successfully');
|
||||
} catch (Exception $e) {
|
||||
return redirect()
|
||||
->route('basicdata.custom-field.create')
|
||||
->with('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$urutan_prioritas = CustomField::max('urutan_prioritas')+1;
|
||||
return view('lpj::custom_fields.create', compact('urutan_prioritas'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$customField = CustomField::find($id);
|
||||
$urutan_prioritas = $customField->urutan_prioritas ?? CustomField::max('urutan_prioritas')+1;
|
||||
return view('lpj::custom_fields.create', compact('customField', 'urutan_prioritas' ));
|
||||
}
|
||||
|
||||
public function update(CustomFieldRequest $request, $id)
|
||||
{
|
||||
$validate = $request->validated();
|
||||
|
||||
if ($validate) {
|
||||
try {
|
||||
// Update in database
|
||||
$customField = CustomField::find($id);
|
||||
$customField->update($validate);
|
||||
return redirect()
|
||||
->route('basicdata.custom-field.index')
|
||||
->with('success', 'Custom Field updated successfully');
|
||||
} catch (Exception $e) {
|
||||
return redirect()
|
||||
->route('basicdata.custom-field.edit', $id)
|
||||
->with('error', 'Failed to update custom field');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
try {
|
||||
// Delete from database
|
||||
$customField = CustomField::find($id);
|
||||
$customField->delete();
|
||||
|
||||
echo json_encode(['success' => true, 'message' => 'Custom Field deleted successfully']);
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => 'Failed to delete custom field']);
|
||||
}
|
||||
}
|
||||
|
||||
public function dataForDatatables(Request $request)
|
||||
{
|
||||
if (is_null($this->user) || !$this->user->can('custom_fields.view')) {
|
||||
//abort(403, 'Sorry! You are not allowed to view custom fields.');
|
||||
}
|
||||
|
||||
// Retrieve data from the database
|
||||
$query = CustomField::query();
|
||||
|
||||
// Apply search filter if provided
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
$search = $request->get('search');
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('name', 'LIKE', "%$search%");
|
||||
$q->orWhere('label', 'LIKE', "%$search%");
|
||||
$q->orWhere('type', 'LIKE', "%$search%");
|
||||
});
|
||||
}
|
||||
|
||||
// Apply sorting if provided
|
||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||
$order = $request->get('sortOrder');
|
||||
$column = $request->get('sortField');
|
||||
$query->orderBy($column, $order);
|
||||
}
|
||||
|
||||
// Get the total count of records
|
||||
$totalRecords = $query->count();
|
||||
|
||||
// Apply pagination if provided
|
||||
if ($request->has('page') && $request->has('size')) {
|
||||
$page = $request->get('page');
|
||||
$size = $request->get('size');
|
||||
$offset = ($page - 1) * $size; // Calculate the offset
|
||||
|
||||
$query->skip($offset)->take($size);
|
||||
}
|
||||
|
||||
// Get the filtered count of records
|
||||
$filteredRecords = $query->count();
|
||||
|
||||
// Get the data for the current page
|
||||
$data = $query->get();
|
||||
|
||||
// Calculate the page count
|
||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||
|
||||
// Calculate the current page number
|
||||
$currentPage = 0 + 1;
|
||||
|
||||
// Return the response data as a JSON object
|
||||
return response()->json([
|
||||
'draw' => $request->get('draw'),
|
||||
'recordsTotal' => $totalRecords,
|
||||
'recordsFiltered' => $filteredRecords,
|
||||
'pageCount' => $pageCount,
|
||||
'page' => $currentPage,
|
||||
'totalCount' => $totalRecords,
|
||||
'data' => $data,
|
||||
]);
|
||||
}
|
||||
|
||||
public function export()
|
||||
{
|
||||
return Excel::download(new CustomFieldExport, 'custom_fields.xlsx');
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
use Modules\Location\Models\Province;
|
||||
use Modules\Location\Models\Village;
|
||||
use Modules\Lpj\Http\Requests\DokumenJaminanRequest;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||
use Modules\Lpj\Models\DokumenJaminan;
|
||||
@@ -88,7 +89,7 @@
|
||||
'jenis_legalitas_jaminan_id' => $value,
|
||||
'name' => $request->name[$key],
|
||||
'keterangan' => $request->keterangan[$key],
|
||||
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : ''
|
||||
'details' => isset($request->custom_field[$value]) ? json_encode($request->custom_field[$value]) : ''
|
||||
];
|
||||
|
||||
$dokumenJaminan = [];
|
||||
@@ -247,7 +248,7 @@
|
||||
'jenis_legalitas_jaminan_id' => $value,
|
||||
'name' => $request->name[$key],
|
||||
'keterangan' => $request->keterangan[$key],
|
||||
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : ''
|
||||
'details' => isset($request->custom_field[$value]) ? json_encode($request->custom_field[$value]) : ''
|
||||
];
|
||||
|
||||
$dokumenJaminan = [];
|
||||
@@ -496,6 +497,12 @@
|
||||
foreach ($document->detail as $detail) {
|
||||
// Only include existing legalitas if its id is in the new set
|
||||
if (in_array($detail->jenis_legalitas_jaminan_id, $newLegalitasIds)) {
|
||||
$customFields = [];
|
||||
if($detail->jenisLegalitasJaminan->custom_fields) {
|
||||
$customFields = CustomField::whereIn('id', $detail->jenisLegalitasJaminan->custom_fields)
|
||||
->get();
|
||||
}
|
||||
|
||||
$existingLegalitas[] = [
|
||||
'id' => $detail->id,
|
||||
'jenis_legalitas_jaminan_id' => $detail->jenis_legalitas_jaminan_id,
|
||||
@@ -507,6 +514,7 @@
|
||||
$detail->dokumen_nomor,
|
||||
) ?? $detail->dokumen_nomor,
|
||||
'custom_field' => $detail->jenisLegalitasJaminan->custom_field,
|
||||
'custom_fields' => $customFields,
|
||||
'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type,
|
||||
'details' => $detail->details,
|
||||
'keterangan' => $detail->keterangan,
|
||||
@@ -519,6 +527,11 @@
|
||||
|
||||
foreach ($newLegalitasJaminan as $legalitas) {
|
||||
if (!Collection::make($existingLegalitas)->contains('jenis_legalitas_jaminan_id', $legalitas->id)) {
|
||||
$customFields = [];
|
||||
if($legalitas->custom_fields) {
|
||||
$customFields = CustomField::whereIn('id', $legalitas->custom_fields)->get();
|
||||
}
|
||||
|
||||
$newLegalitas[] = [
|
||||
'id' => null,
|
||||
'jenis_legalitas_jaminan_id' => $legalitas->id,
|
||||
@@ -527,6 +540,7 @@
|
||||
'dokumen_nomor' => null,
|
||||
'custom_field' => $legalitas->custom_field,
|
||||
'custom_field_type' => $legalitas->custom_field_type,
|
||||
'custom_fields' => $customFields,
|
||||
'details' => null,
|
||||
'keterangan' => null,
|
||||
'is_existing' => false,
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Modules\Lpj\Exports\JenisLegalitasJaminanExport;
|
||||
use Modules\Lpj\Http\Requests\JenisLegalitasJaminanRequest;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||
|
||||
class JenisLegalitasJaminanController extends Controller
|
||||
@@ -40,13 +41,15 @@
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('lpj::jenis_legalitas_jaminan.create');
|
||||
$customFields = CustomField::orderBy('urutan_prioritas', 'asc')->get();
|
||||
return view('lpj::jenis_legalitas_jaminan.create',compact('customFields'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::find($id);
|
||||
return view('lpj::jenis_legalitas_jaminan.create', compact('jenisLegalitasJaminan'));
|
||||
$customFields = CustomField::orderBy('urutan_prioritas', 'asc')->get();
|
||||
return view('lpj::jenis_legalitas_jaminan.create', compact('jenisLegalitasJaminan', 'customFields'));
|
||||
}
|
||||
|
||||
public function update(JenisLegalitasJaminanRequest $request, $id)
|
||||
|
||||
@@ -226,7 +226,7 @@ class PenilaiController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
return view('lpj::penilai.components.memo', compact('permohonan', 'formFoto', 'formPeta', 'provinces', 'basicData', 'memo', 'cities', 'districts', 'villages', 'noLpmemo'));
|
||||
return view('lpj::penilai.components.memo', compact('permohonan', 'formFoto', 'formPeta', 'provinces', 'basicData', 'memo', 'cities', 'districts', 'villages', 'nomorLaporan'));
|
||||
}
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ class PenilaiController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
$permohonan = Permohonan::with('debiture')->find($id);
|
||||
return view('lpj::penilai.edit',compact('permohonan'));
|
||||
return view('lpj::penilai.edit', compact('permohonan'));
|
||||
}
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ class PenilaiController extends Controller
|
||||
]
|
||||
);
|
||||
|
||||
if($request->hasFile('file_paparan')) {
|
||||
if ($request->hasFile('file_paparan')) {
|
||||
$file = $request->file('file_paparan');
|
||||
$path = $file->store('public/file_paparan');
|
||||
|
||||
@@ -282,10 +282,10 @@ class PenilaiController extends Controller
|
||||
}
|
||||
|
||||
return redirect()
|
||||
->route('penilai.show',['id'=>$id])->with('success', 'diperbarui ke status paparan dan dikirim ke So untuk proses lebih lanjut.');
|
||||
->route('penilai.show', ['id' => $id])->with('success', 'diperbarui ke status paparan dan dikirim ke So untuk proses lebih lanjut.');
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return redirect()->route('penilai.show',['id'=>$id])->with('error', 'Terjadi kesalahan saat memproses permohonan.');
|
||||
return redirect()->route('penilai.show', ['id' => $id])->with('error', 'Terjadi kesalahan saat memproses permohonan.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -379,12 +379,92 @@ class PenilaiController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
return view('lpj::penilai.components.rap-penilai', compact('permohonan', 'rap', 'provinces', 'cities',
|
||||
return view('lpj::penilai.components.rap-penilai', compact(
|
||||
'permohonan',
|
||||
'rap',
|
||||
'provinces',
|
||||
'cities',
|
||||
'districts',
|
||||
'villages','forminspeksi', 'noLpRAP', 'basicData','cekAlamat'));
|
||||
'villages',
|
||||
'forminspeksi',
|
||||
'nomorLaporan',
|
||||
'basicData',
|
||||
'cekAlamat'
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
public function call_report(Request $request)
|
||||
{
|
||||
|
||||
$permohonanId = $request->query('permohonanId');
|
||||
$documentId = $request->query('documentId');
|
||||
$inspeksiId = $request->query('inspeksiId');
|
||||
$jaminanId = $request->query('jaminanId');
|
||||
$provinces = Province::all();
|
||||
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
|
||||
// $nomorLaporan = $this->generateNoLaporan($permohonan, $documentId, 'rap');
|
||||
// $basicData = $this->surveyorController->getCommonData();
|
||||
// $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
// Penilai::updateOrCreate(
|
||||
// [
|
||||
// 'permohonan_id' => $permohonanId,
|
||||
// 'dokument_id' => $documentId,
|
||||
// 'inspeksi_id' => $inspeksiId,
|
||||
// ],
|
||||
// [
|
||||
// 'type_penilai' => 'call-report',
|
||||
// ]
|
||||
// );
|
||||
|
||||
// $resume = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
|
||||
|
||||
// $lpjData = null;
|
||||
// $rap = null;
|
||||
// $forminspeksi = null;
|
||||
// if ($resume) {
|
||||
// $forminspeksi = json_decode($inspeksi->data_form, true);
|
||||
// $rap = json_decode($resume->rap, true);
|
||||
// }
|
||||
// Default: gunakan data dari debitur
|
||||
// $debitur = Debiture::find($permohonan->debiture_id);
|
||||
|
||||
// $provinceCode = $debitur->province_code;
|
||||
// $cityCode = $debitur->city_code;
|
||||
// $districtCode = $debitur->district_code;
|
||||
|
||||
// $cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null;
|
||||
|
||||
// if ($cekAlamat) {
|
||||
// $provinceCode = $cekAlamat['province_code'] ?? $provinceCode;
|
||||
// $cityCode = $cekAlamat['city_code'] ?? $cityCode;
|
||||
// $districtCode = $cekAlamat['district_code'] ?? $districtCode;
|
||||
// }
|
||||
|
||||
// $cities = City::where('province_code', $provinceCode)->get();
|
||||
// $districts = District::where('city_code', $cityCode)->get();
|
||||
// $villages = Village::where('district_code', $districtCode)->get();
|
||||
|
||||
// if ($forminspeksi) {
|
||||
// if (isset($forminspeksi['alamat']['sesuai']['province_code'])) {
|
||||
// $cities = City::where('province_code', $forminspeksi['alamat']['sesuai']['province_code'])->get();
|
||||
// }
|
||||
|
||||
// if (isset($forminspeksi['alamat']['sesuai']['city_code'])) {
|
||||
// $districts = District::where('city_code', $forminspeksi['alamat']['sesuai']['city_code'])->get();
|
||||
// }
|
||||
|
||||
// if (isset($forminspeksi['alamat']['sesuai']['district_code'])) {
|
||||
// $villages = Village::where('district_code', $forminspeksi['alamat']['sesuai']['district_code'])->get();
|
||||
// }
|
||||
// }
|
||||
|
||||
// return view('lpj::penilai.components.call-report', compact('permohonan', 'rap', 'provinces', 'cities',
|
||||
// 'districts',
|
||||
// 'villages','forminspeksi', 'noLpRAP', 'basicData','cekAlamat'));
|
||||
return view('lpj::penilai.components.call-report', compact('permohonan'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
@@ -981,8 +1061,12 @@ class PenilaiController extends Controller
|
||||
'rap'
|
||||
));
|
||||
// return $pdf;
|
||||
$cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan);
|
||||
$pdf->setPaper('A4', 'portrait');
|
||||
return $pdf->stream();
|
||||
return response($pdf->output(), 200)
|
||||
->header('Content-Type', 'application/pdf')
|
||||
->header('Content-Disposition', 'inline; filename="Laporan_' . $tipeLaporan . '_' .$permohonan->debiture->name . '_' . $cleanNomorLaporan .'.pdf"');
|
||||
// return $pdf->stream();
|
||||
} else {
|
||||
// $pdf = view('lpj::' . $viewLaporan, compact(
|
||||
$pdf = PDF::loadView('lpj::' . $viewLaporan, compact(
|
||||
@@ -1022,7 +1106,8 @@ class PenilaiController extends Controller
|
||||
'standard' => 'penilai.components.print-out-standard',
|
||||
'resume' => 'penilai.components.print-resume',
|
||||
'memo' => 'penilai.components.print-memo',
|
||||
'rap' => 'penilai.components.print-out-rap'
|
||||
'rap' => 'penilai.components.print-out-rap',
|
||||
'call-report' => 'penilai.components.print-out-call-report'
|
||||
];
|
||||
return $viewMap[$tipe] ?? 'penilai.components.print-resume';
|
||||
}
|
||||
|
||||
@@ -680,6 +680,7 @@ class PenilaianController extends Controller
|
||||
'penilaian.userPenilai' => function ($q) {
|
||||
$q->where('role', 'penilai')->with(['user', 'team.regions'])->first();
|
||||
},
|
||||
'penilai',
|
||||
'approveSo',
|
||||
'approveEo',
|
||||
'approveDd',
|
||||
@@ -833,7 +834,7 @@ class PenilaianController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function revisiLaporan($id, Request $request)
|
||||
public function revisiLaporan(Request $request,$id)
|
||||
{
|
||||
$permohonan = Permohonan::findOrFail($id);
|
||||
$permohonan->update([
|
||||
|
||||
@@ -14,6 +14,8 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Str;
|
||||
use Barryvdh\DomPDF\Facade\Pdf;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
@@ -77,16 +79,15 @@ use Modules\Lpj\Models\LaluLintasLokasi;
|
||||
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
|
||||
use Modules\Lpj\Http\Requests\SurveyorRequest;
|
||||
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
|
||||
use Modules\Lpj\Emails\SendEmail;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Modules\Lpj\Emails\SendJadwalKunjunganEmail;
|
||||
|
||||
class SurveyorController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('lpj::surveyor.index');
|
||||
@@ -831,8 +832,6 @@ private function isValidFormat($data)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function checkButtonStatus($id)
|
||||
{
|
||||
try {
|
||||
@@ -901,24 +900,24 @@ private function isValidFormat($data)
|
||||
'deskripsi_penilaian' => 'required'
|
||||
]);
|
||||
|
||||
// $user = ['user' => 'rustammajid76@gmail.com'];
|
||||
$penilaian = Penilaian::findOrFail($validate['id']);
|
||||
|
||||
// $emailData = [
|
||||
// 'email' => 'rustammajid76@gmail.com',
|
||||
// 'subject' => 'Test',
|
||||
// 'emailData' => '<h2>Hello, World!</h2><h2>This is the email content. Waktu Penilaian:</h2>'
|
||||
// ];
|
||||
$emailData = [
|
||||
'email' => $penilaian->permohonan->user->email,
|
||||
'subject' => 'Jadwal Kunjungan',
|
||||
'emailData' => $validate,
|
||||
|
||||
// $this->sendMessage($emailData, $user);
|
||||
];
|
||||
|
||||
$id = $request->input('id');
|
||||
$penilaian = Penilaian::findOrFail($id);
|
||||
Mail::to($emailData['email'])->send(new SendJadwalKunjunganEmail($emailData, $penilaian->permohonan->nomor_resitrasi, $penilaian->permohonan->debiture));
|
||||
|
||||
if ($validate['waktu_penilaian'] <= $penilaian->tanggal_kunjungan) {
|
||||
|
||||
if (Carbon::parse($validate['waktu_penilaian']) <= Carbon::parse($penilaian->tanggal_kunjungan)) {
|
||||
return redirect()
|
||||
->route('surveyor.index')
|
||||
->with('error', 'Waktu penilaian harus lebih besar dari tanggal assign.');
|
||||
}
|
||||
|
||||
$penilaian->update([
|
||||
'waktu_penilaian' => $validate['waktu_penilaian'],
|
||||
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
|
||||
@@ -1940,7 +1939,7 @@ private function isValidFormat($data)
|
||||
|
||||
private function updateJenisAsset($permohonan, $request)
|
||||
{
|
||||
$jenis_jaminan_id = $permohonan->debiture->documents->first()->jenis_jaminan_id;
|
||||
$jenis_jaminan_id = $permohonan->documents->first()->jenis_jaminan_id;
|
||||
DokumenJaminan::where('permohonan_id', $permohonan->id)
|
||||
->where('jenis_jaminan_id', $jenis_jaminan_id)
|
||||
->update([
|
||||
@@ -1950,7 +1949,7 @@ private function isValidFormat($data)
|
||||
|
||||
private function updateDetails($permohonan, $key, $newValue)
|
||||
{
|
||||
$document = $permohonan->debiture->documents->first();
|
||||
$document = $permohonan->documents->first();
|
||||
|
||||
if (!$document) {
|
||||
throw new \Exception("Document not found");
|
||||
@@ -1964,18 +1963,18 @@ private function isValidFormat($data)
|
||||
|
||||
$datas = json_decode($detailsUpdate->details, true) ?? [];
|
||||
|
||||
if (is_numeric($newValue)) {
|
||||
$newValue = [$key => $newValue];
|
||||
if (!is_scalar($newValue)) {
|
||||
throw new \InvalidArgumentException("New value must be a scalar (string/number)");
|
||||
}
|
||||
|
||||
if (!is_array($newValue)) {
|
||||
throw new \InvalidArgumentException("'{$key}' must be an array or valid JSON string");
|
||||
}
|
||||
|
||||
foreach ($newValue as $subKey => $value) {
|
||||
$datas[$subKey] = $value; // Update atau tambahkan key baru
|
||||
// Update nilai berdasarkan kunci
|
||||
if (array_key_exists($key, $datas)) {
|
||||
$datas[$key] = $newValue;
|
||||
} else {
|
||||
throw new \Exception("Key '{$key}' not found in details");
|
||||
}
|
||||
|
||||
// Simpan kembali ke database
|
||||
$detailsUpdate->update([
|
||||
'details' => json_encode($datas),
|
||||
]);
|
||||
@@ -2341,26 +2340,48 @@ private function isValidFormat($data)
|
||||
$data['hub_cadeb_penghuni'] => ($data['hub_cadeb_penghuni'] == 'sesuai') ? $data['hub_cadeb_penghuni_sesuai'] : $data['hub_penghuni_tidak_sesuai']
|
||||
],
|
||||
'pihak_bank' => $data['pihak_bank'] ?? null,
|
||||
'nomor_nib' => $data['nomor_nib'] ?? null,
|
||||
|
||||
'kordinat_lng' => $data['kordinat_lng'] ?? null,
|
||||
'kordinat_lat' => $data['kordinat_lat'] ?? null,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
private function updateFormData(array &$dataForm, array $data, $inspeksi, string $section, string $key, string $sesuaiKey, string $tidakSesuaiKey): void
|
||||
{
|
||||
if (isset($dataForm[$section][$key])) {
|
||||
$dataForm[$section][$key] = []; // Reset data
|
||||
|
||||
if ($data[$key] == 'sesuai') {
|
||||
$dataForm[$section][$key]['sesuai'] = $data[$sesuaiKey] ?? null;
|
||||
} elseif ($data[$key] == 'tidak sesuai') {
|
||||
$dataForm[$section][$key]['tidak sesuai'] = $data[$tidakSesuaiKey] ?? null;
|
||||
}
|
||||
|
||||
if ($inspeksi) {
|
||||
$inspeksi->data_form = json_encode($dataForm);
|
||||
$inspeksi->save();
|
||||
}
|
||||
} else {
|
||||
$data[$key] = $this->getFieldData($data, $key, true);
|
||||
}
|
||||
}
|
||||
|
||||
private function getTanahData(array $data): array
|
||||
{
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $data['permohonan_id'])->where('dokument_id', $data['dokument_id'])->first();
|
||||
|
||||
// Decode data_form dari inspeksi
|
||||
$dataForm = $inspeksi ? json_decode($inspeksi->data_form, true) : [];
|
||||
$this->updateFormData($dataForm, $data, $inspeksi, 'tanah', 'luas_tanah', 'luas_tanah_sesuai', 'luas_tanah_tidak_sesuai');
|
||||
$this->updateFormData($dataForm, $data, $inspeksi, 'tanah', 'hadap_mata_angin', 'hadap_mata_angin_sesuai', 'hadap_mata_angin_tidak_sesuai');
|
||||
// dd($dataForm);
|
||||
|
||||
return [
|
||||
'tanah' => [
|
||||
'luas_tanah' => $this->getFieldData(
|
||||
$data,
|
||||
'luas_tanah',
|
||||
true
|
||||
),
|
||||
'hadap_mata_angin' => [
|
||||
$data['hadap_mata_angin'] => $data['hadap_mata_angin'] == 'sesuai' ? $data['hadap_mata_angin_sesuai'] : $data['hadap_mata_angin_tidak_sesuai'] ?? null
|
||||
],
|
||||
'luas_tanah' => $dataForm['tanah']['luas_tanah'] ?? $data['luas_tanah'],
|
||||
'hadap_mata_angin' => $dataForm['tanah']['hadap_mata_angin'] ?? $data['hadap_mata_angin'],
|
||||
'bentuk_tanah' => $this->getFieldData(
|
||||
$data,
|
||||
'bentuk_tanah',
|
||||
@@ -2433,14 +2454,16 @@ private function isValidFormat($data)
|
||||
}
|
||||
}
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $data['permohonan_id'])->where('dokument_id', $data['dokument_id'])->first();
|
||||
|
||||
// Decode data_form dari inspeksi
|
||||
$dataForm = $inspeksi ? json_decode($inspeksi->data_form, true) : [];
|
||||
$this->updateFormData($dataForm, $data, $inspeksi, 'bangunan', 'luas_tanah_bagunan', 'luas_tanah_bagunan_sesuai', 'luas_tanah_bagunan_tidak_sesuai');
|
||||
|
||||
|
||||
return [
|
||||
'bangunan' => [
|
||||
'luas_tanah_bagunan' => $this->getFieldData(
|
||||
$data,
|
||||
'luas_tanah_bagunan',
|
||||
true
|
||||
),
|
||||
'luas_tanah_bagunan' => $dataForm['bangunan']['luas_tanah_bagunan'] ?? $data['luas_tanah_bagunan'],
|
||||
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
|
||||
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
|
||||
'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
|
||||
@@ -3115,6 +3138,7 @@ private function isValidFormat($data)
|
||||
|
||||
private function getUnitData($data, $request): array
|
||||
{
|
||||
|
||||
return [
|
||||
'action' => $data['action'] ?? null,
|
||||
'luas_unit' => $this->getFieldData(
|
||||
@@ -3196,26 +3220,32 @@ private function isValidFormat($data)
|
||||
bool $checkKesesuaian = false,
|
||||
?string $extraField = null
|
||||
): array {
|
||||
$result = [];
|
||||
|
||||
if ($checkKesesuaian) {
|
||||
return [
|
||||
$data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai'
|
||||
? ($data["{$fieldName}_sesuai"] ?? '')
|
||||
: ($data["{$fieldName}_tidak_sesuai"] ?? '')
|
||||
];
|
||||
$isSesuai = ($data[$fieldName] ?? '') === 'sesuai';
|
||||
$fieldKey = $isSesuai ? "{$fieldName}_sesuai" : "{$fieldName}_tidak_sesuai";
|
||||
|
||||
// Hanya simpan key yang dipilih
|
||||
if ($isSesuai) {
|
||||
$result['sesuai'] = $data[$fieldKey] ?? null;
|
||||
} else {
|
||||
$result['tidak sesuai'] = $data[$fieldKey] ?? null;
|
||||
}
|
||||
} else {
|
||||
$result[$fieldName] = $data[$fieldName] ?? null;
|
||||
|
||||
if ($extraField) {
|
||||
$result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null;
|
||||
}
|
||||
}
|
||||
|
||||
$result = [
|
||||
$fieldName => $data[$fieldName] ?? null
|
||||
];
|
||||
|
||||
if ($extraField) {
|
||||
$result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null;
|
||||
}
|
||||
|
||||
return $result;
|
||||
// Hapus key dengan nilai null untuk memastikan hanya key yang valid yang disimpan
|
||||
return array_filter($result, fn ($value) => $value !== null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function export(string $type)
|
||||
{
|
||||
$modelClass = $this->getModelClass($type);
|
||||
@@ -3256,10 +3286,11 @@ private function isValidFormat($data)
|
||||
->first();
|
||||
|
||||
if (!$inspeksi) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Data inspeksi tidak ditemukan'
|
||||
], 404);
|
||||
$inspeksi = new Inspeksi();
|
||||
$inspeksi->permohonan_id = $request->input('permohonan_id');
|
||||
$inspeksi->dokument_id = $request->input('document_id');
|
||||
$inspeksi->data_form = json_encode([]); // Inisialisasi data_form kosong
|
||||
$inspeksi->save();
|
||||
}
|
||||
|
||||
// Decode data form yang ada
|
||||
@@ -3416,36 +3447,43 @@ private function isValidFormat($data)
|
||||
|
||||
public function print_out_inspeksi($permohonan_id, $dokument_id, $jenis_jaminan_id)
|
||||
{
|
||||
$permohonan = $this->getPermohonanJaminanId(
|
||||
$permohonan_id,
|
||||
$dokument_id,
|
||||
$jenis_jaminan_id
|
||||
);
|
||||
// Ambil data permohonan dan data umum
|
||||
$permohonan = $this->getPermohonanJaminanId($permohonan_id, $dokument_id, $jenis_jaminan_id);
|
||||
$basicData = $this->getCommonData();
|
||||
|
||||
// Ambil data inspeksi
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $permohonan_id)
|
||||
->where('dokument_id', $dokument_id)
|
||||
->first();
|
||||
|
||||
$forminspeksi = null;
|
||||
|
||||
if ($inspeksi) {
|
||||
$forminspeksi = json_decode($inspeksi->data_form, true);
|
||||
if (!$inspeksi) {
|
||||
// Redirect jika inspeksi tidak ditemukan
|
||||
return redirect()->back()->with('error', 'Data inspeksi tidak ditemukan.');
|
||||
}
|
||||
|
||||
// Cek jika forminspeksi kosong
|
||||
// Decode data form inspeksi
|
||||
$forminspeksi = json_decode($inspeksi->data_form, true);
|
||||
|
||||
if (!$forminspeksi) {
|
||||
// Redirect kembali dengan pesan error
|
||||
return redirect()->back()->with('error', 'Silahkan isi terlebih dahulu form inspeksi');
|
||||
// Redirect jika data form inspeksi kosong
|
||||
return redirect()->back()->with('error', 'Silahkan isi terlebih dahulu form inspeksi.');
|
||||
}
|
||||
|
||||
// Pilih template PDF berdasarkan nama inspeksi
|
||||
$templateView = strtolower($inspeksi->name) === 'rap'
|
||||
? 'lpj::surveyor.components.print-out.main'
|
||||
: 'lpj::surveyor.components.print-out.main';
|
||||
|
||||
$pdf = PDF::loadView('lpj::surveyor.components.print-out.main', compact(
|
||||
'permohonan',
|
||||
'basicData',
|
||||
'forminspeksi',
|
||||
));
|
||||
// Generate PDF
|
||||
$pdf = PDF::loadView($templateView, compact('permohonan', 'basicData', 'forminspeksi'));
|
||||
$pdf->setPaper('A4', 'portrait');
|
||||
return $pdf->download('Laporan_data.pdf');
|
||||
|
||||
// Tentukan nama file PDF
|
||||
$namaDebiture = $permohonan->debiture->name . '-' . $permohonan->nomor_registrasi;
|
||||
$fileName = 'inspeksi-' . $namaDebiture . '-data.pdf';
|
||||
|
||||
return $pdf->download($fileName);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -293,12 +293,12 @@ class TenderController extends Controller
|
||||
}
|
||||
|
||||
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
||||
if ($permohonan->debiture->documents->isEmpty()) {
|
||||
if ($permohonan->documents->isEmpty()) {
|
||||
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -338,12 +338,12 @@ class TenderController extends Controller
|
||||
}
|
||||
|
||||
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
||||
if ($permohonan->debiture->documents->isEmpty()) {
|
||||
if ($permohonan->documents->isEmpty()) {
|
||||
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -535,7 +535,7 @@ class TenderController extends Controller
|
||||
return redirect()->route('otorisasitender.penawaran.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk Otorisasi Tender tidak bisa masuk penawaran lagi!');
|
||||
}
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -563,7 +563,7 @@ class TenderController extends Controller
|
||||
return redirect()->route('otorisasitender.penawaran.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk Otorisasi Tender tidak bisa masuk penawaran lagi!');
|
||||
}
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -602,7 +602,7 @@ class TenderController extends Controller
|
||||
return redirect()->route('otorisasitender.penawaran.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk Otorisasi Tender tidak bisa masuk penawaran lagi!');
|
||||
}
|
||||
|
||||
if ($permohonan->debiture->documents->isEmpty()) {
|
||||
if ($permohonan->documents->isEmpty()) {
|
||||
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
@@ -679,11 +679,18 @@ class TenderController extends Controller
|
||||
return redirect()->route('otorisasitender.penawaran.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk Otorisasi Tender tidak bisa masuk penawaran lagi!');
|
||||
}
|
||||
|
||||
if ($permohonan->debiture->documents->isEmpty()) {
|
||||
if ($permohonan->documents->isEmpty()) {
|
||||
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
|
||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->get();
|
||||
|
||||
|
||||
foreach ($detail_penawaran as $detail) {
|
||||
$this->kirimEmailKJPP($noreg,$detail->kjpp_rekanan_id);
|
||||
}
|
||||
|
||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)
|
||||
->where('status', '=', 1)
|
||||
->pluck('kjpp_rekanan_id')
|
||||
@@ -713,7 +720,7 @@ class TenderController extends Controller
|
||||
];
|
||||
});
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -724,6 +731,7 @@ class TenderController extends Controller
|
||||
$districts = District::where('code', $district_permohonan)->get();
|
||||
$cities = City::where('code', $city_permohonan)->get();
|
||||
$provinces = Province::where('code', $province_permohonan)->get();
|
||||
$user = auth::user();
|
||||
|
||||
$subject = 'Send Penawaran Email';
|
||||
|
||||
@@ -734,7 +742,8 @@ class TenderController extends Controller
|
||||
'villages' => $villages,
|
||||
'districts' => $districts,
|
||||
'cities' => $cities,
|
||||
'provinces' => $provinces
|
||||
'provinces' => $provinces,
|
||||
'user' => $user,
|
||||
])->render();
|
||||
|
||||
// Dispatch job untuk mengirim email
|
||||
@@ -745,7 +754,8 @@ class TenderController extends Controller
|
||||
$villages,
|
||||
$districts,
|
||||
$cities,
|
||||
$provinces
|
||||
$provinces,
|
||||
$user
|
||||
);
|
||||
|
||||
try {
|
||||
@@ -877,7 +887,7 @@ class TenderController extends Controller
|
||||
return redirect()->route('otorisasitender.penawaran.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk Otorisasi Tender tidak bisa masuk penawaran lagi!');
|
||||
}
|
||||
|
||||
if ($permohonan->debiture->documents->isEmpty()) {
|
||||
if ($permohonan->documents->isEmpty()) {
|
||||
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||
}
|
||||
@@ -907,7 +917,7 @@ class TenderController extends Controller
|
||||
|
||||
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
|
||||
|
||||
foreach ($permohonan->debiture->documents as $document) {
|
||||
foreach ($permohonan->documents as $document) {
|
||||
$village_permohonan = $document->village_code;
|
||||
$district_permohonan = $document->district_code;
|
||||
$city_permohonan = $document->city_code;
|
||||
@@ -918,6 +928,7 @@ class TenderController extends Controller
|
||||
$districts = District::where('code', $district_permohonan)->get();
|
||||
$cities = City::where('code', $city_permohonan)->get();
|
||||
$provinces = Province::where('code', $province_permohonan)->get();
|
||||
$user = auth()->user();
|
||||
|
||||
$subject = 'Send Penawaran K J P P Email';
|
||||
|
||||
@@ -929,7 +940,8 @@ class TenderController extends Controller
|
||||
'villages' => $villages,
|
||||
'districts' => $districts,
|
||||
'cities' => $cities,
|
||||
'provinces' => $provinces
|
||||
'provinces' => $provinces,
|
||||
'user' => $user,
|
||||
])->render();
|
||||
|
||||
SendPenawaranKJPPTenderJob::dispatch(
|
||||
@@ -940,7 +952,8 @@ class TenderController extends Controller
|
||||
$villages,
|
||||
$districts,
|
||||
$cities,
|
||||
$provinces
|
||||
$provinces,
|
||||
$user
|
||||
);
|
||||
|
||||
try {
|
||||
|
||||
58
app/Http/Requests/CustomFieldRequest.php
Normal file
58
app/Http/Requests/CustomFieldRequest.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Modules\Lpj\Models\CustomField;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class CustomFieldRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|max:255',
|
||||
'type' => 'required|in:text,select,radio,checkbox',
|
||||
'label' => 'nullable|max:255',
|
||||
'urutan_prioritas' => [
|
||||
'nullable',
|
||||
'integer',
|
||||
Rule::unique('custom_fields')->ignore($this->route('custom_field')),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function prepareValidationData($data){
|
||||
if(!$this->type){
|
||||
$this->merge(['type' => 'text']);
|
||||
}
|
||||
|
||||
if (!$this->urutan_prioritas) {
|
||||
$maxPrioritas = CustomField::max('urutan_prioritas') ?? 0;
|
||||
$this->merge(['urutan_prioritas' => $maxPrioritas + 1]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get custom messages for validator errors.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function messages()
|
||||
{
|
||||
return [
|
||||
'urutan_prioritas.unique' => 'Urutan prioritas sudah digunakan. Silakan pilih nomor lain.',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -570,7 +570,6 @@ class FormSurveyorRequest extends FormRequest
|
||||
'dokument_id' => 'required',
|
||||
'type' => 'required',
|
||||
'nomor_registrasi' => 'required',
|
||||
'nomor_nib' => 'nullable',
|
||||
'debitur_perwakilan' => 'required|array',
|
||||
'jenis_asset_name' => 'nullable|',
|
||||
'jenis_asset' => 'required',
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
'slug' => 'required|max:255',
|
||||
'custom_field' => 'nullable|max:255',
|
||||
'custom_field_type' => 'nullable|max:255',
|
||||
'custom_fields' => 'nullable|array',
|
||||
'custom_fields.*' => 'required|string|max:255',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -46,5 +48,10 @@
|
||||
'slug' => Str::slug($this->name),
|
||||
]);
|
||||
}
|
||||
|
||||
// Ensure custom_fields is always an array
|
||||
if (!is_array($this->custom_fields)) {
|
||||
$this->merge(['custom_fields' => []]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,12 @@ class SendPenawaranKJPPTenderJob implements ShouldQueue
|
||||
protected $districts;
|
||||
protected $cities;
|
||||
protected $provinces;
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*/
|
||||
public function __construct($kjpps, $dp1, $penawaran, $permohonan, $villages, $districts, $cities, $provinces)
|
||||
public function __construct($kjpps, $dp1, $penawaran, $permohonan, $villages, $districts, $cities, $provinces, $user)
|
||||
{
|
||||
$this->kjpps = $kjpps;
|
||||
$this->dp1 = $dp1; // Simpan keseluruhan array dp1, bukan dp1[0]
|
||||
@@ -36,6 +37,7 @@ class SendPenawaranKJPPTenderJob implements ShouldQueue
|
||||
$this->districts = $districts;
|
||||
$this->cities = $cities;
|
||||
$this->provinces = $provinces;
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,7 +52,8 @@ class SendPenawaranKJPPTenderJob implements ShouldQueue
|
||||
$this->villages,
|
||||
$this->districts,
|
||||
$this->cities,
|
||||
$this->provinces
|
||||
$this->provinces,
|
||||
$this->user // Kirim user ke email sebagai cc dan bcc
|
||||
);
|
||||
|
||||
$email->with([
|
||||
@@ -61,6 +64,7 @@ class SendPenawaranKJPPTenderJob implements ShouldQueue
|
||||
'districts' => $this->districts,
|
||||
'cities' => $this->cities,
|
||||
'provinces' => $this->provinces,
|
||||
'user' => $this->user // Kirim user ke email sebagai cc dan bcc
|
||||
]);
|
||||
|
||||
$send = Mail::to($this->kjpps)->send($email);
|
||||
|
||||
@@ -21,11 +21,12 @@ class SendPenawaranTenderJob implements ShouldQueue
|
||||
protected $districts;
|
||||
protected $cities;
|
||||
protected $provinces;
|
||||
protected $user; // Tidak perlu array [0] lagi
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*/
|
||||
public function __construct($kjpps, $penawaran, $permohonan, $villages, $districts, $cities, $provinces)
|
||||
public function __construct($kjpps, $penawaran, $permohonan, $villages, $districts, $cities, $provinces,$user)
|
||||
{
|
||||
$this->kjpps = $kjpps;
|
||||
$this->penawaran = $penawaran;
|
||||
@@ -34,6 +35,7 @@ class SendPenawaranTenderJob implements ShouldQueue
|
||||
$this->districts = $districts;
|
||||
$this->cities = $cities;
|
||||
$this->provinces = $provinces;
|
||||
$this->user = $user; // Simpan user yang dikirim email ke properti
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -49,6 +51,7 @@ class SendPenawaranTenderJob implements ShouldQueue
|
||||
'districts' => $this->districts,
|
||||
'cities' => $this->cities,
|
||||
'provinces' => $this->provinces,
|
||||
'user' => $this->user // Kirim user ke email ke properti sebagai additional data
|
||||
]);
|
||||
|
||||
Mail::to($this->kjpps)->send($email);
|
||||
|
||||
26
app/Models/CustomField.php
Normal file
26
app/Models/CustomField.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
// use Modules\Lpj\Database\Factories\CustomFieldFactory;
|
||||
|
||||
class CustomField extends Base
|
||||
{
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'type',
|
||||
'urutan_prioritas',
|
||||
'label'
|
||||
];
|
||||
|
||||
// protected static function newFactory(): CustomFieldFactory
|
||||
// {
|
||||
// // return CustomFieldFactory::new();
|
||||
// }
|
||||
}
|
||||
@@ -7,5 +7,14 @@
|
||||
class JenisLegalitasJaminan extends Base
|
||||
{
|
||||
protected $table = 'jenis_legalitas_jaminan';
|
||||
protected $fillable = ['code', 'name','slug','custom_field','custom_field_type'];
|
||||
protected $fillable = ['code', 'name','slug','custom_field','custom_field_type','custom_fields'];
|
||||
|
||||
protected $casts = [
|
||||
'custom_fields' => 'array',
|
||||
];
|
||||
|
||||
public function customFields()
|
||||
{
|
||||
return $this->hasMany(CustomField::class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?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::create('custom_fields', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('type');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
|
||||
$table->unsignedBigInteger('created_by')->nullable();
|
||||
$table->unsignedBigInteger('updated_by')->nullable();
|
||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('custom_fields');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
<?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('custom_fields', function (Blueprint $table) {
|
||||
$table->integer('urutan_prioritas')->nullable()->after('type');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('custom_fields', function (Blueprint $table) {
|
||||
$table->dropColumn('urutan_prioritas');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
<?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('custom_fields', function (Blueprint $table) {
|
||||
$table->string('label')->nullable()->after('name');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('custom_fields', function (Blueprint $table) {
|
||||
$table->dropColumn('label');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
<?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('jenis_legalitas_jaminan', function (Blueprint $table) {
|
||||
$table->string('custom_fields')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
|
||||
$table->dropColumn('custom_fields');
|
||||
});
|
||||
}
|
||||
};
|
||||
16
module.json
16
module.json
@@ -302,7 +302,10 @@
|
||||
"pemohon-ao",
|
||||
"pemohon-eo",
|
||||
"admin",
|
||||
"surveyor"
|
||||
"surveyor",
|
||||
"senior-officer",
|
||||
"EO Appraisal",
|
||||
"DD Appraisal"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -851,6 +854,17 @@
|
||||
"administrator",
|
||||
"admin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Custom Field",
|
||||
"path": "basicdata.custom-field",
|
||||
"classes": "",
|
||||
"attributes": [],
|
||||
"permission": "",
|
||||
"roles": [
|
||||
"administrator",
|
||||
"admin"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,35 +4,45 @@
|
||||
{{ Breadcrumbs::render('activity') }}
|
||||
@endsection
|
||||
@section('content')
|
||||
@push('styles')
|
||||
<style>
|
||||
.dropdown {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.dropdowns-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
min-width: 224px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||
z-index: 1;
|
||||
}
|
||||
.dropdown:hover .dropdowns-content {
|
||||
display: block;
|
||||
}
|
||||
.dropdowns-content a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
.dropdowns-content a:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
</style>
|
||||
@push('styles')
|
||||
<style>
|
||||
.dropdown {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@endpush
|
||||
.dropdowns-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
min-width: 224px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
margin-top: 0;
|
||||
/* Hilangkan jarak antara tombol dan dropdown */
|
||||
}
|
||||
|
||||
.dropdown:hover .dropdowns-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Tambahkan hover untuk elemen dropdown agar tidak hilang */
|
||||
.dropdowns-content:hover {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dropdowns-content a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dropdowns-content a:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
</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="card-header bg-agi-50" id="basic_settings">
|
||||
@@ -219,7 +229,8 @@
|
||||
tujuan_penilaian_id: {
|
||||
title: 'Tujuan Penilaian',
|
||||
render: (item, data) => {
|
||||
return data.tujuan_penilaian && data.tujuan_penilaian.name ? `${data.tujuan_penilaian.name}` : '-';
|
||||
return data.tujuan_penilaian && data.tujuan_penilaian.name ?
|
||||
`${data.tujuan_penilaian.name}` : '-';
|
||||
},
|
||||
},
|
||||
status: {
|
||||
@@ -249,17 +260,34 @@
|
||||
return `<span class="badge ${badgeClass}">${data.status}</span>`;
|
||||
},
|
||||
},
|
||||
|
||||
actions: {
|
||||
title: 'Action',
|
||||
render: (item, data) => `
|
||||
<div class="flex flex-nowrap justify-center">
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="activity/${data.id}/show">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>
|
||||
</div>`,
|
||||
title: 'Action',
|
||||
render: (item, data) => {
|
||||
const status = data.status; // Anggap status berada di dalam objek data
|
||||
const dokumenjaminan = data.dokumenjaminan || [];
|
||||
|
||||
return `
|
||||
<div class="flex flex-nowrap justify-center">
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="activity/${data.id}/show" title="Lihat Detail">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>
|
||||
${
|
||||
['survey', 'done', 'proses-laporan', 'laporan', 'paparan'].includes(status) ?
|
||||
dokumenjaminan.map(dokumen => {
|
||||
return `
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-info" href="surveyor/print-out-inspeksi/${data.id}/${dokumen.id}/${dokumen.jenis_jaminan_id}" title="Print Inspeksi Permohonan">
|
||||
<i class="ki-outline ki-printer"></i>
|
||||
</a>
|
||||
`;
|
||||
}).join('') : ''
|
||||
}
|
||||
},
|
||||
</div>
|
||||
`;
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
let dataTable = new KTDataTable(element, dataTableOptions);
|
||||
@@ -306,7 +334,5 @@
|
||||
const allChecked = Array.from(statusCheckboxes).every(cb => cb.checked);
|
||||
selectAllCheckbox.checked = allChecked;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@@ -185,13 +185,13 @@
|
||||
</div>
|
||||
@endif
|
||||
<div data-accordion="true">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
<div class="accordion-item {{ count($permohonan->debiture->documents) == 1 ? 'active' : '' }} [&:not(:last-child)]:border-b border-b-gray-200"
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<div class="accordion-item {{ count($permohonan->documents) == 1 ? 'active' : '' }} [&:not(:last-child)]:border-b border-b-gray-200"
|
||||
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">
|
||||
@if (count($permohonan->debiture->documents) > 1)
|
||||
@if (count($permohonan->documents) > 1)
|
||||
Jaminan {{ $loop->index + 1 }}
|
||||
@else
|
||||
Jaminan
|
||||
@@ -202,7 +202,7 @@
|
||||
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
|
||||
</i>
|
||||
</button>
|
||||
<div class="accordion-content {{ count($permohonan->debiture->documents) > 1 ? 'hidden' : '' }}"
|
||||
<div class="accordion-content {{ count($permohonan->documents) > 1 ? 'hidden' : '' }}"
|
||||
id="accordion_detail_jaminan_{{ $loop->index }}">
|
||||
|
||||
@if (!isset($status))
|
||||
|
||||
@@ -74,8 +74,8 @@
|
||||
<label class="form-label max-w-56">Jenis Aset</label>
|
||||
<div>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
<p class="text-2sm text-gray-700">{{ $item->jenisJaminan->name }}</p>
|
||||
<input type="hidden" name="jenis_asset_name"
|
||||
value="{{ $item->jenisJaminan->name }}">
|
||||
@@ -218,7 +218,7 @@
|
||||
<label class="form-label max-w-56">Pemilik Jaminan</label>
|
||||
<div>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@php
|
||||
$hubCadebPemilik = $dokumen->pemilik->hubungan_pemilik->name ?? 'N/A';
|
||||
@endphp
|
||||
@@ -343,13 +343,19 @@
|
||||
<h3 class="card-title">
|
||||
{{ $title ?? 'Data Jaminan' }}
|
||||
</h3>
|
||||
@php
|
||||
use Illuminate\Support\Facades\Route;
|
||||
@endphp
|
||||
<div class="flex items-center gap-2">
|
||||
@if (isset($id))
|
||||
<a href="{{ route($backLink, ['id' => $id]) }}" class="btn btn-xs btn-info">
|
||||
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
|
||||
Route::currentRouteName('otorisator.show'))
|
||||
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => 'Pelaporan']) }}"
|
||||
class="btn btn-xs btn-info">
|
||||
<i class="ki-filled ki-exit-left"></i> Back
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ url()->previous() }}" class="btn btn-xs btn-info">
|
||||
|
||||
@elseif (Auth::user()->hasAnyRole(['administrator','surveyor']) && Route::currentRouteName('penilai.show'))
|
||||
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
|
||||
<i class="ki-filled ki-exit-left"></i> Back
|
||||
</a>
|
||||
@endif
|
||||
@@ -367,7 +373,7 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Alamat Object</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ formatAlamat($dokumen->pemilik) }}
|
||||
{{ formatAlamat($dokumen->pemilik) }}
|
||||
@@ -545,7 +551,7 @@
|
||||
|
||||
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@@ -616,8 +622,8 @@
|
||||
<label for="province" class="form-label max-w-56">
|
||||
{{ $labelNilai[$item] }}
|
||||
</label>
|
||||
<input type="text" id="luas_{{ $item }}"
|
||||
class="input w-full" name="luas_{{ $item }}"
|
||||
<input type="text" id="luas_{{ $item }}" class="input w-full"
|
||||
name="luas_{{ $item }}"
|
||||
value="{{ old('luas_' . $item, $lpjData['luas_' . $item] ?? null) }}"
|
||||
oninput="calculateTotal()">
|
||||
</div>
|
||||
@@ -670,18 +676,24 @@
|
||||
Tambah NPW </button>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
<label for="total_nilai_pasar_wajar" class="form-label uppercase">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">
|
||||
<input type="text" id="likuidasi" name="likuidasi"
|
||||
class="input w-full currency-format"
|
||||
value="{{ old('likuidasi', $lpjData['likuidasi'] ?? null) }}"
|
||||
oninput="calculateTotal()">
|
||||
<div class="w-full">
|
||||
<label class="input">
|
||||
|
||||
<input type="text" id="likuidasi" name="likuidasi"
|
||||
class=" w-full currency"
|
||||
value="{{ old('likuidasi', $lpjData['likuidasi'] ?? null) }}"
|
||||
oninput="calculateTotal()">
|
||||
<i class="">%
|
||||
</i>
|
||||
</label>
|
||||
<span class="text-xs"> <span class="text-xs text-danger">*</span> Masukkan Angka Saja </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="province" class="">X</label>
|
||||
@@ -795,6 +807,10 @@
|
||||
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
const datas = @json($forminspeksi);
|
||||
console.log(datas);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
|
||||
@@ -971,11 +987,34 @@
|
||||
|
||||
});
|
||||
|
||||
function formatPercentage(value) {
|
||||
// Hapus semua karakter kecuali angka dan koma
|
||||
let numericValue = value.replace(/[^0-9,]/g, '');
|
||||
|
||||
// Pastikan hanya satu koma yang ada
|
||||
let parts = numericValue.split(',');
|
||||
if (parts.length > 2) {
|
||||
numericValue = parts[0] + ',' + parts[1]; // Pertahankan hanya bagian pertama dan kedua
|
||||
}
|
||||
|
||||
// Jika nilai melebihi 100, batasi menjadi 100
|
||||
let numericFloat = parseFloat(numericValue.replace(',', '.')) || 0;
|
||||
if (numericFloat > 100) {
|
||||
numericFloat = 100;
|
||||
numericValue = '100';
|
||||
}
|
||||
|
||||
// Kembalikan nilai dengan simbol %
|
||||
return numericValue;
|
||||
}
|
||||
function calculateTotal() {
|
||||
const parseInput = (value) => parseFloat(value.replace(/[^0-9]/g, '')) || 0;
|
||||
|
||||
// Bagian Likuidasi
|
||||
let persentaseLikuidasi = parseInput(document.getElementById('likuidasi').value);
|
||||
let persentaseLikuidasiInput = document.getElementById('likuidasi');
|
||||
let persentaseLikuidasi = parseInput(persentaseLikuidasiInput.value);
|
||||
persentaseLikuidasiInput.value = formatPercentage(persentaseLikuidasiInput.value);
|
||||
|
||||
let totalNilaiPasarLikuidasi = document.querySelector('input[name="likuidasi_nilai_1"]');
|
||||
let totalLikuidasi = document.querySelector('input[name="likuidasi_nilai_2"]');
|
||||
|
||||
@@ -990,7 +1029,7 @@
|
||||
let totalNilaiPasarWajar = 0;
|
||||
|
||||
// Perhitungan untuk input yang sudah ada
|
||||
const jenisAsetData = @json($jenisAset);
|
||||
const jenisAsetData = @json($jenisAset);
|
||||
|
||||
// Menentukan input yang akan dihitung berdasarkan jenis aset
|
||||
let standardInputs = [];
|
||||
@@ -1085,7 +1124,7 @@
|
||||
confirmButtonText: 'OK'
|
||||
}).then((response) => {
|
||||
if (response.isConfirmed) {
|
||||
// window.location.reload();
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@@ -1114,16 +1153,18 @@
|
||||
}
|
||||
|
||||
function formatCurrencyInput(input) {
|
||||
const value = input.value.replace(/[^0-9]/g, ''); // Hapus karakter non-angka
|
||||
if (!value) {
|
||||
input.value = ''; // Kosongkan jika tidak ada angka
|
||||
return;
|
||||
const value = input.value.replace(/[^0-9]/g, ''); // Hapus karakter non-angka
|
||||
if (!value) {
|
||||
input.value = ''; // Kosongkan jika tidak ada angka
|
||||
return;
|
||||
}
|
||||
|
||||
// Format ke mata uang
|
||||
const formattedValue = new Intl.NumberFormat('id-ID', {
|
||||
style: 'currency',
|
||||
currency: 'IDR'
|
||||
}).format(value);
|
||||
|
||||
input.value = formattedValue;
|
||||
}
|
||||
|
||||
// Format ke mata uang
|
||||
const formattedValue = new Intl.NumberFormat('id-ID', { style: 'currency', currency: 'IDR' }).format(value);
|
||||
|
||||
input.value = formattedValue;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<!-- resources/views/signatures/components/signature-pad.blade.php -->
|
||||
<div class="text-center border">
|
||||
<h3 class="signature-title">{{ ucfirst($type) }}</h3>
|
||||
@if (($type === 'penilai' && Auth::user()->sign))
|
||||
|
||||
<img src="{{ $type === 'penilai'
|
||||
? asset('storage/signatures/' . Auth::user()->id . '/' . Auth::user()->sign)
|
||||
: asset('storage/signatures/' . $user->id . '/' . $user->sign) }}"
|
||||
alt="E-Sign" class="signature-pad" style="width: 400px; height: 220px;">
|
||||
@else
|
||||
<canvas id="signature-pad-{{ $type }}" class="signature-pad" width="400" height="200"></canvas>
|
||||
<div class="button-container py-2">
|
||||
<button type="button" id="save-{{ $type }}" class="btn btn-xs btn-primary">Save</button>
|
||||
@@ -8,4 +15,5 @@
|
||||
<button type="button" id="delete-{{$type}}" class="btn btn-xs btn-danger">Delete</button>
|
||||
</div>
|
||||
<div id="status-{{ $type }}" class="status-message"></div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
89
resources/views/custom_fields/create.blade.php
Normal file
89
resources/views/custom_fields/create.blade.php
Normal file
@@ -0,0 +1,89 @@
|
||||
@php
|
||||
$route = explode('.', Route::currentRouteName());
|
||||
@endphp
|
||||
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
@if(isset($customField->id))
|
||||
<form action="{{ route('basicdata.custom-field.update', $customField->id) }}" method="POST">
|
||||
<input type="hidden" name="id" value="{{ $customField->id }}">
|
||||
@method('PUT')
|
||||
@else
|
||||
<form method="POST" action="{{ route('basicdata.custom-field.store') }}">
|
||||
@endif
|
||||
@csrf
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
{{ isset($customField->id) ? 'Edit' : 'Tambah' }} Custom Field
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('basicdata.custom-field.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">
|
||||
<label class="form-label max-w-56">
|
||||
Name
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $customField->name ?? '' }}">
|
||||
@error('name')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Label
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('label') border-danger bg-danger-light @enderror" type="text" name="label" value="{{ $customField->label ?? '' }}">
|
||||
@error('label')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Type
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select class="input @error('type') border-danger bg-danger-light @enderror" name="type">
|
||||
<option value="text" {{ (isset($customField->type) && $customField->type == 'text') ? 'selected' : '' }}>Text</option>
|
||||
<option value="radio" {{ (isset($customField->type) && $customField->type == 'radio') ? 'selected' : '' }}>Radio</option>
|
||||
<option value="number" {{ (isset($customField->type) && $customField->type == 'select') ? 'selected' : '' }}>Select</option>
|
||||
<option value="option" {{ (isset($customField->type) && $customField->type == 'checkbox') ? 'selected' : '' }}>Checkbox</option>
|
||||
</select>
|
||||
@error('type')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Urutan Prioritas
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('urutan_prioritas') border-danger bg-danger-light @enderror" type="number" name="urutan_prioritas" value="{{ $customField->urutan_prioritas ?? $urutan_prioritas }}">
|
||||
@error('urutan_prioritas')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
153
resources/views/custom_fields/index.blade.php
Normal file
153
resources/views/custom_fields/index.blade.php
Normal file
@@ -0,0 +1,153 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render('basicdata.custom-field') }}
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="grid">
|
||||
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10" data-datatable-state-save="false" id="custom-field-table" data-api-url="{{ route('basicdata.custom-field.datatables') }}">
|
||||
<div class="card-header bg-agi-50 py-5 flex-wrap">
|
||||
<h3 class="card-title">
|
||||
Daftar Custom Field
|
||||
</h3>
|
||||
<div class="flex flex-wrap gap-2 lg:gap-5">
|
||||
<div class="flex">
|
||||
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
|
||||
<input placeholder="Search Custom Field" id="search" type="text" value="">
|
||||
</label>
|
||||
</div>
|
||||
<div class="flex flex-wrap gap-2.5">
|
||||
<div class="h-[24px] border border-r-gray-200"></div>
|
||||
<a class="btn btn-sm btn-light" href="{{ route('basicdata.custom-field.export') }}"> Export to Excel </a>
|
||||
<a class="btn btn-sm btn-primary" href="{{ route('basicdata.custom-field.create') }}"> Tambah Custom Field </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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" data-datatable-table="true">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-14">
|
||||
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
|
||||
</th>
|
||||
<th class="min-w-[250px]" data-datatable-column="name">
|
||||
<span class="sort"> <span class="sort-label"> Custom Field </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[250px]" data-datatable-column="type">
|
||||
<span class="sort"> <span class="sort-label"> Type </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[250px]" data-datatable-column="urutan_prioritas">
|
||||
<span class="sort"> <span class="sort-label"> Urutan Prioritas </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</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">
|
||||
Show
|
||||
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
|
||||
</div>
|
||||
<div class="flex items-center gap-4">
|
||||
<span data-datatable-info="true"> </span>
|
||||
<div class="pagination" data-datatable-pagination="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
function deleteData(data) {
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: "You won't be able to revert this!",
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Yes, delete it!'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax(`basic-data/custom-field/${data}`, {
|
||||
type: 'DELETE'
|
||||
}).then((response) => {
|
||||
swal.fire('Deleted!', 'User has been deleted.', 'success').then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
}).catch((error) => {
|
||||
console.error('Error:', error);
|
||||
Swal.fire('Error!', 'An error occurred while deleting the file.', 'error');
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
const element = document.querySelector('#custom-field-table');
|
||||
const searchInput = document.getElementById('search');
|
||||
|
||||
const apiUrl = element.getAttribute('data-api-url');
|
||||
const dataTableOptions = {
|
||||
apiEndpoint: apiUrl,
|
||||
pageSize: 5,
|
||||
columns: {
|
||||
select: {
|
||||
render: (item, data, context) => {
|
||||
const checkbox = document.createElement('input');
|
||||
checkbox.className = 'checkbox checkbox-sm';
|
||||
checkbox.type = 'checkbox';
|
||||
checkbox.value = data.id.toString();
|
||||
checkbox.setAttribute('data-datatable-row-check', 'true');
|
||||
return checkbox.outerHTML.trim();
|
||||
},
|
||||
},
|
||||
label: {
|
||||
title: 'Custom Field',
|
||||
},
|
||||
type: {
|
||||
title: 'Type',
|
||||
},
|
||||
urutan_prioritas: {
|
||||
title: 'Urutan Prioritas',
|
||||
},
|
||||
actions: {
|
||||
title: 'Status',
|
||||
render: (item, data) => {
|
||||
return `<div class="flex flex-nowrap justify-center">
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-info" href="basic-data/custom-field/${data.id}/edit">
|
||||
<i class="ki-outline ki-notepad-edit"></i>
|
||||
</a>
|
||||
<a onclick="deleteData(${data.id})" class="delete btn btn-sm btn-icon btn-clear btn-danger">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</a>
|
||||
</div>`;
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
let dataTable = new KTDataTable(element, dataTableOptions);
|
||||
// Custom search functionality
|
||||
searchInput.addEventListener('input', function () {
|
||||
const searchValue = this.value.trim();
|
||||
dataTable.search(searchValue, true);
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Nomor Permohonan
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<p class="text-base text-gray-700 font-bold">
|
||||
{{ $permohonan->nomor_registrasi ?? "-" }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Nomor Permohonan
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<p class="text-base text-gray-700 font-bold">
|
||||
{{ $permohonan->nomor_registrasi ?? "-" }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Pemilik Jaminan
|
||||
@@ -314,38 +314,30 @@
|
||||
</div>
|
||||
|
||||
@if($detail->details)
|
||||
@if($detail->jenisLegalitasJaminan->custom_field)
|
||||
@php $custom_field = json_decode($detail->details,true) @endphp
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input" type="text" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" value="{{ $custom_field[$detail->jenisLegalitasJaminan->custom_field] ?? '' }}">
|
||||
@if($detail->jenisLegalitasJaminan->custom_fields)
|
||||
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ getCustomField($key)->label ?? "" }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{getCustomField($key)->name}}]" value="{{ json_decode($detail->details)->{getCustomField($key)->name} ?? '' }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
@else
|
||||
@if($detail->jenisLegalitasJaminan->custom_field)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if($detail->jenisLegalitasJaminan->custom_field_type === "text")
|
||||
<input class="input" type="text" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "number")
|
||||
<input class="input" type="number" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "date")
|
||||
<input class="input" type="date" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "textarea")
|
||||
<textarea class="textarea" rows="3" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2"></textarea>
|
||||
@else
|
||||
<input class="input" type="text" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||
@endif
|
||||
@if($detail->jenisLegalitasJaminan->custom_fields)
|
||||
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ getCustomField($key)->label }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{getCustomField($key)->name}}]" placeholder="...">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@@ -393,25 +385,17 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($item->custom_field)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ str_replace('_',' ',$item->custom_field) }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if($item->custom_field_type === "text")
|
||||
<input class="input" type="text" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||
@elseif($item->custom_field_type === "number")
|
||||
<input class="input" type="number" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||
@elseif($item->custom_field_type === "date")
|
||||
<input class="input" type="date" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||
@elseif($item->custom_field_type === "textarea")
|
||||
<textarea class="textarea" rows="3" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2"></textarea>
|
||||
@else
|
||||
<input class="input" type="text" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||
@endif
|
||||
@if($item->custom_fields)
|
||||
@foreach($item->custom_fields as $field)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ getCustomField($field)->label }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input" type="text" name="custom_field[{{$item->id}}][{{getCustomField($field)->name}}]" placeholder="...">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
@@ -437,13 +421,13 @@
|
||||
@push('scripts')
|
||||
{{--Pemilik Jaminan--}}
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const namaSertifikatDiv = document.getElementById("nama_sertifikat");
|
||||
|
||||
// Function to add delete event listeners to existing buttons
|
||||
function addDeleteListeners() {
|
||||
document.querySelectorAll(".delete-button").forEach(button => {
|
||||
button.addEventListener("click", function() {
|
||||
button.addEventListener("click", function () {
|
||||
this.closest(".flex.items-baseline.flex-wrap.lg\\:flex-nowrap.gap-2\\.5.mb-5").remove();
|
||||
});
|
||||
});
|
||||
@@ -452,7 +436,7 @@
|
||||
// Add delete listeners to existing buttons
|
||||
addDeleteListeners();
|
||||
|
||||
document.getElementById("tambah_sertifikat").addEventListener("click", function() {
|
||||
document.getElementById("tambah_sertifikat").addEventListener("click", function () {
|
||||
const newDiv = document.createElement("div");
|
||||
newDiv.className = "flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5";
|
||||
newDiv.innerHTML = `
|
||||
@@ -547,16 +531,16 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
${item.custom_field ? `
|
||||
${item.custom_fields && item.custom_fields.length > 0 ? item.custom_fields.map(field => `
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
${item.custom_field.replace(/_/g, " ")}
|
||||
${field.label}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
${getCustomFieldInput(item.custom_field_type, item.custom_field, item.details)}
|
||||
${getCustomFieldInput(field.type, field.name, item.details, item.id)}
|
||||
</div>
|
||||
</div>
|
||||
` : ""}
|
||||
`).join('') : ""}
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
@@ -637,19 +621,19 @@
|
||||
return dokumenNomor;
|
||||
}
|
||||
|
||||
function getCustomFieldInput(type, fieldName, value) {
|
||||
function getCustomFieldInput(type, fieldName, value, itemId) {
|
||||
value = value ? JSON.parse(value)[fieldName] || "" : "";
|
||||
switch (type) {
|
||||
case "text":
|
||||
return `<input class="input" type="text" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||
return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
|
||||
case "number":
|
||||
return `<input class="input" type="number" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||
return `<input class="input" type="number" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
|
||||
case "date":
|
||||
return `<input class="input" type="date" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||
return `<input class="input" type="date" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
|
||||
case "textarea":
|
||||
return `<textarea class="textarea" rows="3" name="custom_field[][${fieldName}]">${value}</textarea>`;
|
||||
return `<textarea class="textarea" rows="3" name="custom_field[${itemId}][${fieldName}]">${value}</textarea>`;
|
||||
default:
|
||||
return `<input class="input" type="text" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||
return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
118
resources/views/emails/jadwal-kunjungan.blade.php
Normal file
118
resources/views/emails/jadwal-kunjungan.blade.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Jadwal Kunjungan</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #f3f4f6;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.email-container {
|
||||
max-width: 42rem;
|
||||
margin: 0 auto;
|
||||
background-color: white;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
padding-bottom: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
color: #1f2937;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: #4b5563;
|
||||
margin: 0.25rem 0 0 0;
|
||||
}
|
||||
|
||||
.content-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.content-row:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 8rem;
|
||||
font-weight: 500;
|
||||
color: #374151;
|
||||
}
|
||||
|
||||
.value {
|
||||
color: #111827;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
border-top: 1px solid #e5e7eb;
|
||||
font-size: 0.875rem;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.content-row {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.label {
|
||||
margin-bottom: 0.5rem;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="email-container">
|
||||
<!-- Header -->
|
||||
<div class="header">
|
||||
<h1 class="title">Jadwal Kunjungan Penilaian</h1>
|
||||
<p class="subtitle">Dikirim melalui Sistem Penilaian</p>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="content">
|
||||
<div class="content-row">
|
||||
<span class="label">ID Penilaian:</span>
|
||||
<span class="value">{{ $id }}</span>
|
||||
</div>
|
||||
|
||||
<div class="content-row">
|
||||
<span class="label">Waktu Penilaian:</span>
|
||||
<span class="value">{{ \Carbon\Carbon::parse($waktu_penilaian)->format('d F Y H:i') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="content-row">
|
||||
<span class="label">Deskripsi:</span>
|
||||
<p class="value">{{ $deskripsi_penilaian }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="footer">
|
||||
<p>Email ini dikirim secara otomatis, mohon tidak membalas email ini.</p>
|
||||
<p style="margin-top: 0.5rem;">© {{ date('Y') }} Sistem Penilaian. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -92,28 +92,28 @@
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Jenis Legalitas Jaminan
|
||||
</label>
|
||||
<div class="grid grid-cols-3 lg:grid-cols-4 w-full gap-2.5">
|
||||
@foreach ($jenisLegalitasJaminan as $row)
|
||||
<label class="switch">
|
||||
@if ( isset($jenisJaminan) && !empty(json_decode($jenisJaminan->jenis_legalitas_jaminan_id, true)))
|
||||
<input type="checkbox" @if (in_array($row->code, json_decode($jenisJaminan->jenis_legalitas_jaminan_id, true))) {{ 'checked' }} @endif
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Jenis Legalitas Jaminan
|
||||
</label>
|
||||
<div class="grid grid-cols-3 lg:grid-cols-4 w-full gap-2.5">
|
||||
@foreach ($jenisLegalitasJaminan as $row)
|
||||
<label class="switch">
|
||||
@if ( isset($jenisJaminan) && !empty(json_decode($jenisJaminan->jenis_legalitas_jaminan_id, true)))
|
||||
<input type="checkbox" @if (in_array($row->code, json_decode($jenisJaminan->jenis_legalitas_jaminan_id, true))) {{ 'checked' }} @endif
|
||||
value="{{ $row->code }}" name="jenis_legalitas_jaminan_id[]" />
|
||||
@else
|
||||
<input type="checkbox" value="{{ $row->code }}"
|
||||
name="jenis_legalitas_jaminan_id[]" />
|
||||
@endif
|
||||
<span class="switch-label">
|
||||
@else
|
||||
<input type="checkbox" value="{{ $row->code }}"
|
||||
name="jenis_legalitas_jaminan_id[]" />
|
||||
@endif
|
||||
<span class="switch-label">
|
||||
{{ $row->name }}
|
||||
</span>
|
||||
</label>
|
||||
@endforeach
|
||||
</label>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Save
|
||||
|
||||
@@ -10,83 +10,107 @@
|
||||
<form action="{{ route('basicdata.jenis-legalitas-jaminan.update', $jenisLegalitasJaminan->id) }}" method="POST">
|
||||
<input type="hidden" name="id" value="{{ $jenisLegalitasJaminan->id }}">
|
||||
@method('PUT')
|
||||
@else
|
||||
<form method="POST" action="{{ route('basicdata.jenis-legalitas-jaminan.store') }}">
|
||||
@endif
|
||||
@csrf
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
{{ isset($jenisLegalitasJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Legalitas Jaminan
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('basicdata.jenis-legalitas-jaminan.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">
|
||||
@if(isset($jenisLegalitasJaminan->id))
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Code
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
|
||||
@error('code')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Name
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
|
||||
@error('name')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<form method="POST" action="{{ route('basicdata.jenis-legalitas-jaminan.store') }}">
|
||||
@endif
|
||||
@csrf
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
{{ isset($jenisLegalitasJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Legalitas Jaminan
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('basicdata.jenis-legalitas-jaminan.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">
|
||||
@if(isset($jenisLegalitasJaminan->id))
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Code
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
|
||||
@error('code')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Name
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
|
||||
@error('name')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tambahkan inputan custom_field -->
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Custom Field
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('custom_field') border-danger bg-danger-light @enderror" type="text" name="custom_field" value="{{ $jenisLegalitasJaminan->custom_field ?? '' }}">
|
||||
@error('custom_field')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<!-- Tambahkan inputan custom_field -->
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Custom Field
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input @error('custom_field') border-danger bg-danger-light @enderror" type="text" name="custom_field" value="{{ $jenisLegalitasJaminan->custom_field ?? '' }}">
|
||||
@error('custom_field')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tambahkan inputan custom_field_type -->
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Custom Field Type
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select class="input tomselect @error('custom_field_type') border-danger bg-danger-light @enderror" name="custom_field_type">
|
||||
<option value="">Pilih Tipe</option>
|
||||
<option value="text" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'text') ? 'selected' : '' }}>Text</option>
|
||||
<option value="number" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'number') ? 'selected' : '' }}>Number</option>
|
||||
<option value="date" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'date') ? 'selected' : '' }}>Date</option>
|
||||
</select>
|
||||
@error('custom_field_type')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<!-- Tambahkan inputan custom_field_type -->
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Custom Field Type
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<select class="input tomselect @error('custom_field_type') border-danger bg-danger-light @enderror" name="custom_field_type">
|
||||
<option value="">Pilih Tipe</option>
|
||||
<option value="text" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'text') ? 'selected' : '' }}>Text</option>
|
||||
<option value="number" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'number') ? 'selected' : '' }}>Number</option>
|
||||
<option value="date" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'date') ? 'selected' : '' }}>Date</option>
|
||||
</select>
|
||||
@error('custom_field_type')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Custom Fields
|
||||
</label>
|
||||
<div class="grid grid-cols-3 lg:grid-cols-4 w-full gap-2.5">
|
||||
@foreach($customFields as $customField)
|
||||
<label class="switch">
|
||||
@if ( isset($jenisLegalitasJaminan) && !empty($jenisLegalitasJaminan->custom_fields))
|
||||
<input type="checkbox" @if (in_array($customField->id, $jenisLegalitasJaminan->custom_fields))
|
||||
{{ 'checked' }}
|
||||
@endif
|
||||
value="{{ $customField->id }}" name="custom_fields[]"/>
|
||||
@else
|
||||
<input type="checkbox" value="{{ $customField->id }}"
|
||||
name="custom_fields[]"/>
|
||||
@endif
|
||||
<span class="switch-label">
|
||||
{{ $customField->urutan_prioritas.'. '.$customField->label }}
|
||||
</span>
|
||||
</label>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="flex justify-end">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -189,6 +189,8 @@
|
||||
const inspeksiId = data.debiture?.documents[0]?.inspeksi[0]?.id || '-';
|
||||
const dokumenID = data.debiture?.documents[0]?.id || '-';
|
||||
const jenisJaminanID = data.debiture?.documents[0]?.jenis_jaminan_id || '-';
|
||||
const typePenilaian = data.penilai?.type_penilai || '';
|
||||
const type = data.penilai?.type || '';
|
||||
let laporanButton = '';
|
||||
let resumeButton = '';
|
||||
|
||||
@@ -202,17 +204,23 @@
|
||||
if(data.nilai_liquidasi==null) {
|
||||
laporanButton = `
|
||||
<a href="laporan/${data.id}" class="btn btn-sm btn-dark">
|
||||
Laporn
|
||||
Laporan
|
||||
</a>`;
|
||||
}
|
||||
|
||||
console.log(data.nilai_liquidasi);
|
||||
if(data.status_bayar=="sudah_bayar" && data.nilai_liquidasi >0) {
|
||||
|
||||
laporanButton = `
|
||||
<a href="{{ route('penilai.print-out') }}?permohonanId=${data.id}&documentId=${dokumenID}&inspeksiId=${inspeksiId}&jaminanId=${jenisJaminanID}&statusLpj=0" class="btn btn-sm btn-dark">
|
||||
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-dark">
|
||||
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-dark">
|
||||
Laporan
|
||||
</a>`;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return `${resumeButton} ${laporanButton}`;
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
// Handle invalid JSON silently
|
||||
}
|
||||
}
|
||||
@@ -102,10 +102,10 @@
|
||||
</div>
|
||||
|
||||
<div class="content-max">
|
||||
Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
Aset Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}, Kel. @foreach ($villages as $village)
|
||||
{{ $village->name }}
|
||||
@endforeach, Kec. @foreach ($districts as $district)
|
||||
@@ -118,47 +118,44 @@
|
||||
@endforeach
|
||||
</span>
|
||||
|
||||
Luas Tanah / Luas Bangunan:
|
||||
<br> Dokumen Jaminan: <br>
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -169,10 +166,10 @@
|
||||
|
||||
<div class="signature">
|
||||
Best Regards,<br />
|
||||
<img src="{{ asset('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200">
|
||||
<img src="{{ asset('storage/signatures/' . $user->id . '/' . $user->sign) }}" alt="{{ $user->name }}"
|
||||
width="200">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ $user->name }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -104,10 +104,10 @@
|
||||
</div>
|
||||
|
||||
<div class="content-max">
|
||||
Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
Aset Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}, Kel. @foreach ($villages as $village)
|
||||
{{ $village->name }}
|
||||
@endforeach, Kec. @foreach ($districts as $district)
|
||||
@@ -120,47 +120,44 @@
|
||||
@endforeach
|
||||
</span>
|
||||
|
||||
Luas Tanah / Luas Bangunan:
|
||||
<br> Dokumen Jaminan: <br>
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -171,10 +168,10 @@
|
||||
|
||||
<div class="signature">
|
||||
Best Regards,<br />
|
||||
<img src="{{ asset('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200">
|
||||
<img src="{{ asset('storage/signatures/' . $user->id . '/' . $user->sign) }}" alt="{{ $user->name }}"
|
||||
width="200">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ $user->name }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -72,14 +72,14 @@
|
||||
<ul>
|
||||
<li>Aset Jaminan:
|
||||
<span class="font-bold">
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
</span>
|
||||
</li>
|
||||
<li>Lokasi Jaminan:
|
||||
<span class="font-bold">
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}
|
||||
@if (isset($document->jenisJaminan))
|
||||
, Kel.
|
||||
@@ -102,48 +102,45 @@
|
||||
@endforeach
|
||||
</span>
|
||||
</li>
|
||||
<li>Luas Tanah / Luas Bangunan:
|
||||
<li>Dokumen Jaminan: <br>
|
||||
<span class="font-bold">
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -153,10 +150,10 @@
|
||||
</p>
|
||||
<p>Best Regards,
|
||||
<div class="font-bold">
|
||||
<img src="{{ asset('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200" class="signature">
|
||||
<img src="{{ asset('storage/signatures/' . auth()->user()->id . '/' . auth()->user()->sign) }}"
|
||||
alt="{{ auth()->user()->name }}" width="200" class="signature">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ auth()->user()->name }}
|
||||
</p>
|
||||
</div>
|
||||
Sub Direktorat Appraisal
|
||||
|
||||
@@ -102,10 +102,10 @@
|
||||
</div>
|
||||
|
||||
<div class="content-max">
|
||||
Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
Aset Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}, Kel. @foreach ($villages as $village)
|
||||
{{ $village->name }}
|
||||
@endforeach, Kec. @foreach ($districts as $district)
|
||||
@@ -118,47 +118,44 @@
|
||||
@endforeach
|
||||
</span>
|
||||
|
||||
Luas Tanah / Luas Bangunan:
|
||||
<br> Dokumen Jaminan: <br>
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -169,10 +166,10 @@
|
||||
|
||||
<div class="signature">
|
||||
Best Regards,<br />
|
||||
<img src="{{ public_path('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200">
|
||||
<img src="{{ public_path('storage/signatures/' . auth()->user()->id . '/' . auth()->user()->sign) }}"
|
||||
alt="{{ auth()->user()->name }}" width="200">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ auth()->user()->name }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
// Handle invalid JSON silently
|
||||
}
|
||||
}
|
||||
@@ -70,14 +70,14 @@
|
||||
<ul>
|
||||
<li>Aset Jaminan:
|
||||
<span class="font-bold">
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
</span>
|
||||
</li>
|
||||
<li>Lokasi Jaminan:
|
||||
<span class="font-bold">
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}
|
||||
@if (isset($document->jenisJaminan))
|
||||
, Kel.
|
||||
@@ -100,48 +100,45 @@
|
||||
@endforeach
|
||||
</span>
|
||||
</li>
|
||||
<li>Luas Tanah / Luas Bangunan:
|
||||
<li>Dokumen Jaminan: <br>
|
||||
<span class="font-bold">
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -151,10 +148,10 @@
|
||||
</p>
|
||||
<p>Best Regards,
|
||||
<div class="font-bold">
|
||||
<img src="{{ asset('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200" class="signature">
|
||||
<img src="{{ asset('storage/signatures/' . auth()->user()->id . '/' . auth()->user()->sign) }}"
|
||||
alt="{{ auth()->user()->name }}" width="200" class="signature">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ auth()->user()->name }}
|
||||
</p>
|
||||
</div>
|
||||
Sub Direktorat Appraisal
|
||||
|
||||
@@ -104,10 +104,10 @@
|
||||
</div>
|
||||
|
||||
<div class="content-max">
|
||||
Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
Aset Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisJaminan->name }}
|
||||
@endforeach
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
|
||||
<span class="flex-wrap">Lokasi Jaminan: @foreach ($permohonan->documents as $document)
|
||||
{{ $document->address }}, Kel. @foreach ($villages as $village)
|
||||
{{ $village->name }}
|
||||
@endforeach, Kec. @foreach ($districts as $district)
|
||||
@@ -120,47 +120,44 @@
|
||||
@endforeach
|
||||
</span>
|
||||
|
||||
Luas Tanah / Luas Bangunan:
|
||||
<br> Dokumen Jaminan: <br>
|
||||
@php
|
||||
$luas_tanah = null;
|
||||
$luas_bangunan = null;
|
||||
$n = 1;
|
||||
@endphp
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@php
|
||||
$details = json_decode($detail->details);
|
||||
@endphp
|
||||
|
||||
@if (is_object($details))
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_tanah' &&
|
||||
isset($details->{'luas_tanah'}) &&
|
||||
is_numeric($details->{'luas_tanah'}))
|
||||
@php
|
||||
$luas_tanah = $details->{'luas_tanah'};
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@if (
|
||||
$detail->jenisLegalitasJaminan->custom_field === 'luas_bangunan' &&
|
||||
isset($details->{'luas_bangunan'}) &&
|
||||
is_numeric($details->{'luas_bangunan'}))
|
||||
@php
|
||||
$luas_bangunan = $details->{'luas_bangunan'};
|
||||
@endphp
|
||||
@endif
|
||||
@if (isset($details->luas_tanah) && isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah / Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
/
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_tanah))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Tanah :
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@elseif (isset($details->luas_bangunan))
|
||||
{{ $n }}. {{ $detail->name }}<br>
|
||||
Luas Bangunan:
|
||||
{{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
|
||||
m<sup>2</sup>
|
||||
<br>
|
||||
@php $n++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
@if ($luas_tanah !== null && $luas_bangunan !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup> / {{ $luas_bangunan }} m<sup>2</sup>
|
||||
@elseif ($luas_tanah !== null)
|
||||
{{ $luas_tanah }} m<sup>2</sup>
|
||||
@elseif ($luas_bangunan !== null)
|
||||
{{ $luas_bangunan }} m<sup>2</sup>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
@@ -171,10 +168,10 @@
|
||||
|
||||
<div class="signature">
|
||||
Best Regards,<br />
|
||||
<img src="{{ public_path('storage/signatures/' . $permohonan->user->id . '/' . $permohonan->user->sign) }}"
|
||||
alt="{{ $permohonan->user->name }}" width="200">
|
||||
<img src="{{ public_path('storage/signatures/' . auth()->user()->id . '/' . auth()->user()->sign) }}"
|
||||
alt="{{ auth()->user()->name }}" width="200">
|
||||
<p>
|
||||
{{ $permohonan->user->name }}
|
||||
{{ auth()->user()->name }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
596
resources/views/penilai/components/call-report.blade.php
Normal file
596
resources/views/penilai/components/call-report.blade.php
Normal file
@@ -0,0 +1,596 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
@php
|
||||
$senior_officer = null;
|
||||
if ($permohonan->debiture && $permohonan->documents) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
if ($teams) {
|
||||
foreach ($teams as $team) {
|
||||
$team_users = $team->teamsUsers;
|
||||
// print_r($team_users);
|
||||
if ($team_users) {
|
||||
foreach ($team_users as $team_user) {
|
||||
$user = $team_user->user;
|
||||
|
||||
if ($user && $user->hasRole('senior-officer')) {
|
||||
$senior_officer = $user;
|
||||
break 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@endphp
|
||||
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
|
||||
@csrf
|
||||
<input type="hidden" name="nomor_registrasi" value="{{ $permohonan->nomor_registrasi ?? ''}}">
|
||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id ?? "" }}">
|
||||
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
|
||||
<input type="hidden" name="action" value="callReport">
|
||||
<input type="hidden" name="type" value="callReport">
|
||||
@include('lpj::assetsku.includenya')
|
||||
{{-- @include('lpj::surveyor.components.header')
|
||||
@include('lpj::surveyor.components.callReport') --}}
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
CALL Report
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body grid gap-5">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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..."
|
||||
value=" {{ $callReport['kepada'] ?? '' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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..."
|
||||
value="{{ $callReport['dari'] ?? '' }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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_rap" class="input w-full" placeholder="Masukkan..."
|
||||
value="{{ $nomorLaporan ?? '' }}" @readonly(true)>
|
||||
</div>
|
||||
</div>
|
||||
{{-- 250109828129/ --}}
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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..."
|
||||
value="{{ $callReport['tanggal'] ?? '' }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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..."
|
||||
value="{{ $callReport['perihal'] ?? '' }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Menindak lanjuti permintaan <b>
|
||||
{{$permohonan->tujuanPenilaian->name ?? ''}}</b>, BAG CABang <b>{{ $permohonan->branch->name }}</b>
|
||||
disampaikan hal sebagai berikut:
|
||||
</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="grid gap-2.5 w-full">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="lokasi" class="form-label max-w-56">Nama Debitur</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="lokasi" name="lokasi" class="input w-full"
|
||||
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">
|
||||
<label for="penilai" class="form-label max-w-56">KJPP</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<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">
|
||||
<option value="">Select Jenis asset</option>
|
||||
@isset($basicData['jenisJaminan'] )
|
||||
@foreach ($basicData['jenisJaminan'] as $item)
|
||||
<option value="{{ $item->name }}"
|
||||
{{ ($memo->jenis_asset_tidak_sesuai ?? '') == $item->name ? 'selected' : '' }}>
|
||||
{{ $item->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
@endisset
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Lokasi Objek Penilaian</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Dokumen </label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Tanggal Penilaian </label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Lelang ke </label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="likuidasi" name="likuidasi" class="input w-full"
|
||||
placeholder="Masukkan likuidasi"
|
||||
value="{{ old('likuidasi') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="penilai" class="form-label max-w-56">Nilai Likuidasi (NL)</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="penilai" name="penilai" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
|
||||
<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>
|
||||
</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="grid gap-2.5 w-full">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<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"
|
||||
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">
|
||||
<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"
|
||||
placeholder="Masukkan Pihak KJPP"
|
||||
value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<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"
|
||||
placeholder="Masukkan Pihak Bag"
|
||||
value="{{ $permohonan->user->name ?? '' }}" @readonly(true)>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label for="debitur_perwakilan" class="form-label max-w-56">Debitur/perwakilan debitur </label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" id="debitur_perwakilan" name="debitur_perwakilan" class="input w-full"
|
||||
placeholder="Masukkan Penilai"
|
||||
value="{{ $permohonan->debiture->name ?? '' }}" @readonly(true)>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
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">
|
||||
<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($callReport['fakta']['fakta_positif']))
|
||||
@foreach ($callReport['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="3">{{ 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>
|
||||
</button>
|
||||
</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="3">{{ 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"
|
||||
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">
|
||||
<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($callReport['fakta']['fakta_negatif']))
|
||||
@foreach ($callReport['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="3">{{ 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>
|
||||
</button>
|
||||
</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="3">{{ old('fakta_negatif.0', $callReport['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>
|
||||
</div>
|
||||
@endif
|
||||
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end gap-2" 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">Save</span>
|
||||
</button>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal']))
|
||||
<a class="btn btn-info"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
@push('scripts')
|
||||
{{-- <script type="text/javascript">
|
||||
const callReport = @json($forminspeksi ?? '');
|
||||
console.log('callReport', callReport)
|
||||
|
||||
function updateAlamatFields(status) {
|
||||
// Ambil elemen formulir
|
||||
const addressForm = document.getElementById('alamat_form');
|
||||
const inputs = addressForm.querySelectorAll('input, select');
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (status === 'sesuai') {
|
||||
addressInput.value = "{{ $dokumen->address ?? '' }}";
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.setAttribute('readonly', true);
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.setAttribute('disabled', true);
|
||||
element.classList.add('disabled-input')
|
||||
}
|
||||
});
|
||||
|
||||
addressForm.style.display = 'grid';
|
||||
addressForm.disabled = true;
|
||||
addressForm.classList.add('disabled-input')
|
||||
|
||||
|
||||
} else if (status === 'tidak sesuai') {
|
||||
addressForm.style.display = 'grid';
|
||||
|
||||
addressForm.removeAttribute('disabled');
|
||||
addressForm.classList.remove('disabled-input')
|
||||
const formInspeksi = @json($forminspeksi);
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (formInspeksi && formInspeksi.asset && formInspeksi.asset.alamat) {
|
||||
if (formInspeksi.asset.alamat['tidak sesuai'] && formInspeksi.asset.alamat['tidak sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['tidak sesuai'].address;
|
||||
} else if (formInspeksi.asset.alamat['sesuai'] && formInspeksi.asset.alamat['sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['sesuai'].address;
|
||||
} else {
|
||||
addressInput.value = "";
|
||||
}
|
||||
}
|
||||
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.removeAttribute('readonly');
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.removeAttribute('disabled');
|
||||
element.classList.remove('disabled-input')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFieldVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValue = $(`[name="${fieldName}"]:checked`).val();
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
if (visibleValues.includes(selectedValue)) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleCheckboxVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Cek apakah salah satu nilai yang dipilih cocok dengan visibleValues
|
||||
const shouldShow = visibleValues.some(value => selectedValues.includes(value.toLowerCase()));
|
||||
|
||||
if (shouldShow) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleMultipleFields(fieldName, mappings) {
|
||||
// Ambil semua nilai checkbox yang dicentang
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
// Iterasi melalui setiap mapping
|
||||
for (const [key, inputId] of Object.entries(mappings)) {
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Tampilkan input jika nilai yang relevan dipilih
|
||||
if (selectedValues.includes(key.toLowerCase())) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val(''); // Sembunyikan dan reset nilai
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) {
|
||||
// Ambil elemen berdasarkan ID
|
||||
const alamatSesuai = document.getElementById(idSesuai);
|
||||
const alamatTidakSesuai = document.getElementById(idTidakSesuai);
|
||||
|
||||
// Periksa nilai yang dipilih dan tampilkan elemen yang sesuai
|
||||
if (selectedValue === 'sesuai') {
|
||||
alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai"
|
||||
} else if (selectedValue === 'tidak sesuai') {
|
||||
alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function submitData() {
|
||||
showLoadingSwal('Mengirim data ke server...');
|
||||
const form = document.querySelector('form');
|
||||
const formData = new FormData(form);
|
||||
console.log('Form data entries:', Array.from(formData.entries()));
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const permohonanId = {{ $permohonan->id }};
|
||||
const documentId = urlParams.get('documentId');
|
||||
const inspeksiId = urlParams.get('inspeksiId');
|
||||
const requestUrl =
|
||||
`{{ route('penilai.storeRap') }}?permohonanId=${permohonanId}&inspeksiId=${inspeksiId}&documentId=${documentId}`;
|
||||
$.ajax({
|
||||
url: requestUrl,
|
||||
type: 'POST',
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
success: function(response) {
|
||||
hideLoadingSwal();
|
||||
if (response.success) {
|
||||
Swal.fire({
|
||||
title: 'Berhasil!',
|
||||
text: response.message,
|
||||
icon: 'success',
|
||||
confirmButtonText: 'OK'
|
||||
}).then((response) => {
|
||||
if (response.isConfirmed) {
|
||||
// window.location.reload();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: 'Error!',
|
||||
text: response.message || 'Terjadi kesalahan',
|
||||
icon: 'error',
|
||||
confirmButtonText: 'OK'
|
||||
});
|
||||
}
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
|
||||
let errors = xhr.responseJSON?.errors;
|
||||
$('.alert').text('');
|
||||
if (errors) {
|
||||
$.each(errors, function(key, value) {
|
||||
$(`#error-${key}`).text(value[0]);
|
||||
toastrErrorBuild(value[0]);
|
||||
});
|
||||
// toastrErrorBuild(error);
|
||||
}
|
||||
hideLoadingSwal();
|
||||
console.log(errors);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Ensure existing remove buttons are functional
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const removeButtons = document.querySelectorAll('.remove-btn');
|
||||
removeButtons.forEach(button => {
|
||||
button.addEventListener('click', function() {
|
||||
this.closest('.perwakilan').remove();
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('.number-format').forEach(input => {
|
||||
input.addEventListener('input', function() {
|
||||
formatNumber(this);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
function updateAnalisa(params) {
|
||||
const inputMap = {
|
||||
jenis_asset: 'jenis_asset_tidak_sesuai',
|
||||
analisa_tanah: 'analisa_tanah_tidak_sesuai',
|
||||
analisa_unit: 'analisa_luas_unit_tidak_sesuai',
|
||||
analisa_bangunan: 'analisa_bangunan_tidak_sesuai',
|
||||
};
|
||||
|
||||
// Pastikan elemen ID ada di inputMap
|
||||
if (!inputMap[params]) {
|
||||
console.error('Parameter tidak valid:', params);
|
||||
return;
|
||||
}
|
||||
|
||||
// Ambil nilai berdasarkan parameter
|
||||
const inputValue = document.getElementById(inputMap[params]).value;
|
||||
const data = {
|
||||
[params === 'jenis_asset' ? 'jenis_asset' : params.replace('analisa_', 'luas_')]: inputValue,
|
||||
types: params
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: '{{ route('surveyor.update_analisa', ['id' => $permohonan->id]) }}',
|
||||
type: 'POST',
|
||||
data: data,
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
if (response.success) {
|
||||
// window.location.href =
|
||||
// '{{ route('surveyor.show', ['id' => $permohonan->id]) }}';
|
||||
toastrSuccessBuild(response.message);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Terjadi error:', error);
|
||||
console.log('Status:', status);
|
||||
console.log('Response:', xhr.responseText);
|
||||
if (xhr.responseJSON.message) {
|
||||
toastrErrorBuild(xhr.responseJSON.message);
|
||||
} else {
|
||||
toastrErrorBuild('Terjadi kesalahan');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script> --}}
|
||||
@include('lpj::surveyor.js.utils')
|
||||
@endpush
|
||||
@@ -58,7 +58,16 @@
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
width: 48%;
|
||||
margin-right: 2%;
|
||||
float: left;
|
||||
padding: 5px;
|
||||
box-sizing: border-box;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
.photo-item img {
|
||||
max-width: 100%;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
@@ -107,6 +116,9 @@
|
||||
@php
|
||||
$imagePath = storage_path('app/public/' . $item['path']);
|
||||
@endphp
|
||||
@if ($counter % 2 == 0)
|
||||
<div class="photo-row clearfix">
|
||||
@endif
|
||||
<div class="photo-item border">
|
||||
<h4 class="text-gray-600 font-semibold text-sm">{{ $item['name'] }}</h4>
|
||||
@if ($statusLpj || file_exists($imagePath))
|
||||
|
||||
@@ -28,37 +28,39 @@
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Harga Penawara</label>
|
||||
<label class="form-label max-w-56">Harga Penawaran</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga_diskon'] }}</span>
|
||||
<span>Rp. {{ $item['harga'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Penjualan (HP)</label>
|
||||
<label class="form-label max-w-56">Penjual (HP)</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga'] }}</span>
|
||||
<span>{{ $item['telepon'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Ditawarkan sejak</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga'] }}</span>
|
||||
<span>{{ $item['penawaran'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">LT</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['luas_tanah'] }}</span>
|
||||
<span>{{ $item['luas_tanah'] }} </span>
|
||||
<sup> m2</sup>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">LB</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['luas_bangunan'] }}</span>
|
||||
<span>{{ $item['luas_bangunan'] }} </span>
|
||||
<sup> m2</sup>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,22 +5,21 @@
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<style>
|
||||
.list-decimal {
|
||||
list-style-type: decimal;
|
||||
margin: 0;
|
||||
padding-left: 1.25rem;
|
||||
line-height: 1.6;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #333333;
|
||||
}
|
||||
<style>
|
||||
.list-decimal {
|
||||
list-style-type: decimal;
|
||||
margin: 0;
|
||||
padding-left: 1.25rem;
|
||||
line-height: 1.6;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.list-decimal li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
</style>
|
||||
.list-decimal li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
@include('lpj::assetsku.includenya')
|
||||
<form id="form-lpj" method="post" class="w-full grid gap-5">
|
||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||
@@ -34,25 +33,33 @@
|
||||
<div class="input-group w-full flex gap-2">
|
||||
<ol class="list-decimal pl-5 space-y-2">
|
||||
<li>PENILAIAN INI DIBUAT BERDASARKAN ATURAN YANG BERLAKU DI SUBDIT APPRAISAL</li>
|
||||
<li>LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA TERSEBUT SESUAI DENGAN DOKUMEN ASLINYA</li>
|
||||
<li>PENILAI TIDAK MELAKUKAN PEMBUKTIAN LEBIH RINCI ATAU PENGAKUAN TERTULIS DARI PIHAK YANG DITEMUI SAAT PENILAIAN, ATAS INFORMASI YANG DIBERIKAN SECARA LISAN SEHUBUNGAN DENGAN IDENTITAS DIRI DAN HUBUNGAN DI ANTARA PIHAK TERKAIT SAAT MELAKUKAN INSPEKSI OBJEK YANG DINILAI</li>
|
||||
<li>LAPORAN INI DIGUNAKAN HANYA UNTUK KEPENTINGAN INTERNAL DAN DILARANG MENYEBARKAN KEPADA PIHAK KETIGA</li>
|
||||
<li>LAPORAN INI DIBUAT BERDASARKAN DATA FOTOCOPY DOKUMEN YANG DITERIMA PENILAI DENGAN ASUMSI BAHWA DATA
|
||||
TERSEBUT SESUAI DENGAN DOKUMEN ASLINYA</li>
|
||||
<li>PENILAI TIDAK MELAKUKAN PEMBUKTIAN LEBIH RINCI ATAU PENGAKUAN TERTULIS DARI PIHAK YANG DITEMUI SAAT
|
||||
PENILAIAN, ATAS INFORMASI YANG DIBERIKAN SECARA LISAN SEHUBUNGAN DENGAN IDENTITAS DIRI DAN HUBUNGAN
|
||||
DI ANTARA PIHAK TERKAIT SAAT MELAKUKAN INSPEKSI OBJEK YANG DINILAI</li>
|
||||
<li>LAPORAN INI DIGUNAKAN HANYA UNTUK KEPENTINGAN INTERNAL DAN DILARANG MENYEBARKAN KEPADA PIHAK KETIGA
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex card-footer justify-end gap-5">
|
||||
<button type="button" class="btn btn-success" id="saveButton" onclick="saveLpjSederhanadanStandard()">
|
||||
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
<span id="saveButtonText">Save</span>
|
||||
</button>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal']))
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
|
||||
<a class="btn btn-info"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
|
||||
<a class="btn btn-primary"
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light"
|
||||
>
|
||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||
</a>
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
<i class="ki-filled ki-printer"></i> Print Laporan
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@@ -281,7 +281,8 @@
|
||||
{{-- @include('lpj::penilai.components.foto-lampiran') --}}
|
||||
|
||||
<div class="flex card-footer justify-end gap-5">
|
||||
<a class="btn btn-success" onclick="saveMemo()">
|
||||
<a class="btn btn-primary" onclick="saveMemo()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
SAVE
|
||||
</a>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal']))
|
||||
@@ -289,7 +290,11 @@
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light"
|
||||
>
|
||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||
</a>
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
</a>
|
||||
|
||||
@@ -92,17 +92,7 @@
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.photo-item {
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.photo-image {
|
||||
max-width: 80%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
@@ -110,7 +100,7 @@
|
||||
<body style="width: 80%; margin: auto">
|
||||
@php
|
||||
$data = '';
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
@@ -421,8 +411,8 @@
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
|
||||
<footer id="footer">
|
||||
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<body style="width: 80%; margin: auto">
|
||||
@php
|
||||
$data = '';
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
|
||||
@@ -95,18 +95,6 @@
|
||||
.border {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.photo-item {
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.photo-image {
|
||||
max-width: 80%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
@@ -171,7 +159,7 @@
|
||||
|
||||
<h2 style="text-transform: uppercase;">DOKUMEN TERLAMPIR</h2>
|
||||
<table style="width: 100%;">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@php
|
||||
$senior_officer = null;
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
@@ -282,9 +270,14 @@
|
||||
<h2 style="text-transform: uppercase;">DESKRIPSI DEVELOPER</h2>
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['pengalaman_developer'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Pengalaman Developer & Proyek Yang Pernah
|
||||
Dibuat</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td style="width: 79%; padding: 2px;">{!! nl2br(e($forminspeksi['pengalaman_developer'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apakah Developer Anggota REI</td>
|
||||
<td>:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['developer_anggota'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
|
||||
@@ -292,6 +285,8 @@
|
||||
@isset($forminspeksi['lainnya_developer'])
|
||||
@foreach ($forminspeksi['lainnya_developer'] as $item)
|
||||
<tr>
|
||||
<td>Lainnya</td>
|
||||
<td>:</td>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
@@ -302,27 +297,44 @@
|
||||
<h2 style="text-transform: uppercase;">KONDISI, LINGKUNGAN DAN PROGRESS PEMBANGUNAN</h2>
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Kapan Mulai Dibangun & Target Penyelesaian
|
||||
</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['kapan_mulai_dibangun'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Kondisi Perumahan Saat Ini</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['kondisi_perumahan'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Progress Pembangunan</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['progres_pembangunan'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Kontraktor (internal/eksternal)</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['kontraktor'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Lingkungan Sekitar</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['lingkungan_sekitar'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Komplek Lain Disekitar Lokasi</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['komplek_disekitar'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Pusat Keramaian Dekat Lokasi</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['pusat_keramaian'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Transportasi Umum Yang Tersedia</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>{!! nl2br(e($forminspeksi['transportasi_umum'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
|
||||
@@ -330,6 +342,8 @@
|
||||
@isset($forminspeksi['lainnya_kondisi'])
|
||||
@foreach ($forminspeksi['lainnya_kondisi'] as $item)
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">Lainnya</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
@@ -340,16 +354,15 @@
|
||||
|
||||
@isset($forminspeksi['partisi'])
|
||||
<h2 style="text-transform: uppercase;">PARTISI BANGUNAN</h2>
|
||||
<table>
|
||||
<table style="width: 100%;">
|
||||
@if (is_array($forminspeksi['partisi']))
|
||||
@foreach ($forminspeksi['partisi'] as $key => $item)
|
||||
@if (is_array($item))
|
||||
<tr>
|
||||
<td>
|
||||
<td style="vertical-align: top; width: 20%; padding: 2px;">
|
||||
{{ $item['nama'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td>
|
||||
{{ $item['value'] ?? '' }}
|
||||
</td>
|
||||
@@ -588,6 +601,53 @@
|
||||
</table>
|
||||
|
||||
<div class="page-break"></div>
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
<h6 class="border" style="text-align: center;">
|
||||
PETA
|
||||
</h6>
|
||||
</div>
|
||||
<div class="photo-container">
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
// Memindahkan foto_tempat ke depan jika ada
|
||||
if (($key = array_search('foto_tempat', $fotoTypes)) !== false) {
|
||||
unset($fotoTypes[$key]);
|
||||
array_unshift($fotoTypes, 'foto_tempat');
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if (isset($forminspeksi))
|
||||
@php $counter = 0; @endphp
|
||||
@foreach ($fotoTypes as $type)
|
||||
@php
|
||||
$imagePath = $forminspeksi[$type] ?? null;
|
||||
@endphp
|
||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||
@if ($counter % 2 == 0)
|
||||
<div class="photo-row clearfix"
|
||||
>
|
||||
@endif
|
||||
<div class="photo-item border"
|
||||
>
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||
class="photo-image">
|
||||
<p style="margin: 0; font-size: 14px;">
|
||||
{{ Str::title(str_replace('_', ' ', $type)) }}
|
||||
</p>
|
||||
</div>
|
||||
@if ($counter % 2 == 1 || $loop->last)
|
||||
</div>
|
||||
@endif
|
||||
@php $counter++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-break"></div>
|
||||
|
||||
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
<body style="width: 80%; margin: auto">
|
||||
@php
|
||||
$data = '';
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
}
|
||||
$data = rtrim($data, ', ');
|
||||
@@ -192,8 +192,8 @@
|
||||
|
||||
@php
|
||||
$senior_officer = null;
|
||||
if ($permohonan->debiture && $permohonan->debiture->documents) {
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
if ($permohonan->debiture && $permohonan->documents) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
@@ -420,7 +420,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@@ -862,9 +862,31 @@
|
||||
D. ASURANSI
|
||||
</td>
|
||||
</tr>
|
||||
@if (!empty($lpjData['asuransi_luas_bangunan']))
|
||||
<tr>
|
||||
<td><table border="1" style="width: 100%; border-collapse: collapse; margin-bottom: 10px;">
|
||||
<tr>
|
||||
|
||||
<td style="border: 1px solid #000; padding: 4px;">Luas Bangunan</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;">Harga</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;">Nilai Pasar Wajar (Rp)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="border: 1px solid #000; padding: 4px;">{{ $lpjData['asuransi_luas_bangunan'] ?? '' }}</td>
|
||||
|
||||
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($lpjData['asuransi_nilai_1']) ?? '' }}</td>
|
||||
<td style="border: 1px solid #000; padding: 4px;">{{ formatRupiah($lpjData['asuransi_nilai_2']) ?? '' }}</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@else
|
||||
<tr>
|
||||
<td>Tidak Ada</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
|
||||
<table style="width: 100%">
|
||||
@@ -1035,7 +1057,7 @@
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td style="border: 1px solid #000;">
|
||||
G. CATATAN YANG PERLU DI PERHATIKAN
|
||||
G. ANALISA FAKTA
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1068,6 +1090,65 @@
|
||||
@endisset
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Batas batas</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
|
||||
@if ($batas)
|
||||
<p> - {{ $arah }} : {{ $batas }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Informasi Dinas Tata Ruang</strong>
|
||||
</td>
|
||||
<td>
|
||||
@php
|
||||
$informasi = [
|
||||
'peruntukan',
|
||||
'kdb',
|
||||
'kdh',
|
||||
'gsb',
|
||||
'max_lantai',
|
||||
'klb',
|
||||
'gss',
|
||||
'pelebaran_jalan',
|
||||
'nama_petugas',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@foreach ($informasi as $key)
|
||||
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
||||
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
|
||||
{{ $forminspeksi['fakta'][$key] }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if (!empty($forminspeksi['fakta']['keterangan']))
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Catatan yang Perlu Diperhatikan</strong></td>
|
||||
<td>
|
||||
@php
|
||||
$keterangan = $forminspeksi['fakta']['keterangan'] ?? '';
|
||||
if (is_array($keterangan)) {
|
||||
$keterangan = implode(', ', array_filter($keterangan));
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if (!empty($keterangan))
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
<tr>
|
||||
<td>{{ $keterangan }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</tr>
|
||||
|
||||
@@ -1214,12 +1295,11 @@
|
||||
</table>
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
<h6 class="border" style="text-align: center">
|
||||
<h6 class="border" style="text-align: center;">
|
||||
PETA
|
||||
</h6>
|
||||
</div>
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px;">
|
||||
<div class="photo-container">
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
// Memindahkan foto_tempat ke depan jika ada
|
||||
@@ -1230,26 +1310,36 @@
|
||||
@endphp
|
||||
|
||||
@if (isset($forminspeksi))
|
||||
@php $counter = 0; @endphp
|
||||
@foreach ($fotoTypes as $type)
|
||||
@php
|
||||
$imagePath = $forminspeksi[$type] ?? null;
|
||||
@endphp
|
||||
|
||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||
<div style="border: 1px solid #ddd; padding: 10px; text-align: center;">
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}"
|
||||
alt="{{ $type }}"
|
||||
style="max-width: 100%; height: auto; margin-bottom: 10px;">
|
||||
@if ($counter % 2 == 0)
|
||||
<div class="photo-row clearfix"
|
||||
>
|
||||
@endif
|
||||
<div class="photo-item border"
|
||||
>
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||
class="photo-image">
|
||||
<p style="margin: 0; font-size: 14px;">
|
||||
{{ Str::title(str_replace('_', ' ', $type)) }}
|
||||
</p>
|
||||
</div>
|
||||
@if ($counter % 2 == 1 || $loop->last)
|
||||
</div>
|
||||
@endif
|
||||
@php $counter++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="page-break"></div>
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
<h6 class="border" style="text-align: center">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<title>Laporan Penilai jaminan</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
* {
|
||||
@@ -201,7 +201,7 @@
|
||||
@php
|
||||
$data = '';
|
||||
$dokument = null;
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
$dokument = $dokumen;
|
||||
}
|
||||
@@ -210,8 +210,8 @@
|
||||
<main class="content">
|
||||
@php
|
||||
$senior_officer = null;
|
||||
if ($permohonan->debiture && $permohonan->debiture->documents) {
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
if ($permohonan->debiture && $permohonan->documents) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
@@ -497,15 +497,16 @@
|
||||
@if (isset($detail->details))
|
||||
@if (json_decode($detail->details))
|
||||
@foreach (json_decode($detail->details) as $key => $value)
|
||||
@if (!is_null($value) && $value !== '')
|
||||
<td style=" padding: 2px;">{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
|
||||
@if (!is_null($value) && $value !== '')
|
||||
<td style=" padding: 2px;">
|
||||
{{ ucwords(str_replace('_', ' ', $key)) ?? '' }}</td>
|
||||
|
||||
<td style=" padding: 2px;">{{ $value }}
|
||||
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
|
||||
<sup>m2</sup>
|
||||
<td style=" padding: 2px;">{{ $value }}
|
||||
@if ($key == 'luas_bangunan' || $key == 'luas_tanah')
|
||||
<sup>m2</sup>
|
||||
@endif
|
||||
</td>
|
||||
@endif
|
||||
</td>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
@@ -521,16 +522,16 @@
|
||||
|
||||
<tr>
|
||||
@php
|
||||
// Ambil nilai hub_cadeb langsung
|
||||
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'])
|
||||
? $forminspeksi['asset']['hub_cadeb']
|
||||
: null;
|
||||
// Ambil nilai hub_cadeb langsung
|
||||
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb'])
|
||||
? $forminspeksi['asset']['hub_cadeb']
|
||||
: null;
|
||||
|
||||
// Jika nilai adalah array dengan key 'sesuai', ambil nilainya
|
||||
if (is_array($hubCadeb) && isset($hubCadeb['sesuai'])) {
|
||||
$hubCadeb = $hubCadeb['sesuai'];
|
||||
}
|
||||
@endphp
|
||||
// Jika nilai adalah array dengan key 'sesuai', ambil nilainya
|
||||
if (is_array($hubCadeb) && isset($hubCadeb['sesuai'])) {
|
||||
$hubCadeb = $hubCadeb['sesuai'];
|
||||
}
|
||||
@endphp
|
||||
<td style="vertical-align: top;"><strong>Hubungan Pemilik Jaminan dengan Debitur</strong>
|
||||
</td>
|
||||
<td>
|
||||
@@ -549,19 +550,20 @@
|
||||
@php $count++; @endphp
|
||||
|
||||
@if ($count % 3 === 0)
|
||||
</tr><tr>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@if ($count % 3 !== 0)
|
||||
@for ($i = 0; $i < 3 - ($count % 3); $i++)
|
||||
<td></td>
|
||||
@endfor
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
<tr>
|
||||
@endif
|
||||
</td>
|
||||
@endforeach
|
||||
|
||||
@if ($count % 3 !== 0)
|
||||
@for ($i = 0; $i < 3 - ($count % 3); $i++)
|
||||
<td></td>
|
||||
@endfor
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -604,7 +606,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@@ -1318,11 +1320,31 @@
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="checkbox-table">
|
||||
<tr>
|
||||
<td><input type="checkbox" checked> Tidak Ada</td>
|
||||
<td><input type="checkbox"> Ada</td>
|
||||
</tr>
|
||||
<table>
|
||||
@if (!empty($lpjData['asuransi_luas_bangunan']))
|
||||
<tr>
|
||||
|
||||
<td width="25%">Luas Bangunan</td>
|
||||
<td style="">
|
||||
{{ $lpjData['asuransi_luas_bangunan'] ?? '' }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="">Harga</td>
|
||||
<td style="">Rp.
|
||||
{{ $lpjData['asuransi_nilai_1'] ?? '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="">Nilai Pasar Wajar (Rp)</td>
|
||||
|
||||
<td style="">Rp.
|
||||
{{$lpjData['asuransi_nilai_2'] ?? '' }}</td>
|
||||
</tr>
|
||||
@else
|
||||
<tr>
|
||||
<td>Tidak Ada</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -1386,33 +1408,54 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{{-- Lain-lain --}}
|
||||
@if (!empty($forminspeksi['fakta']['rute_menuju']))
|
||||
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Lain - lain :</strong></td>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Rute Menuju</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
|
||||
<p>{!! nl2br(e($keterangan)) !!}</p>
|
||||
@endforeach
|
||||
<p>{{ $forminspeksi['fakta']['rute_menuju'] ?? '' }}</p>
|
||||
|
||||
@foreach ($forminspeksi['fakta']['informasi_dokument'] ?? [] as $informasi)
|
||||
<p>{!! nl2br(e($informasi)) !!}</p>
|
||||
@endforeach
|
||||
|
||||
@foreach ($forminspeksi['fakta']['kondisi_lingkungan'] ?? [] as $kondisi)
|
||||
<p>{!! nl2br(e($kondisi)) !!}</p>
|
||||
@endforeach
|
||||
{!! nl2br(e($forminspeksi['fakta']['rute_menuju'] ?? '')) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!empty($forminspeksi['fakta']['batas_batas_input']))
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Batas batas</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
|
||||
@if ($batas)
|
||||
<p> - {{ $arah }} : {{ $batas }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@foreach ($forminspeksi['fakta']['kondisi_lain_bangunan'] ?? [] as $kondisiLain)
|
||||
<p>{!! nl2br(e($kondisiLain)) !!}</p>
|
||||
@endforeach
|
||||
@if (!empty($forminspeksi['fakta']['kondisi_lingkungan']))
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Kondisi Lingkungan</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['kondisi_lingkungan'] ?? [] as $kondisi)
|
||||
<p>{!! nl2br(e($kondisi)) !!}</p>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if (!empty($forminspeksi['fakta']['informasi_dokument']))
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Informasi Lain terkait Dokumen</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['informasi_dokument'] ?? [] as $informasi)
|
||||
<p>{!! nl2br(e($informasi)) !!}</p>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Informasi Dinas Tata Ruang</strong>
|
||||
</td>
|
||||
<td>
|
||||
@php
|
||||
$informasi = [
|
||||
'peruntukan',
|
||||
@@ -1434,10 +1477,32 @@
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if (!empty($forminspeksi['fakta']['keterangan']))
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Catatan yang Perlu Diperhatikan</strong></td>
|
||||
<td>
|
||||
@php
|
||||
$keterangan = $forminspeksi['fakta']['keterangan'] ?? '';
|
||||
if (is_array($keterangan)) {
|
||||
$keterangan = implode(', ', array_filter($keterangan));
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if (!empty($keterangan))
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
<tr>
|
||||
<td>{{ $keterangan }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
{{-- Lain-lain --}}
|
||||
|
||||
<tr>
|
||||
<td>2. Informasi Harga:</td>
|
||||
</tr>
|
||||
@@ -1518,18 +1583,23 @@
|
||||
'pesawat' => 'Luas Pesawat',
|
||||
'kapal' => 'Luas Kapal',
|
||||
];
|
||||
|
||||
// if (strcasecmp($jenisAset, 'RUKO/RUKAN') === 0) {
|
||||
// $labelNilai['bangunan'] = 'Luas Unit';
|
||||
// unset($labelNilai['tanah']);
|
||||
// }
|
||||
@endphp
|
||||
@foreach ($labelNilai as $key => $label)
|
||||
@if (isset($lpjData['luas_' . $key]))
|
||||
<tr>
|
||||
<td style="padding: 3px; text-align: right; width:10%; ">
|
||||
<td style="padding: 3px; text-align: right; width:45%; ">
|
||||
{{ $label }} {{ $lpjData['luas_' . $key] ?? '' }} m<sup>2</sup>
|
||||
</td>
|
||||
<td style="padding: 3px; width:10%;">
|
||||
<td style="padding: 3px; width:5%;">
|
||||
<span style="padding-left:20px; padding-right: 20px">X</span> Rp
|
||||
{{ $lpjData['nilai_' . $key . '_1'] ?? '' }}
|
||||
</td>
|
||||
<td style="padding: 3px; text-align: left; width:70%;">
|
||||
<td style="padding: 3px; text-align: left; width:60%;">
|
||||
<span style="padding-left:20px; padding-right: 20px"> = </span> Rp
|
||||
{{ $lpjData['nilai_' . $key . '_2'] ?? '' }}
|
||||
</td>
|
||||
@@ -1745,15 +1815,14 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="page-break"></div>
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
<h6 class="border">
|
||||
<h6 class="border" style="text-align: center;">
|
||||
PETA
|
||||
</h6>
|
||||
</div>
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px;">
|
||||
<div class="photo-container">
|
||||
@php
|
||||
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
|
||||
// Memindahkan foto_tempat ke depan jika ada
|
||||
@@ -1764,26 +1833,34 @@
|
||||
@endphp
|
||||
|
||||
@if (isset($forminspeksi))
|
||||
@php $counter = 0; @endphp
|
||||
@foreach ($fotoTypes as $type)
|
||||
@php
|
||||
$imagePath = $forminspeksi[$type] ?? null;
|
||||
@endphp
|
||||
|
||||
@if ($imagePath && file_exists(storage_path('app/public/' . $imagePath)))
|
||||
<div style="border: 1px solid #ddd; padding: 10px; text-align: center;">
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}"
|
||||
alt="{{ $type }}"
|
||||
style="max-width: 100%; height: auto; margin-bottom: 10px;">
|
||||
@if ($counter % 2 == 0)
|
||||
<div class="photo-row clearfix"
|
||||
>
|
||||
@endif
|
||||
<div class="photo-item border"
|
||||
>
|
||||
<img src="{{ storage_path('app/public/' . $imagePath) }}" alt="{{ $type }}"
|
||||
class="photo-image">
|
||||
<p style="margin: 0; font-size: 14px;">
|
||||
{{ Str::title(str_replace('_', ' ', $type)) }}
|
||||
</p>
|
||||
</div>
|
||||
@if ($counter % 2 == 1 || $loop->last)
|
||||
</div>
|
||||
@endif
|
||||
@php $counter++; @endphp
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-break"></div>
|
||||
<div class="section">
|
||||
<div class="judul">
|
||||
<h6 class="border">
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<body style="width: 80%; margin: auto">
|
||||
@php
|
||||
$data = '';
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
@@ -224,8 +224,8 @@
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@foreach ($document->detail as $detail)
|
||||
@if (isset($detail->details))
|
||||
@php
|
||||
@@ -281,7 +281,7 @@
|
||||
@isset($resumeData['fakta']['fakta_positif'])
|
||||
@foreach ($resumeData['fakta']['fakta_positif'] as $key => $item)
|
||||
<tr>
|
||||
<td>{{ $item }}</td>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endisset
|
||||
@@ -298,7 +298,7 @@
|
||||
@isset($resumeData['fakta']['fakta_negatif'])
|
||||
@foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
|
||||
<tr>
|
||||
<td>{{ $item }}</td>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endisset
|
||||
@@ -404,7 +404,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $resumeData['keterangan'] ?? '' }}</td>
|
||||
<td>{!! nl2br(e($resumeData['keterangan'] ?? '' )) !!}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -65,21 +65,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
|
||||
<button type="button" class="btn btn-success" id="saveButton" onclick="submitData()">
|
||||
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
<span id="saveButtonText">Save</span>
|
||||
<div class="spinner-border spinner-border-sm text-light" role="status" style="display: none;"
|
||||
id="saveButtonSpinner">
|
||||
|
||||
</div>
|
||||
</button>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal']))
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
|
||||
<a class="btn btn-info"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light"
|
||||
>
|
||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||
</a>
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
<i class="ki-filled ki-printer"></i> Print Laporan
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Alamat Object</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ formatAlamat($dokumen->pemilik) }}
|
||||
</span>
|
||||
@@ -213,8 +213,8 @@
|
||||
class="input number-format">
|
||||
</td>
|
||||
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$luas_tanah = '';
|
||||
$luas_bangunan = '';
|
||||
@@ -428,13 +428,19 @@
|
||||
</div>
|
||||
|
||||
<div class="flex card-footer justify-end gap-5">
|
||||
<button type="button" class="btn btn-success" onclick="saveResume()">Save</button>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal']))
|
||||
<button type="button" class="btn btn-primary" onclick="saveResume()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
Save</button>
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
|
||||
<a class="btn btn-info"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
</a>
|
||||
<a class="btn btn-primary"
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light"
|
||||
>
|
||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||
</a>
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
</a>
|
||||
|
||||
@@ -191,7 +191,7 @@
|
||||
actions: {
|
||||
title: 'Action',
|
||||
render: (item, data) => {
|
||||
if (data.status === 'done' || data.status === 'proses-laporan' || data.status === 'paparan') {
|
||||
if (data.status === 'done' || data.status === 'proses-laporan' || data.status === 'paparan' || data.status === 'proses-paparan' || data.status === 'paparan') {
|
||||
return `
|
||||
<div class="flex flex-nowrap justify-center gap-1.5">
|
||||
<a class="btn btn-sm btn-outline btn-info" href="penilai/${data.id}/show">
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<div class="card">
|
||||
<div class="card-body grid gap-5">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
@@ -155,7 +155,7 @@
|
||||
Jenis Jaminan
|
||||
</label>
|
||||
<p class="flex text-gray-600 font-medium text-sm w-full">
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
{{ $document->jenisjaminan->name }}
|
||||
@endforeach
|
||||
</p>
|
||||
@@ -279,9 +279,37 @@
|
||||
<span class="menu-title">LPJ</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="menu-item">
|
||||
<a class="menu-link"
|
||||
onclick="callReport('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
||||
<span class="menu-icon">
|
||||
<i class="ki-outline ki-profile-circle">
|
||||
</i>
|
||||
</span>
|
||||
<span class="menu-title">
|
||||
CALL REPORT
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($permohonan->penilaian->jenis_penilaian_id == 2 && $permohonan->tujuanPenilaian->id == 4)
|
||||
<div class="menu-item">
|
||||
<a class="menu-link"
|
||||
onclick="callReport('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
|
||||
<span class="menu-icon">
|
||||
<i class="ki-outline ki-profile-circle">
|
||||
</i>
|
||||
</span>
|
||||
<span class="menu-title">
|
||||
CALL REPORT
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -331,14 +359,14 @@
|
||||
$jenisJaminanId = null;
|
||||
$inspeksiId = null;
|
||||
$documentId = null;
|
||||
foreach ($permohonan->debiture->documents as $item) {
|
||||
foreach ($permohonan->documents as $item) {
|
||||
$documentId = $item->id;
|
||||
}
|
||||
foreach ($dokumen->inspeksi as $item) {
|
||||
$inspeksiId = $item->id;
|
||||
}
|
||||
@endphp
|
||||
@foreach ($permohonan->debiture->documents as $document)
|
||||
@foreach ($permohonan->documents as $document)
|
||||
@if ($document->jenisjaminan)
|
||||
@php
|
||||
$jenisJaminanId = $document->jenisjaminan->id;
|
||||
@@ -566,6 +594,13 @@
|
||||
});
|
||||
}
|
||||
|
||||
function callReport(permohonanId, documentId, inspeksiId, jaminanId) {
|
||||
showLoadingSwal('Tunggu ...');
|
||||
window.location.href =
|
||||
`{{ route('penilai.call-report') }}?permohonanId=${permohonanId}&documentId=${documentId}&inspeksiId=${inspeksiId}&jaminanId=${jaminanId}`;
|
||||
}
|
||||
|
||||
|
||||
function savePenilai() {
|
||||
showLoadingSwal('Mengirim data keserver ...');
|
||||
$.ajax({
|
||||
|
||||
@@ -66,6 +66,11 @@
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
|
||||
<th class="min-w-[150px]" data-datatable-column="jenis_laporan">
|
||||
<span class="sort"> <span class="sort-label"> Jenis Laporan </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
|
||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
|
||||
<span class="sort"> <span class="sort-label"> Status Bayar </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
@@ -211,6 +216,15 @@
|
||||
return '';
|
||||
},
|
||||
},
|
||||
jenis_laporan: {
|
||||
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 '';
|
||||
},
|
||||
},
|
||||
status_bayar: {
|
||||
title: 'Status Bayar',
|
||||
render: (item, data) => {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
@include('lpj::component.detail-jaminan', ['backLink' => 'otorisator.' . $dataHeader . '.index'])
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
@@ -115,7 +115,7 @@
|
||||
$inspeksiId = null;
|
||||
$documentId = null;
|
||||
$jenisJaminanId = null;
|
||||
foreach ($permohonan->debiture->documents as $item) {
|
||||
foreach ($permohonan->documents as $item) {
|
||||
foreach ($item->inspeksi as $key => $value) {
|
||||
$inspeksiId = $value->id;
|
||||
}
|
||||
@@ -372,7 +372,7 @@
|
||||
},
|
||||
});
|
||||
$.ajax({
|
||||
url: `/otorisator/revisi/${dataId}/`,
|
||||
url: `/otorisator/revisi/${dataId}`,
|
||||
type: 'POST',
|
||||
data: {
|
||||
message: userMessage
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
@include('lpj::component.detail-jaminan', ['backLink' => 'otorisator.' . $dataHeader . '.index'])
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
@@ -146,7 +146,7 @@
|
||||
$inspeksiId = null;
|
||||
$documentId = null;
|
||||
$jenisJaminanId = null;
|
||||
foreach ($permohonan->debiture->documents as $item) {
|
||||
foreach ($permohonan->documents as $item) {
|
||||
foreach ($item->inspeksi as $key => $value) {
|
||||
$inspeksiId = $item->id;
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-table scrollable-x-auto pb-3">
|
||||
@foreach($permohonan->debiture->documents as $dokumen)
|
||||
@foreach($permohonan->documents as $dokumen)
|
||||
<div class="card-body lg:py-7.5">
|
||||
<span class="text-base text-gray-900 font-bold mb-5">
|
||||
Jaminan {{ $loop->index + 1 }}
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
<!-- Luas tanah -->
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Luas Unit</label>
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$luas_units = 'N/A';
|
||||
if ($item->detail) {
|
||||
|
||||
@@ -10,26 +10,26 @@
|
||||
<label class="form-label max-w-56">Luas Bangunan</label>
|
||||
<div class="mt-2">
|
||||
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$luas_bangunan = 'N/A';
|
||||
$luas_bangunan = 'N/A';
|
||||
if ($item->detail) {
|
||||
foreach ($item->detail as $luas) {
|
||||
if (isset($luas->name) && $luas->name === 'IMB') {
|
||||
$details = json_decode($luas->details, true);
|
||||
$details = json_decode($luas->details, true);
|
||||
$luas_bangunan = isset($details['luas_bangunan']) ? $details['luas_bangunan'] : 'N/A';
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
|
||||
<input type="hidden" name="luas_bangunan_sesuai" class="input" value="{{ $luas_bangunan }}">
|
||||
<p class="text-2sm text-gray-700">{{ $luas_bangunan }} m<sup>2</sup></p>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
|
||||
<div class="flex-wrap items-stretch">
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mt-2">
|
||||
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-5 lg:gap-7.5">
|
||||
|
||||
|
||||
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@php
|
||||
|
||||
$jaminanId = $dokumen->id;
|
||||
|
||||
$currentInspeksi = $inspeksiData[$jaminanId] ?? null;
|
||||
|
||||
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
|
||||
@@ -15,8 +14,7 @@
|
||||
'url' =>
|
||||
route('surveyor.inspeksi', [
|
||||
'id' => $permohonan->id,
|
||||
]) .
|
||||
"?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
]) . "?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
'show' => true,
|
||||
'icon' => !empty($currentInspeksi['data_form']),
|
||||
],
|
||||
@@ -29,8 +27,7 @@
|
||||
'url' =>
|
||||
route('surveyor.denah', [
|
||||
'id' => $permohonan->id,
|
||||
]) .
|
||||
"?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
]) . "?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
'show' => true,
|
||||
'icon' => !empty($currentInspeksi['denah_form']),
|
||||
];
|
||||
@@ -42,8 +39,7 @@
|
||||
'url' =>
|
||||
route('surveyor.foto', [
|
||||
'id' => $permohonan->id,
|
||||
]) .
|
||||
"?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
]) . "?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
'show' => true,
|
||||
'icon' => !empty($currentInspeksi['foto_form']),
|
||||
],
|
||||
@@ -52,8 +48,7 @@
|
||||
'url' =>
|
||||
route('surveyor.data-pembanding', [
|
||||
'id' => $permohonan->id,
|
||||
]) .
|
||||
"?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
]) . "?dokument={$jaminanId}&jenis_jaminan={$dokumen->jenisJaminan->id}",
|
||||
'show' => true,
|
||||
'icon' => !empty($currentInspeksi['data_pembanding']),
|
||||
],
|
||||
@@ -103,8 +98,10 @@
|
||||
</div>
|
||||
<div class="flex items-center gap-5">
|
||||
<div class="flex gap-0.5">
|
||||
<div class="btn btn-sm btn-icon btn-clear {{ !empty($currentInspeksi['data_form']) ? '' : 'btn-light' }}">
|
||||
<i class="ki-filled {{ !empty($currentInspeksi['data_form']) ? 'ki-check-circle' : 'ki-notepad-edit' }}"></i>
|
||||
<div
|
||||
class="btn btn-sm btn-icon btn-clear {{ !empty($currentInspeksi['data_form']) ? '' : 'btn-light' }}">
|
||||
<i
|
||||
class="ki-filled {{ !empty($currentInspeksi['data_form']) ? 'ki-check-circle' : 'ki-notepad-edit' }}"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -125,8 +122,10 @@
|
||||
</div>
|
||||
<div class="flex items-center gap-5">
|
||||
<div class="flex gap-0.5">
|
||||
<div class="btn btn-sm btn-icon btn-clear {{ !empty($currentInspeksi['foto_form']) ? '' : 'btn-light' }}">
|
||||
<i class="ki-filled {{ !empty($currentInspeksi['foto_form']) ? 'ki-check-circle' : 'ki-notepad-edit' }}"></i>
|
||||
<div
|
||||
class="btn btn-sm btn-icon btn-clear {{ !empty($currentInspeksi['foto_form']) ? '' : 'btn-light' }}">
|
||||
<i
|
||||
class="ki-filled {{ !empty($currentInspeksi['foto_form']) ? 'ki-check-circle' : 'ki-notepad-edit' }}"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<input type="hidden" name="type" value="tanah">
|
||||
<input type="hidden" name="dokument_id" value="{{ request('dokument') }}">
|
||||
<div class="card">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$dokumentName = $dokumen->jenisJaminan->name;
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Alamat Object</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ formatAlamat($dokumen->pemilik) }}
|
||||
</span>
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
<label class="form-label max-w-56">Jenis Aset</label>
|
||||
<div>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
<p class="text-2sm text-gray-700">{{ $item->jenisJaminan->name }}</p>
|
||||
<input type="hidden" name="jenis_asset_name" value="{{ $item->jenisJaminan->name }}">
|
||||
@endforeach
|
||||
@@ -260,6 +260,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Status</h1>
|
||||
@@ -267,14 +268,6 @@
|
||||
<div class="card-body w-full">
|
||||
@include('lpj::component.detail-jaminan', ['status' => true])
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
|
||||
<label class="form-label font-medium max-w-56">Nomor NIB</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input type="text" name="nomor_nib" class="input w-full" value="{{ $forminspeksi['asset']['nomor_nib'] ?? ''}}"
|
||||
placeholder="Masukkan Nomor NIB">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" mx-auto rounded-lg overflow-hidden">
|
||||
<div class="py-4 ">
|
||||
<h1 class="text-md font-medium text-gray-900">Hubungan cadeb/debitur dengan Pemilik Jaminan</h1>
|
||||
@@ -284,7 +277,7 @@
|
||||
<label class="form-label max-w-56">Pemilik Jaminan</label>
|
||||
<div>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@php
|
||||
$hubCadebPemilik = $dokumen->pemilik->hubungan_pemilik->name ?? 'N/A';
|
||||
@endphp
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
<div class="card border border-agi-100 w-full ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Informasi Dinas Tata Ruang
|
||||
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
|
||||
ATURAN TATA KOTA
|
||||
@else
|
||||
Informasi Dinas Tata Ruang
|
||||
@endif
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -90,9 +94,7 @@
|
||||
'index' => 8,
|
||||
'value' => old(
|
||||
'nama_petugas',
|
||||
isset($forminspeksi['fakta']['nama_petugas'])
|
||||
? $forminspeksi['fakta']['nama_petugas']
|
||||
: '',
|
||||
isset($forminspeksi['fakta']['nama_petugas']) ? $forminspeksi['fakta']['nama_petugas'] : '',
|
||||
),
|
||||
],
|
||||
];
|
||||
@@ -104,9 +106,9 @@
|
||||
<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'] }}">
|
||||
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
|
||||
@error($item['name'])
|
||||
<em class="alert text-danger text-sm"></em>
|
||||
<em class="alert text-danger text-sm"></em>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
@@ -122,19 +124,19 @@
|
||||
<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"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'gistaru-preview')">
|
||||
class="file-input file-input-bordered w-full"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'gistaru-preview')">
|
||||
|
||||
<img id="gistaru-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 30rem;"/>
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 30rem;" />
|
||||
|
||||
|
||||
</div>
|
||||
<a href="https://gistaru.atrbpn.go.id/rtronline" type="button" class="btn btn-light"
|
||||
target="_blank">
|
||||
target="_blank">
|
||||
<i class="ki-filled ki-map"></i> Gistaru
|
||||
</a>
|
||||
</div>
|
||||
@@ -150,13 +152,13 @@
|
||||
|
||||
|
||||
<input id="inputBhumi" type="file" name="foto_bhumi"
|
||||
class="file-input file-input-bordered w-full "
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'bhumi-preview')">
|
||||
class="file-input file-input-bordered w-full "
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'bhumi-preview')">
|
||||
<img id="bhumi-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_bhumi']) ? ' ' : 'display: none;' }} max-width: 30rem;"/>
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_bhumi']) ? ' ' : 'display: none;' }} max-width: 30rem;" />
|
||||
</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
|
||||
@@ -173,16 +175,16 @@
|
||||
<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"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'argis-region-preview')">
|
||||
class="file-input file-input-bordered w-full"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'argis-region-preview')">
|
||||
<img id="argis-region-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
|
||||
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
|
||||
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
</div>
|
||||
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light"
|
||||
target="_blank">
|
||||
target="_blank">
|
||||
<i class="ki-filled ki-map"></i>
|
||||
{{ $link_url_region->regions->name_url }}
|
||||
</a>
|
||||
@@ -197,27 +199,29 @@
|
||||
<div class="w-full grid gap-5">
|
||||
<div class="input-group w-full flex gap-2">
|
||||
<input id="foto_tempat" type="file" name="foto_tempat"
|
||||
class="file-input file-input-bordered w-full"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'foto_tempat-preview')">
|
||||
class="file-input file-input-bordered w-full"
|
||||
accept=".jpg,.jpeg,.png,.gif,.bmp,.tiff,.tif,.webp,.svg"
|
||||
onchange="previewImage(this, 'foto_tempat-preview')">
|
||||
<button type="button" id="btnCamera" class="btn btn-light" data-modal-toggle="#cameraModal">
|
||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@if($forminspeksi)
|
||||
@if(is_array($forminspeksi['foto_tempat']))
|
||||
@if(count($forminspeksi['foto_tempat']) > 0)
|
||||
<img id="foto_tempat-preview"
|
||||
src="{{ isset($forminspeksi['foto_tempat']) ? asset('storage/' . (is_array($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'][0] : $forminspeksi['foto_tempat'])) : '' }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
@endif
|
||||
@else
|
||||
@if ($forminspeksi)
|
||||
@php
|
||||
$fotoTempat = $forminspeksi['foto_tempat'] ?? null;
|
||||
@endphp
|
||||
|
||||
@if (is_array($fotoTempat) && count($fotoTempat) > 0)
|
||||
<img id="foto_tempat-preview"
|
||||
src="{{ asset('storage/'. (isset($forminspeksi['foto_tempat'])? $forminspeksi['foto_tempat'] : '')) }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
src="{{ isset($forminspeksi['foto_tempat']) ? asset('storage/' . (is_array($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'][0] : $forminspeksi['foto_tempat'])) : '' }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }}
|
||||
@else
|
||||
<img id="foto_tempat-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'] : '')) }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
@@ -236,7 +240,7 @@
|
||||
<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="3">{{ old("keterangan.$index", $item) }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button"
|
||||
style="display: none;">
|
||||
style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -244,8 +248,7 @@
|
||||
@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="3"></textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button"
|
||||
style="display: none;">
|
||||
<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>
|
||||
@@ -253,7 +256,7 @@
|
||||
@endif
|
||||
</div>
|
||||
<button type="button" onclick="addClonableItem('keterangan-container', 'keterangan')"
|
||||
class="btn btn-primary btn-sm mt-5 ">
|
||||
class="btn btn-primary btn-sm mt-5 ">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
@include('lpj::surveyor.components.header')
|
||||
@include('lpj::surveyor.components.rap')
|
||||
@else
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@@ -67,6 +67,8 @@
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
<span id="saveButtonText">Save</span>
|
||||
</button>
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}"
|
||||
class="btn btn-info" id="saveButton">
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}"
|
||||
class="btn btn-info" id="saveButton">
|
||||
<i class="ki-filled ki-printer"></i>
|
||||
@@ -81,7 +83,7 @@
|
||||
@push('scripts')
|
||||
<script src="https://cdn.jsdelivr.net/npm/signature_pad@4.1.7/dist/signature_pad.umd.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
const datas = @json($forminspeksi);
|
||||
const datas = @json($forminspeksi ?? '');
|
||||
console.log(datas);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
@@ -304,125 +306,6 @@
|
||||
});
|
||||
|
||||
|
||||
function updateAlamatFields(status) {
|
||||
// Ambil elemen formulir
|
||||
const addressForm = document.getElementById('alamat_form');
|
||||
const inputs = addressForm.querySelectorAll('input, select');
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (status === 'sesuai') {
|
||||
addressInput.value = "{{ $dokumen->address ?? '' }}";
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.setAttribute('readonly', true);
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.setAttribute('disabled', true);
|
||||
element.classList.add('disabled-input')
|
||||
}
|
||||
});
|
||||
|
||||
addressForm.style.display = 'grid';
|
||||
addressForm.disabled = true;
|
||||
addressForm.classList.add('disabled-input')
|
||||
|
||||
|
||||
} else if (status === 'tidak sesuai') {
|
||||
addressForm.style.display = 'grid';
|
||||
|
||||
addressForm.removeAttribute('disabled');
|
||||
addressForm.classList.remove('disabled-input')
|
||||
const formInspeksi = @json($forminspeksi);
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (formInspeksi && formInspeksi.asset && formInspeksi.asset.alamat) {
|
||||
if (formInspeksi.asset.alamat['tidak sesuai'] && formInspeksi.asset.alamat['tidak sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['tidak sesuai'].address;
|
||||
} else if (formInspeksi.asset.alamat['sesuai'] && formInspeksi.asset.alamat['sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['sesuai'].address;
|
||||
} else {
|
||||
addressInput.value = "";
|
||||
}
|
||||
}
|
||||
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.removeAttribute('readonly');
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.removeAttribute('disabled');
|
||||
element.classList.remove('disabled-input')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFieldVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValue = $(`[name="${fieldName}"]:checked`).val();
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
if (visibleValues.includes(selectedValue)) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleCheckboxVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Cek apakah salah satu nilai yang dipilih cocok dengan visibleValues
|
||||
const shouldShow = visibleValues.some(value => selectedValues.includes(value.toLowerCase()));
|
||||
|
||||
if (shouldShow) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleMultipleFields(fieldName, mappings) {
|
||||
// Ambil semua nilai checkbox yang dicentang
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
// Iterasi melalui setiap mapping
|
||||
for (const [key, inputId] of Object.entries(mappings)) {
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Tampilkan input jika nilai yang relevan dipilih
|
||||
if (selectedValues.includes(key.toLowerCase())) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val(''); // Sembunyikan dan reset nilai
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) {
|
||||
// Ambil elemen berdasarkan ID
|
||||
const alamatSesuai = document.getElementById(idSesuai);
|
||||
const alamatTidakSesuai = document.getElementById(idTidakSesuai);
|
||||
|
||||
// Periksa nilai yang dipilih dan tampilkan elemen yang sesuai
|
||||
if (selectedValue === 'sesuai') {
|
||||
alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai"
|
||||
} else if (selectedValue === 'tidak sesuai') {
|
||||
alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -466,6 +349,17 @@
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
hideLoadingSwal();
|
||||
if (status === 'timeout') {
|
||||
Swal.fire({
|
||||
title: 'Timeout!',
|
||||
text: 'Waktu permintaan habis. Silakan coba lagi.',
|
||||
icon: 'warning',
|
||||
confirmButtonText: 'OK'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
let errors = xhr.responseJSON?.errors;
|
||||
$('.alert').text('');
|
||||
@@ -474,11 +368,16 @@
|
||||
$(`#error-${key}`).text(value[0]);
|
||||
toastrErrorBuild(value[0]);
|
||||
});
|
||||
// toastrErrorBuild(error);
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: 'Error!',
|
||||
text: xhr.responseJSON?.message || 'Terjadi kesalahan saat mengirim data.',
|
||||
icon: 'error',
|
||||
confirmButtonText: 'OK'
|
||||
});
|
||||
}
|
||||
hideLoadingSwal();
|
||||
console.log(errors);
|
||||
}
|
||||
},
|
||||
timeout: 10000
|
||||
});
|
||||
}
|
||||
|
||||
@@ -499,57 +398,6 @@
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
function updateAnalisa(params) {
|
||||
const inputMap = {
|
||||
jenis_asset: 'jenis_asset_tidak_sesuai',
|
||||
analisa_tanah: 'analisa_tanah_tidak_sesuai',
|
||||
analisa_unit: 'analisa_luas_unit_tidak_sesuai',
|
||||
analisa_bangunan: 'analisa_bangunan_tidak_sesuai',
|
||||
};
|
||||
|
||||
// Pastikan elemen ID ada di inputMap
|
||||
if (!inputMap[params]) {
|
||||
console.error('Parameter tidak valid:', params);
|
||||
return;
|
||||
}
|
||||
|
||||
// Ambil nilai berdasarkan parameter
|
||||
const inputValue = document.getElementById(inputMap[params]).value;
|
||||
const data = {
|
||||
[params === 'jenis_asset' ? 'jenis_asset' : params.replace('analisa_', 'luas_')]: inputValue,
|
||||
types: params
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: '{{ route('surveyor.update_analisa', ['id' => $permohonan->id]) }}',
|
||||
type: 'POST',
|
||||
data: data,
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
if (response.success) {
|
||||
// window.location.href =
|
||||
// '{{ route('surveyor.show', ['id' => $permohonan->id]) }}';
|
||||
toastrSuccessBuild(response.message);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Terjadi error:', error);
|
||||
console.log('Status:', status);
|
||||
console.log('Response:', xhr.responseText);
|
||||
if (xhr.responseJSON.message) {
|
||||
toastrErrorBuild(xhr.responseJSON.message);
|
||||
} else {
|
||||
toastrErrorBuild('Terjadi kesalahan');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script></script>
|
||||
|
||||
@@ -201,8 +201,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nomor polisi</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$details = json_decode($item->detail);
|
||||
$nomo_polisi = isset($details['nomo_polisi']) ? $details['nomo_polisi'] : 'N/A';
|
||||
@@ -239,8 +239,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Merek</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$details = json_decode($item->detail);
|
||||
$merek = isset($details['merek']) ? $details['merek'] : 'N/A';
|
||||
@@ -278,8 +278,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Warna</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$details = json_decode($item->detail);
|
||||
$warna = isset($details['warna']) ? $details['warna'] : 'N/A';
|
||||
@@ -317,8 +317,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nomor Rangka</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$details = json_decode($item->detail);
|
||||
$nomor_rangka = isset($details['nomor_rangka']) ? $details['nomor_rangka'] : 'N/A';
|
||||
@@ -355,8 +355,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nomor Mesin</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$details = json_decode($item->detail);
|
||||
$nomor_mesin = isset($details['nomor_mesin']) ? $details['nomor_mesin'] : 'N/A';
|
||||
|
||||
@@ -2,13 +2,10 @@
|
||||
<!-- Luas Tanah Bangunan -->
|
||||
<tr>
|
||||
@php
|
||||
$cekLuasBangunan = isset(
|
||||
$forminspeksi['bangunan']['luas_tanah_bagunan']['tidak sesuai'],
|
||||
)
|
||||
$cekLuasBangunan = isset($forminspeksi['bangunan']['luas_tanah_bagunan']['tidak sesuai'])
|
||||
? 'tidak sesuai'
|
||||
: 'sesuai';
|
||||
$luasBangunan =
|
||||
$forminspeksi['bangunan']['luas_tanah_bagunan'][$cekLuasBangunan] ?? null;
|
||||
$luasBangunan = $forminspeksi['bangunan']['luas_tanah_bagunan'][$cekLuasBangunan] ?? null;
|
||||
@endphp
|
||||
<td width="25%"><strong>Luas Tanah Bangunan</strong></td>
|
||||
<td>{{ $luasBangunan }}</td>
|
||||
@@ -91,3 +88,65 @@
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@if (isset($forminspeksi['bangunan']['spesifikasi_bangunan']) && count($forminspeksi['bangunan']['spesifikasi_bangunan']) > 0)
|
||||
@foreach ($forminspeksi['bangunan']['spesifikasi_bangunan'] as $bangunanIndex => $bangunan)
|
||||
<tr>
|
||||
<td colspan="2"><strong>Spesifikasi Bangunan {{ $bangunanIndex + 1 }}</strong></td>
|
||||
</tr>
|
||||
@if (isset($basicData['spekKategoriBangunan']))
|
||||
@foreach ($basicData['spekKategoriBangunan'] as $index => $spesifikasi)
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>{{ $spesifikasi->name }}</strong></td>
|
||||
<td>
|
||||
<table class="checkbox-list">
|
||||
@if (isset($basicData['spekBangunan']))
|
||||
@php $count = 0; @endphp
|
||||
<tr>
|
||||
@foreach ($basicData['spekBangunan'] as $kategori)
|
||||
@if ($kategori->spek_kategori_bangunan_id == $spesifikasi->id)
|
||||
@php
|
||||
$selectedValues = [];
|
||||
if (isset($bangunan['spek_kategori_bangunan'][$spesifikasi->name])) {
|
||||
$selectedValues = array_values($bangunan['spek_kategori_bangunan'][$spesifikasi->name]);
|
||||
}
|
||||
$lainnyaValue = $bangunan['spek_kategori_bangunan'][$spesifikasi->name]['lainnya'] ?? '';
|
||||
@endphp
|
||||
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" class="checkbox-lainnya" style="margin-right: 3px;"
|
||||
name="spesifikasi_bangunan[{{ $bangunanIndex }}][{{ $spesifikasi->name }}][]"
|
||||
value="{{ $kategori->name }}"
|
||||
@if (in_array($kategori->name, $selectedValues)) checked @endif>
|
||||
{{ $kategori->name }}
|
||||
|
||||
@if ($kategori->name == 'Lainnya')
|
||||
<span class="text-lainnya"
|
||||
style="display: {{ in_array('Lainnya', $selectedValues) ? 'inline' : 'none' }};">
|
||||
: {{ $lainnyaValue }}
|
||||
</span>
|
||||
@endif
|
||||
</label>
|
||||
</td>
|
||||
|
||||
@php $count++; @endphp
|
||||
|
||||
@if ($count % 3 == 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
@endif
|
||||
@endforeach
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</table>
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
G
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
KESIMPULAN
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
1 KESIMPULAN PENILAI
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Positif</strong></td>
|
||||
<td width="100%">
|
||||
@isset($forminspeksi['fakta']['fakta_positif'])
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
@foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item)
|
||||
<tr>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@endisset
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Negatif</strong></td>
|
||||
<td>
|
||||
@php
|
||||
$faktaNegatif = $forminspeksi['fakta']['fakta_negatif'] ?? [];
|
||||
$faktaNegatifFiltered = is_array($faktaNegatif)
|
||||
? array_filter($faktaNegatif, function ($item) {
|
||||
return !empty(trim($item));
|
||||
})
|
||||
: [];
|
||||
@endphp
|
||||
|
||||
@if (!empty($faktaNegatifFiltered))
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
@foreach ($faktaNegatifFiltered as $key => $item)
|
||||
<tr>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@else
|
||||
<p>Tidak ada faktor negatif yang teridentifikasi.</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Lain - lain :</strong></td>
|
||||
<td>
|
||||
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
|
||||
<p>{!! nl2br(e($keterangan)) !!}</p>
|
||||
@endforeach
|
||||
<p>{{ $forminspeksi['fakta']['rute_menuju'] ?? '' }}</p>
|
||||
|
||||
@foreach ($forminspeksi['fakta']['informasi_dokument'] ?? [] as $informasi)
|
||||
<p>{!! nl2br(e($informasi)) !!}</p>
|
||||
@endforeach
|
||||
|
||||
@foreach ($forminspeksi['fakta']['kondisi_lingkungan'] ?? [] as $kondisi)
|
||||
<p>{!! nl2br(e($kondisi)) !!}</p>
|
||||
@endforeach
|
||||
|
||||
@foreach ($forminspeksi['fakta']['batas_batas_input'] ?? [] as $arah => $batas)
|
||||
@if ($batas)
|
||||
<p> - {{ $arah }} : {{ $batas }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@foreach ($forminspeksi['fakta']['kondisi_lain_bangunan'] ?? [] as $kondisiLain)
|
||||
<p>{!! nl2br(e($kondisiLain)) !!}</p>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
2 CATATAN YANG PERLU DI PERHATIKAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"></td>
|
||||
<td>
|
||||
<table>
|
||||
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
|
||||
<tr>
|
||||
<td>
|
||||
<p>{!! nl2br(e($keterangan)) !!}</p>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3 DINAS TATA KOTA
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
@php
|
||||
$informasi = [
|
||||
'peruntukan',
|
||||
'kdb',
|
||||
'kdh',
|
||||
'gsb',
|
||||
'max_lantai',
|
||||
'klb',
|
||||
'gss',
|
||||
'pelebaran_jalan',
|
||||
'nama_petugas',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@foreach ($informasi as $key)
|
||||
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
||||
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
|
||||
{{ $forminspeksi['fakta'][$key] }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,245 @@
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
F
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
SARANA PELENGKAP DAN LINKUNGAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td width="25%">Jarak Jalan Utama</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_jalan_utama'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jalan Lingkungan</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_jalan_utama'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jarak CBD Point</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_cbd_point'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nama CBD Point</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['nama_cbd_point'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lebar Perkerasan Jalan</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['lebar_perkerasan_jalan'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Sarana Pelengkap</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['saranaPelengkap']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['saranaPelengkap'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" name="sarana_pelengkap[]" value="{{ $item->name }}"
|
||||
{{ isset($forminspeksi['bangunan']['sarana_pelengkap']) && in_array($item->name, $forminspeksi['bangunan']['sarana_pelengkap']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
|
||||
@if (isset($forminspeksi['bangunan']['sarana_pelengkap']) &&
|
||||
in_array($item->name, $forminspeksi['bangunan']['sarana_pelengkap']))
|
||||
@php
|
||||
$inputValues = isset($forminspeksi['bangunan']['sarana_pelengkap_input'][$index])
|
||||
? $forminspeksi['bangunan']['sarana_pelengkap_input'][$index]
|
||||
: null;
|
||||
@endphp
|
||||
@if ($inputValues)
|
||||
<span class="label-checkbox"> - {{ $inputValues }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Lapisan Perkerasan Jalan</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['perkerasanJalan']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['perkerasanJalan'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) && in_array($item->name, $forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Lapisan Perkerasan Jalan</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['laluLintasLokasi']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['laluLintasLokasi'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['lalu_lintas']) && in_array($item->name, $forminspeksi['lingkungan']['lalu_lintas']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Golongan Masyarakat Sekitar</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['golMasySekitar']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['golMasySekitar'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['gol_mas_sekitar']) && in_array($item->name, $forminspeksi['lingkungan']['gol_mas_sekitar']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Terletak di Daerah</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['terletakDiArea']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['terletakDiArea'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['terletak_diarea']) && in_array($item->name, $forminspeksi['lingkungan']['terletak_diarea']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Disekitar Lokasi</strong></td>
|
||||
<td>
|
||||
<div class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="radio" name="disekitar_lokasi" value="ya"
|
||||
{{ ($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'ya' ? 'checked' : '' }}>
|
||||
Ya
|
||||
@if (($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'ya')
|
||||
- Kondisi Bangunan:
|
||||
{{ $forminspeksi['lingkungan']['kondisi_bagunan_disekitar_lokasi'] ?? '' }}
|
||||
, Sifat Bangunan:
|
||||
{{ $forminspeksi['lingkungan']['sifat_bagunan_disekitar_lokasi'] ?? '' }}
|
||||
@endif
|
||||
</label>
|
||||
<label class="checkbox-label">
|
||||
<input type="radio" name="disekitar_lokasi" value="tidak"
|
||||
{{ ($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'tidak' ? 'checked' : '' }}>
|
||||
Tidak
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Merupakan Daerah</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['merupakanDaerah']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['merupakanDaerah'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['merupakan_daerah']) && in_array($item->name, $forminspeksi['lingkungan']['merupakan_daerah']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Fasilitas Umum Dekat Lokasi</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['fasilitasObjek']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['fasilitasObjek'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['fasilitas_dekat_object']) && in_array($item->name, $forminspeksi['lingkungan']['fasilitas_dekat_object']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -200,15 +200,15 @@
|
||||
@php
|
||||
$data = '';
|
||||
$dokument = null;
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$data .= $dokumen->jenisJaminan->name . ', ';
|
||||
$dokument = $dokumen;
|
||||
}
|
||||
$data = rtrim($data, ', ');
|
||||
|
||||
$senior_officer = null;
|
||||
if ($permohonan->debiture && $permohonan->debiture->documents) {
|
||||
foreach ($permohonan->debiture->documents as $dokumen) {
|
||||
if ($permohonan->debiture && $permohonan->documents) {
|
||||
foreach ($permohonan->documents as $dokumen) {
|
||||
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||
$teams = $permohonan->region->teams;
|
||||
|
||||
@@ -554,290 +554,50 @@
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
|
||||
@include('lpj::surveyor.components.print-out.rap')
|
||||
@else
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
E
|
||||
</td>
|
||||
<td style="text-align: center; text-transform: uppercase; border: 1px solid #000;">
|
||||
ANALISA {{ $data }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
E
|
||||
</td>
|
||||
<td style="text-align: center; text-transform: uppercase; border: 1px solid #000;">
|
||||
ANALISA {{ $data }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
</td>
|
||||
<td style="">
|
||||
|
||||
</td>
|
||||
<td style="">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@endphp
|
||||
@if (isset($formKategori) && $formKategori)
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
@if ($dokumen->jenisJaminan)
|
||||
@php
|
||||
$kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori];
|
||||
$kategoriUnik = array_unique($kategoriArray);
|
||||
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
@foreach ($kategoriUnik as $kategori)
|
||||
{{-- Tampilkan komponen sesuai kategori jika file komponen ada --}}
|
||||
@includeIf('lpj::surveyor.components.print-out.' . str_replace('-', '-', $kategori), [
|
||||
'dokumen' => $dokumen,
|
||||
])
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
F
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
SARANA PELENGKAP DAN LINKUNGAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td width="25%">Jarak Jalan Utama</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_jalan_utama'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jalan Lingkungan</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_jalan_utama'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jarak CBD Point</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['jarak_cbd_point'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nama CBD Point</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['nama_cbd_point'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lebar Perkerasan Jalan</td>
|
||||
<td>{{ $forminspeksi['lingkungan']['lebar_perkerasan_jalan'] ?? 'Tidak Diketahui' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Sarana Pelengkap</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['saranaPelengkap']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['saranaPelengkap'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@if (isset($formKategori) && $formKategori)
|
||||
@php
|
||||
$kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori];
|
||||
$kategoriUnik = array_unique($kategoriArray);
|
||||
@endphp
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" name="sarana_pelengkap[]" value="{{ $item->name }}"
|
||||
{{ isset($forminspeksi['bangunan']['sarana_pelengkap']) && in_array($item->name, $forminspeksi['bangunan']['sarana_pelengkap']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
|
||||
@if (isset($forminspeksi['bangunan']['sarana_pelengkap']) &&
|
||||
in_array($item->name, $forminspeksi['bangunan']['sarana_pelengkap']))
|
||||
@php
|
||||
$inputValues = isset($forminspeksi['bangunan']['sarana_pelengkap_input'][$index])
|
||||
? $forminspeksi['bangunan']['sarana_pelengkap_input'][$index]
|
||||
: null;
|
||||
@endphp
|
||||
@if ($inputValues)
|
||||
<span class="label-checkbox"> - {{ $inputValues }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Lapisan Perkerasan Jalan</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['perkerasanJalan']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['perkerasanJalan'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) && in_array($item->name, $forminspeksi['lingkungan']['perkerasan_jalan']['perkerasan_jalan']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Lapisan Perkerasan Jalan</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['laluLintasLokasi']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['laluLintasLokasi'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['lalu_lintas']) && in_array($item->name, $forminspeksi['lingkungan']['lalu_lintas']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Golongan Masyarakat Sekitar</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['golMasySekitar']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['golMasySekitar'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['gol_mas_sekitar']) && in_array($item->name, $forminspeksi['lingkungan']['gol_mas_sekitar']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Terletak di Daerah</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['terletakDiArea']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['terletakDiArea'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['terletak_diarea']) && in_array($item->name, $forminspeksi['lingkungan']['terletak_diarea']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Disekitar Lokasi</strong></td>
|
||||
<td>
|
||||
<div class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="radio" name="disekitar_lokasi" value="ya"
|
||||
{{ ($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'ya' ? 'checked' : '' }}>
|
||||
Ya
|
||||
@if (($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'ya')
|
||||
- Kondisi Bangunan:
|
||||
{{ $forminspeksi['lingkungan']['kondisi_bagunan_disekitar_lokasi'] ?? '' }}
|
||||
, Sifat Bangunan:
|
||||
{{ $forminspeksi['lingkungan']['sifat_bagunan_disekitar_lokasi'] ?? '' }}
|
||||
@foreach ($kategoriUnik as $kategori)
|
||||
{{-- Tampilkan komponen sesuai kategori jika file komponen ada --}}
|
||||
@includeIf(
|
||||
'lpj::surveyor.components.print-out.' . str_replace('-', '-', $kategori),
|
||||
[
|
||||
'dokumen' => $dokumen,
|
||||
]
|
||||
)
|
||||
@endforeach
|
||||
@endif
|
||||
</label>
|
||||
<label class="checkbox-label">
|
||||
<input type="radio" name="disekitar_lokasi" value="tidak"
|
||||
{{ ($forminspeksi['lingkungan']['disekitar_lokasi'] ?? '') == 'tidak' ? 'checked' : '' }}>
|
||||
Tidak
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Merupakan Daerah</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['merupakanDaerah']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['merupakanDaerah'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['merupakan_daerah']) && in_array($item->name, $forminspeksi['lingkungan']['merupakan_daerah']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><strong>Fasilitas Umum Dekat Lokasi</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['fasilitasObjek']))
|
||||
<table class="checkbox-list">
|
||||
<tr>
|
||||
@foreach ($basicData['fasilitasObjek'] as $index => $item)
|
||||
@if ($index % 3 == 0 && $index > 0)
|
||||
</tr>
|
||||
<tr>
|
||||
@endif
|
||||
<td class="checkbox-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox"
|
||||
{{ isset($forminspeksi['lingkungan']['fasilitas_dekat_object']) && in_array($item->name, $forminspeksi['lingkungan']['fasilitas_dekat_object']) ? 'checked' : '' }}>
|
||||
{{ $item->name }}
|
||||
</label>
|
||||
</td>
|
||||
@endforeach
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endIf
|
||||
|
||||
{{-- <tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
@@ -848,128 +608,6 @@
|
||||
</td>
|
||||
</tr> --}}
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
G
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
KESIMPULAN
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
1 KESIMPULAN PENILAI
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Positif</strong></td>
|
||||
<td width="100%">
|
||||
@isset($forminspeksi['fakta']['fakta_positif'])
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
@foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item)
|
||||
<tr>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@endisset
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"><strong>Faktor Negatif</strong></td>
|
||||
<td>
|
||||
@php
|
||||
$faktaNegatif = $forminspeksi['fakta']['fakta_negatif'] ?? [];
|
||||
$faktaNegatifFiltered = is_array($faktaNegatif)
|
||||
? array_filter($faktaNegatif, function ($item) {
|
||||
return !empty(trim($item));
|
||||
})
|
||||
: [];
|
||||
@endphp
|
||||
|
||||
@if (!empty($faktaNegatifFiltered))
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
@foreach ($faktaNegatifFiltered as $key => $item)
|
||||
<tr>
|
||||
<td>{!! nl2br(e($item)) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@else
|
||||
<p>Tidak ada faktor negatif yang teridentifikasi.</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
2 CATATAN YANG PERLU DI PERHATIKAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="25%" style="vertical-align: top;"></td>
|
||||
<td>
|
||||
@php
|
||||
$keterangan = $forminspeksi['fakta']['keterangan'] ?? '';
|
||||
if (is_array($keterangan)) {
|
||||
$keterangan = implode(', ', array_filter($keterangan));
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if (!empty($keterangan))
|
||||
<table style="width: 100%; border-collapse: collapse;">
|
||||
<tr>
|
||||
<td>{{ $keterangan }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
3 DINAS TATA KOTA
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
@php
|
||||
$informasi = [
|
||||
'peruntukan',
|
||||
'kdb',
|
||||
'kdh',
|
||||
'gsb',
|
||||
'max_lantai',
|
||||
'klb',
|
||||
'gss',
|
||||
'pelebaran_jalan',
|
||||
'nama_petugas',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@foreach ($informasi as $key)
|
||||
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
||||
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
|
||||
{{ $forminspeksi['fakta'][$key] }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center;">
|
||||
|
||||
@@ -1062,6 +700,11 @@
|
||||
Cabang : {{ $permohonan->debiture->branch->name ?? '' }}
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
const datas = @json($forminspeksi)
|
||||
|
||||
console.log(datas);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
448
resources/views/surveyor/components/print-out/rap.blade.php
Normal file
448
resources/views/surveyor/components/print-out/rap.blade.php
Normal file
@@ -0,0 +1,448 @@
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
E
|
||||
</td>
|
||||
<td style="text-align: center; text-transform: uppercase; border: 1px solid #000;">
|
||||
PERIZINAN
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
@if (isset($forminspeksi['perizinan']) && is_array($forminspeksi['perizinan']) && count($forminspeksi['perizinan']) > 0)
|
||||
@foreach ($forminspeksi['perizinan'] as $perizinan)
|
||||
<tr>
|
||||
<td style="width: 20%; padding: 2px;">Perizinan</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td style="width: 79%; padding: 2px;">{{ $perizinan['perizinan'] }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
@if (isset($forminspeksi['brosur_price_list']) && count($forminspeksi['brosur_price_list']) > 0)
|
||||
@foreach ($forminspeksi['brosur_price_list'] as $perizinan)
|
||||
<tr>
|
||||
<td style="width: 20%; padding: 2px;">Brosur & Pricelist</td>
|
||||
<td style="width: 1%; padding: 2px;">:</td>
|
||||
<td style="width: 79%; padding: 2px;">{{ $perizinan['jenis'] }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
F
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
DESKRIPSI DEVELOPER
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['pengalaman_developer'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['developer_anggota'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@isset($forminspeksi['lainnya_developer'])
|
||||
@foreach ($forminspeksi['lainnya_developer'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endisset
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
G
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
KONDISI, LINGKUNGAN DAN PROGRESS PEMBANGUNAN
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table style="width: 100%;">
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['kapan_mulai_dibangun'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['kondisi_perumahan'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['progres_pembangunan'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['kontraktor'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['lingkungan_sekitar'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['komplek_disekitar'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['pusat_keramaian'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{!! nl2br(e($forminspeksi['transportasi_umum'] ?? 'Data tidak tersedia')) !!}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@isset($forminspeksi['lainnya_kondisi'])
|
||||
@foreach ($forminspeksi['lainnya_kondisi'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endisset
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@isset($forminspeksi['partisi'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
H
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
PARTISI BANGUNAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
|
||||
<table>
|
||||
@if (is_array($forminspeksi['partisi']))
|
||||
@foreach ($forminspeksi['partisi'] as $key => $item)
|
||||
@if (is_array($item))
|
||||
<tr>
|
||||
<td>
|
||||
{{ $item['nama'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
{{ $item['value'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
|
||||
@isset($forminspeksi['jumlah_unit'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
I
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
JUMLAH UNIT, BLOK, TYPE DAN LUAS BANGUNAN
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['jumlah_unit'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endisset
|
||||
@isset($forminspeksi['batas_batas_perumahan'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
J
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
BATAS-BATAS PERUMAHAN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['batas_batas_perumahan'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
|
||||
@isset($forminspeksi['fasus_fasum'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
J
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
FASOS/FASUM
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['fasus_fasum'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
@isset($forminspeksi['progres_penjualan'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
K
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
PROGRES PENJUALAN SAAT INI
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['progres_penjualan'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
@isset($forminspeksi['harga_unit'])
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
L
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
HARGA UNIT
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['harga_unit'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
@isset($forminspeksi['target_market'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
M
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
TARGET MARKET
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['target_market'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endisset
|
||||
@isset($forminspeksi['kerjasama_dengan_bank'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
N
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
KERJASAMA DENGAN BANK LAIN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['kerjasama_dengan_bank'] as $item)
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br(e($item)) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endisset
|
||||
@isset($forminspeksi['rute_menuju_lokasi'])
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
O
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
RUTE MENUJU LOKASI
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
{{ $forminspeksi['rute_menuju_lokasi'] ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endisset
|
||||
@if (isset($forminspeksi['fakta']) && is_array($forminspeksi['fakta']))
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
P
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
ATURAN TATA KOTA
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@php
|
||||
$informasi = [
|
||||
'peruntukan',
|
||||
'kdb',
|
||||
'kdh',
|
||||
'gsb',
|
||||
'max_lantai',
|
||||
'klb',
|
||||
'gss',
|
||||
'pelebaran_jalan',
|
||||
'nama_petugas',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@if (isset($forminspeksi['fakta']) && is_array($forminspeksi['fakta']))
|
||||
@foreach ($informasi as $key)
|
||||
@if (isset($forminspeksi['fakta'][$key]) && $forminspeksi['fakta'][$key] !== '-')
|
||||
<p> - {{ ucfirst(str_replace('_', ' ', $key)) }}:
|
||||
{{ $forminspeksi['fakta'][$key] }}</p>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endif
|
||||
|
||||
@isset($forminspeksi['fakta']['keterangan'])
|
||||
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
P
|
||||
</td>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
CATATAN LAINNYA
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; border: 1px solid #000;">
|
||||
|
||||
</td>
|
||||
<td style=" border: 1px solid #000;">
|
||||
<table>
|
||||
@foreach ($forminspeksi['fakta']['keterangan'] ?? [] as $keterangan)
|
||||
<tr>
|
||||
<td>
|
||||
<p>{!! nl2br(e($keterangan)) !!}</p>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endisset
|
||||
@@ -10,8 +10,8 @@
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Luas Tanah</label>
|
||||
<div class="mt-2">
|
||||
@if (isset($permohonan->debiture->documents))
|
||||
@foreach ($permohonan->debiture->documents as $item)
|
||||
@if (isset($permohonan->documents))
|
||||
@foreach ($permohonan->documents as $item)
|
||||
@php
|
||||
$luas_tanah = 'N/A';
|
||||
if ($item->detail) {
|
||||
|
||||
@@ -146,11 +146,10 @@
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
function jadwal(id) {
|
||||
function jadwal(id) {
|
||||
document.getElementById('ids').value = id;
|
||||
}
|
||||
|
||||
|
||||
function surveyorFreeze(permohonanId, noReg, debitur) {
|
||||
|
||||
Swal.fire({
|
||||
@@ -258,24 +257,40 @@
|
||||
title: 'Action',
|
||||
render: (item, data) => {
|
||||
let actionHtml = '';
|
||||
// if (data.documents.length > 0) {
|
||||
|
||||
if (data.penilaian.waktu_penilaian == null ||
|
||||
(data.penilaian.waktu_penilaian && data.penilaian.authorized_status == null)) {
|
||||
actionHtml += `
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-primary"
|
||||
data-modal-toggle="#modal_jadwal"
|
||||
onclick="jadwal(${data.penilaian.id})"
|
||||
title="Buat Jadwal Kunjungan">
|
||||
<i class="ki-filled ki-calendar-edit"></i>
|
||||
</a>
|
||||
`;
|
||||
} else {
|
||||
|
||||
actionHtml += `
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-warning"
|
||||
href="surveyor/${data.id}/show?form=inspeksi"
|
||||
title="Lihat Form Inspeksi">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>
|
||||
<button type="button"
|
||||
class="btn btn-sm btn-icon btn-clear btn-info"
|
||||
onclick="surveyorFreeze('${data.id}', '${data.nomor_registrasi}', '${data.debiture?.name}')"
|
||||
title="Freeze Survey">
|
||||
<i class="ki-filled ki-arrow-circle-right"></i>
|
||||
</button>
|
||||
`;
|
||||
}
|
||||
// } else {
|
||||
|
||||
// actionHtml =
|
||||
// `<span class="badge badge-sm badge-danger uppercase flex justify-center">Lengkapi Aset Jaminan</span>`;
|
||||
// }
|
||||
|
||||
if (data.penilaian.waktu_penilaian == null || data.penilaian.waktu_penilaian && data
|
||||
.penilaian.authorized_status == null) {
|
||||
actionHtml += `
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-primary" data-modal-toggle="#modal_jadwal" onclick="jadwal(${data.penilaian.id})" title="Buat Jadwal Kunjungan">
|
||||
<i class="ki-filled ki-calendar-edit"></i>
|
||||
</a>
|
||||
`;
|
||||
} else {
|
||||
actionHtml += `
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="surveyor/${data.id}/show?form=inspeksi" title="Lihat Form Inspeksi">
|
||||
<i class="ki-outline ki-eye"></i>
|
||||
</a>
|
||||
<button type="button" class="btn btn-sm btn-icon btn-clear btn-info" onclick="surveyorFreeze('${data.id}', '${data.nomor_registrasi}', '${data.debiture?.name}')" title="Freeze Survey">
|
||||
<i class="ki-filled ki-arrow-circle-right"></i>
|
||||
</button>
|
||||
`;
|
||||
}
|
||||
return actionHtml;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,4 +336,174 @@
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function updateAnalisa(params) {
|
||||
const inputMap = {
|
||||
jenis_asset: 'jenis_asset_tidak_sesuai',
|
||||
analisa_tanah: 'analisa_tanah_tidak_sesuai',
|
||||
analisa_unit: 'analisa_luas_unit_tidak_sesuai',
|
||||
analisa_bangunan: 'analisa_bangunan_tidak_sesuai',
|
||||
};
|
||||
|
||||
// Pastikan elemen ID ada di inputMap
|
||||
if (!inputMap[params]) {
|
||||
console.error('Parameter tidak valid:', params);
|
||||
return;
|
||||
}
|
||||
|
||||
// Ambil nilai berdasarkan parameter
|
||||
const inputValue = document.getElementById(inputMap[params]).value;
|
||||
const data = {
|
||||
[params === 'jenis_asset' ? 'jenis_asset' : params.replace('analisa_', 'luas_')]: inputValue,
|
||||
types: params
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: '{{ route('surveyor.update_analisa', ['id' => $permohonan->id]) }}',
|
||||
type: 'POST',
|
||||
data: data,
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
if (response.success) {
|
||||
// window.location.href =
|
||||
// '{{ route('surveyor.show', ['id' => $permohonan->id]) }}';
|
||||
toastrSuccessBuild(response.message);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Terjadi error:', error);
|
||||
console.log('Status:', status);
|
||||
console.log('Response:', xhr.responseText);
|
||||
if (xhr.responseJSON.message) {
|
||||
toastrErrorBuild(xhr.responseJSON.message);
|
||||
} else {
|
||||
toastrErrorBuild('Terjadi kesalahan');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateAlamatFields(status) {
|
||||
// Ambil elemen formulir
|
||||
const addressForm = document.getElementById('alamat_form');
|
||||
const inputs = addressForm.querySelectorAll('input, select');
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (status === 'sesuai') {
|
||||
addressInput.value = "{{ $dokumen->address ?? '' }}";
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.setAttribute('readonly', true);
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.setAttribute('disabled', true);
|
||||
element.classList.add('disabled-input')
|
||||
}
|
||||
});
|
||||
|
||||
addressForm.style.display = 'grid';
|
||||
addressForm.disabled = true;
|
||||
addressForm.classList.add('disabled-input')
|
||||
|
||||
|
||||
} else if (status === 'tidak sesuai') {
|
||||
addressForm.style.display = 'grid';
|
||||
|
||||
addressForm.removeAttribute('disabled');
|
||||
addressForm.classList.remove('disabled-input')
|
||||
const formInspeksi = @json($forminspeksi ?? '');
|
||||
const addressInput = document.getElementById('address');
|
||||
|
||||
if (formInspeksi && formInspeksi.asset && formInspeksi.asset.alamat) {
|
||||
if (formInspeksi.asset.alamat['tidak sesuai'] && formInspeksi.asset.alamat['tidak sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['tidak sesuai'].address;
|
||||
} else if (formInspeksi.asset.alamat['sesuai'] && formInspeksi.asset.alamat['sesuai'].address) {
|
||||
addressInput.value = formInspeksi.asset.alamat['sesuai'].address;
|
||||
} else {
|
||||
addressInput.value = "";
|
||||
}
|
||||
}
|
||||
|
||||
inputs.forEach(element => {
|
||||
if (element.tagName === 'INPUT') {
|
||||
element.removeAttribute('readonly');
|
||||
} else if (element.tagName === 'SELECT') {
|
||||
element.removeAttribute('disabled');
|
||||
element.classList.remove('disabled-input')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFieldVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValue = $(`[name="${fieldName}"]:checked`).val();
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
if (visibleValues.includes(selectedValue)) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleCheckboxVisibility(fieldName, inputId, visibleValues = []) {
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Cek apakah salah satu nilai yang dipilih cocok dengan visibleValues
|
||||
const shouldShow = visibleValues.some(value => selectedValues.includes(value.toLowerCase()));
|
||||
|
||||
if (shouldShow) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val('');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleMultipleFields(fieldName, mappings) {
|
||||
// Ambil semua nilai checkbox yang dicentang
|
||||
const selectedValues = $(`[name="${fieldName}[]"]:checked`)
|
||||
.map(function() {
|
||||
return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil
|
||||
})
|
||||
.get();
|
||||
|
||||
// Iterasi melalui setiap mapping
|
||||
for (const [key, inputId] of Object.entries(mappings)) {
|
||||
const inputField = $(`#${inputId}`);
|
||||
|
||||
// Tampilkan input jika nilai yang relevan dipilih
|
||||
if (selectedValues.includes(key.toLowerCase())) {
|
||||
inputField.show();
|
||||
} else {
|
||||
inputField.hide().val(''); // Sembunyikan dan reset nilai
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) {
|
||||
// Ambil elemen berdasarkan ID
|
||||
const alamatSesuai = document.getElementById(idSesuai);
|
||||
const alamatTidakSesuai = document.getElementById(idTidakSesuai);
|
||||
|
||||
// Periksa nilai yang dipilih dan tampilkan elemen yang sesuai
|
||||
if (selectedValue === 'sesuai') {
|
||||
alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai"
|
||||
} else if (selectedValue === 'tidak sesuai') {
|
||||
alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai"
|
||||
alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai"
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@@ -9,6 +9,22 @@
|
||||
});
|
||||
}
|
||||
|
||||
Breadcrumbs::for('basicdata.custom-field', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('basicdata');
|
||||
$trail->push('Custom Field', route('basicdata.custom-field.index'));
|
||||
});
|
||||
|
||||
Breadcrumbs::for('basicdata.custom-field.create', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('basicdata.custom-field');
|
||||
$trail->push('Tambah Custom Field', route('basicdata.custom-field.create'));
|
||||
});
|
||||
|
||||
Breadcrumbs::for('basicdata.custom-field.edit', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('basicdata.custom-field');
|
||||
$trail->push('Edit Custom Field');
|
||||
});
|
||||
|
||||
|
||||
Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('basicdata');
|
||||
$trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index'));
|
||||
@@ -627,6 +643,11 @@
|
||||
$trail->push('RAP');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('penilai.call-report', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('penilai.show');
|
||||
$trail->push('Call Report');
|
||||
});
|
||||
|
||||
|
||||
Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) {
|
||||
$trail->parent('basicdata');
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Modules\Lpj\Http\Controllers\ActivityController;
|
||||
use Modules\Lpj\Http\Controllers\ArahMataAnginController;
|
||||
use Modules\Lpj\Http\Controllers\DebitureController;
|
||||
use Modules\Lpj\Http\Controllers\CustomFieldController;
|
||||
use Modules\Lpj\Http\Controllers\DebitureController;
|
||||
use Modules\Lpj\Http\Controllers\DokumenJaminanController;
|
||||
use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController;
|
||||
use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
|
||||
@@ -51,6 +52,16 @@ Route::middleware(['auth'])->group(function () {
|
||||
Route::get('api/check-penawaran/{nomor_registrasi}', [TenderController::class, 'checkPenawaranExistence']);
|
||||
|
||||
Route::name('basicdata.')->prefix('basic-data')->group(function () {
|
||||
|
||||
Route::name('custom-field.')->prefix('custom-field')->group(function () {
|
||||
Route::get('restore/{id}', [CustomFieldController::class, 'restore'])->name('restore');
|
||||
Route::get('datatables', [CustomFieldController::class, 'dataForDatatables'])->name(
|
||||
'datatables',
|
||||
);
|
||||
Route::get('export', [CustomFieldController::class, 'export'])->name('export');
|
||||
});
|
||||
Route::resource('custom-field', CustomFieldController::class);
|
||||
|
||||
Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () {
|
||||
Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore');
|
||||
Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables'])->name(
|
||||
@@ -585,6 +596,7 @@ Route::middleware(['auth'])->group(function () {
|
||||
Route::get('resume', [PenilaiController::class, 'resume'])->name('resume');
|
||||
Route::get('memo', [PenilaiController::class, 'memo'])->name('memo');
|
||||
Route::get('paparan', [PenilaiController::class, 'paparan'])->name('paparan');
|
||||
Route::get('call-report', [PenilaiController::class, 'call_report'])->name('call-report');
|
||||
Route::post('storePaparan/{id}', [PenilaiController::class, 'storePaparan'])->name('storePaparan');
|
||||
Route::get('rap', [PenilaiController::class, 'rap'])->name('rap');
|
||||
Route::get('/check-status-lpj', [PenilaiController::class, 'checkStatusLpj'])->name('check.status.lpj');
|
||||
|
||||
Reference in New Issue
Block a user