diff --git a/app/Emails/SendJadwalKunjunganEmail.php b/app/Emails/SendJadwalKunjunganEmail.php
new file mode 100644
index 0000000..879934a
--- /dev/null
+++ b/app/Emails/SendJadwalKunjunganEmail.php
@@ -0,0 +1,63 @@
+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');
+ }
+}
diff --git a/app/Emails/SendPenawaranKJPPEmail.php b/app/Emails/SendPenawaranKJPPEmail.php
index c779b90..f305489 100644
--- a/app/Emails/SendPenawaranKJPPEmail.php
+++ b/app/Emails/SendPenawaranKJPPEmail.php
@@ -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
]);
}
}
diff --git a/app/Exports/CustomFieldExport.php b/app/Exports/CustomFieldExport.php
new file mode 100644
index 0000000..5158d70
--- /dev/null
+++ b/app/Exports/CustomFieldExport.php
@@ -0,0 +1,49 @@
+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,
+ ];
+ }
+}
diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php
index 6a778a0..222460c 100644
--- a/app/Helpers/Lpj.php
+++ b/app/Helpers/Lpj.php
@@ -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;
+ }
+}
diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php
index 1510f63..adde98d 100644
--- a/app/Http/Controllers/ActivityController.php
+++ b/app/Http/Controllers/ActivityController.php
@@ -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));
+
diff --git a/app/Http/Controllers/CustomFieldController.php b/app/Http/Controllers/CustomFieldController.php
new file mode 100644
index 0000000..b42ab89
--- /dev/null
+++ b/app/Http/Controllers/CustomFieldController.php
@@ -0,0 +1,153 @@
+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');
+ }
+ }
diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php
index 78a11c2..f4966ce 100644
--- a/app/Http/Controllers/DokumenJaminanController.php
+++ b/app/Http/Controllers/DokumenJaminanController.php
@@ -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,
diff --git a/app/Http/Controllers/JenisLegalitasJaminanController.php b/app/Http/Controllers/JenisLegalitasJaminanController.php
index 9c6f4e9..b087589 100644
--- a/app/Http/Controllers/JenisLegalitasJaminanController.php
+++ b/app/Http/Controllers/JenisLegalitasJaminanController.php
@@ -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)
diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php
index bf8cbc9..fd5dc3d 100644
--- a/app/Http/Controllers/PenilaiController.php
+++ b/app/Http/Controllers/PenilaiController.php
@@ -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';
}
diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php
index 4160d59..bd4c3ec 100644
--- a/app/Http/Controllers/PenilaianController.php
+++ b/app/Http/Controllers/PenilaianController.php
@@ -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([
diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php
index 45069f7..943a036 100644
--- a/app/Http/Controllers/SurveyorController.php
+++ b/app/Http/Controllers/SurveyorController.php
@@ -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' => '
Hello, World! This is the email content. Waktu Penilaian: '
- // ];
+ $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);
}
+
}
diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php
index e6822a0..b459f71 100644
--- a/app/Http/Controllers/TenderController.php
+++ b/app/Http/Controllers/TenderController.php
@@ -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 {
diff --git a/app/Http/Requests/CustomFieldRequest.php b/app/Http/Requests/CustomFieldRequest.php
new file mode 100644
index 0000000..9c8730c
--- /dev/null
+++ b/app/Http/Requests/CustomFieldRequest.php
@@ -0,0 +1,58 @@
+ '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.',
+ ];
+ }
+}
diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php
index e29b5cd..8d6ff65 100644
--- a/app/Http/Requests/FormSurveyorRequest.php
+++ b/app/Http/Requests/FormSurveyorRequest.php
@@ -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',
diff --git a/app/Http/Requests/JenisLegalitasJaminanRequest.php b/app/Http/Requests/JenisLegalitasJaminanRequest.php
index 82fb205..b6ca8a1 100644
--- a/app/Http/Requests/JenisLegalitasJaminanRequest.php
+++ b/app/Http/Requests/JenisLegalitasJaminanRequest.php
@@ -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' => []]);
+ }
}
}
diff --git a/app/Jobs/SendPenawaranKJPPTenderJob.php b/app/Jobs/SendPenawaranKJPPTenderJob.php
index 52045a2..d4debea 100644
--- a/app/Jobs/SendPenawaranKJPPTenderJob.php
+++ b/app/Jobs/SendPenawaranKJPPTenderJob.php
@@ -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);
diff --git a/app/Jobs/SendPenawaranTenderJob.php b/app/Jobs/SendPenawaranTenderJob.php
index 6a37f6c..7c5c685 100644
--- a/app/Jobs/SendPenawaranTenderJob.php
+++ b/app/Jobs/SendPenawaranTenderJob.php
@@ -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);
diff --git a/app/Models/CustomField.php b/app/Models/CustomField.php
new file mode 100644
index 0000000..8dd41e5
--- /dev/null
+++ b/app/Models/CustomField.php
@@ -0,0 +1,26 @@
+ 'array',
+ ];
+
+ public function customFields()
+ {
+ return $this->hasMany(CustomField::class);
+ }
}
diff --git a/database/migrations/2025_01_30_082943_create_custom_fields_table.php b/database/migrations/2025_01_30_082943_create_custom_fields_table.php
new file mode 100644
index 0000000..b8eb922
--- /dev/null
+++ b/database/migrations/2025_01_30_082943_create_custom_fields_table.php
@@ -0,0 +1,34 @@
+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');
+ }
+};
diff --git a/database/migrations/2025_01_30_085835_add_urutan_prioritas_to_custom_fields_table.php b/database/migrations/2025_01_30_085835_add_urutan_prioritas_to_custom_fields_table.php
new file mode 100644
index 0000000..f4250e3
--- /dev/null
+++ b/database/migrations/2025_01_30_085835_add_urutan_prioritas_to_custom_fields_table.php
@@ -0,0 +1,28 @@
+integer('urutan_prioritas')->nullable()->after('type');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('custom_fields', function (Blueprint $table) {
+ $table->dropColumn('urutan_prioritas');
+ });
+ }
+};
diff --git a/database/migrations/2025_01_30_091021_add_label_to_custom_fields_table.php b/database/migrations/2025_01_30_091021_add_label_to_custom_fields_table.php
new file mode 100644
index 0000000..39f8b30
--- /dev/null
+++ b/database/migrations/2025_01_30_091021_add_label_to_custom_fields_table.php
@@ -0,0 +1,28 @@
+string('label')->nullable()->after('name');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('custom_fields', function (Blueprint $table) {
+ $table->dropColumn('label');
+ });
+ }
+};
diff --git a/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php b/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php
new file mode 100644
index 0000000..b4ba94b
--- /dev/null
+++ b/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php
@@ -0,0 +1,28 @@
+string('custom_fields')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
+ $table->dropColumn('custom_fields');
+ });
+ }
+};
diff --git a/module.json b/module.json
index 4d52030..37e7ebd 100644
--- a/module.json
+++ b/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"
+ ]
}
]
}
diff --git a/resources/views/activity/index.blade.php b/resources/views/activity/index.blade.php
index 2e73d0c..eda029b 100644
--- a/resources/views/activity/index.blade.php
+++ b/resources/views/activity/index.blade.php
@@ -4,35 +4,45 @@
{{ Breadcrumbs::render('activity') }}
@endsection
@section('content')
-@push('styles')
-
+ @push('styles')
+
+ @endpush
@endif
- @foreach ($permohonan->debiture->documents as $dokumen)
-
documents as $dokumen)
+
!isset($status)])"
data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
- @if (count($permohonan->debiture->documents) > 1)
+ @if (count($permohonan->documents) > 1)
Jaminan {{ $loop->index + 1 }}
@else
Jaminan
@@ -202,7 +202,7 @@
-
@if (!isset($status))
diff --git a/resources/views/component/form-penilai.blade.php b/resources/views/component/form-penilai.blade.php
index 4ccb04b..9b870f6 100644
--- a/resources/views/component/form-penilai.blade.php
+++ b/resources/views/component/form-penilai.blade.php
@@ -74,8 +74,8 @@
Jenis Aset
- @if (isset($permohonan->debiture->documents))
- @foreach ($permohonan->debiture->documents as $item)
+ @if (isset($permohonan->documents))
+ @foreach ($permohonan->documents as $item)
{{ $item->jenisJaminan->name }}
@@ -218,7 +218,7 @@
Pemilik Jaminan
- @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 @@
{{ $title ?? 'Data Jaminan' }}
+ @php
+ use Illuminate\Support\Facades\Route;
+ @endphp
- @if (isset($id))
-
+ @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
+ Route::currentRouteName('otorisator.show'))
+
Back
- @else
-
+
+ @elseif (Auth::user()->hasAnyRole(['administrator','surveyor']) && Route::currentRouteName('penilai.show'))
+
Back
@endif
@@ -367,7 +373,7 @@
-
-
TOTAL NILAI
LIKUIDASI
X
@@ -795,6 +807,10 @@
-
diff --git a/resources/views/component/signature-pad.blade.php b/resources/views/component/signature-pad.blade.php
index ab69e15..3b55a2f 100644
--- a/resources/views/component/signature-pad.blade.php
+++ b/resources/views/component/signature-pad.blade.php
@@ -1,6 +1,13 @@
{{ ucfirst($type) }}
+ @if (($type === 'penilai' && Auth::user()->sign))
+
+
+ @else
Save
@@ -8,4 +15,5 @@
Delete
+ @endif
diff --git a/resources/views/custom_fields/create.blade.php b/resources/views/custom_fields/create.blade.php
new file mode 100644
index 0000000..448cdb2
--- /dev/null
+++ b/resources/views/custom_fields/create.blade.php
@@ -0,0 +1,89 @@
+@php
+ $route = explode('.', Route::currentRouteName());
+@endphp
+
+@extends('layouts.main')
+
+@section('breadcrumbs')
+ {{ Breadcrumbs::render(request()->route()->getName()) }}
+@endsection
+
+@section('content')
+
+ @if(isset($customField->id))
+
+
+@endsection
diff --git a/resources/views/custom_fields/index.blade.php b/resources/views/custom_fields/index.blade.php
new file mode 100644
index 0000000..908c670
--- /dev/null
+++ b/resources/views/custom_fields/index.blade.php
@@ -0,0 +1,153 @@
+@extends('layouts.main')
+
+@section('breadcrumbs')
+ {{ Breadcrumbs::render('basicdata.custom-field') }}
+@endsection
+
+@section('content')
+
+@endsection
+
+@push('scripts')
+
+
+@endpush
+
diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php
index ed7805f..e76da06 100644
--- a/resources/views/debitur/components/dokumen.blade.php
+++ b/resources/views/debitur/components/dokumen.blade.php
@@ -16,16 +16,16 @@
-
-
- Nomor Permohonan
-
-
-
- {{ $permohonan->nomor_registrasi ?? "-" }}
-
-
+
+
+ Nomor Permohonan
+
+
+
+ {{ $permohonan->nomor_registrasi ?? "-" }}
+
+
Pemilik Jaminan
@@ -314,38 +314,30 @@
@if($detail->details)
- @if($detail->jenisLegalitasJaminan->custom_field)
- @php $custom_field = json_decode($detail->details,true) @endphp
-
-
- {{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
-
-
-
+ @if($detail->jenisLegalitasJaminan->custom_fields)
+ @foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
+
+
+ {{ getCustomField($key)->label ?? "" }}
+
+
+
+
-
+ @endforeach
@endif
-
@else
- @if($detail->jenisLegalitasJaminan->custom_field)
-
-
- {{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
-
-
+ @endforeach
@endif
@endif
@@ -393,25 +385,17 @@
- @if($item->custom_field)
-
-
- {{ str_replace('_',' ',$item->custom_field) }}
-
-
+ @endforeach
@endif
@@ -437,13 +421,13 @@
@push('scripts')
{{--Pemilik Jaminan--}}
diff --git a/resources/views/emails/jadwal-kunjungan.blade.php b/resources/views/emails/jadwal-kunjungan.blade.php
new file mode 100644
index 0000000..42dd5e2
--- /dev/null
+++ b/resources/views/emails/jadwal-kunjungan.blade.php
@@ -0,0 +1,118 @@
+
+
+
+
+
+
Jadwal Kunjungan
+
+
+
+
+
+
+
+
+
+
+ ID Penilaian:
+ {{ $id }}
+
+
+
+ Waktu Penilaian:
+ {{ \Carbon\Carbon::parse($waktu_penilaian)->format('d F Y H:i') }}
+
+
+
+
Deskripsi:
+
{{ $deskripsi_penilaian }}
+
+
+
+
+
+
+
+
diff --git a/resources/views/jenis_jaminan/create.blade.php b/resources/views/jenis_jaminan/create.blade.php
index c206f7a..173c692 100644
--- a/resources/views/jenis_jaminan/create.blade.php
+++ b/resources/views/jenis_jaminan/create.blade.php
@@ -92,28 +92,28 @@
@enderror
-
-
-
- Jenis Legalitas Jaminan
-
-
+
Save
diff --git a/resources/views/jenis_legalitas_jaminan/create.blade.php b/resources/views/jenis_legalitas_jaminan/create.blade.php
index d8e273a..c0e6632 100644
--- a/resources/views/jenis_legalitas_jaminan/create.blade.php
+++ b/resources/views/jenis_legalitas_jaminan/create.blade.php
@@ -10,83 +10,107 @@
@endsection
diff --git a/resources/views/laporan/index.blade.php b/resources/views/laporan/index.blade.php
index 555b890..f07bf16 100644
--- a/resources/views/laporan/index.blade.php
+++ b/resources/views/laporan/index.blade.php
@@ -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 = `
- Laporn
+ Laporan
`;
}
- console.log(data.nilai_liquidasi);
if(data.status_bayar=="sudah_bayar" && data.nilai_liquidasi >0) {
-
- laporanButton = `
-
+ if(data.penilai.type_penilai=='resume' && !data.penilai.resume){
+ laporanButton = `
+
Laporan
`;
+ } else {
+ laporanButton = `
+
+ Laporan
+ `;
+ }
+
}
return `${resumeButton} ${laporanButton}`;
diff --git a/resources/views/penawaran/kirimEmail.blade.php b/resources/views/penawaran/kirimEmail.blade.php
index fa42b41..0af93a7 100644
--- a/resources/views/penawaran/kirimEmail.blade.php
+++ b/resources/views/penawaran/kirimEmail.blade.php
@@ -76,7 +76,7 @@
}
}
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
// Handle invalid JSON silently
}
}
@@ -102,10 +102,10 @@
- Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ Aset Jaminan: @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
- Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ 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
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -169,10 +166,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ $user->name }}
diff --git a/resources/views/penawaran/kirimEmailKJPP.blade.php b/resources/views/penawaran/kirimEmailKJPP.blade.php
index e9e1981..3f452b0 100644
--- a/resources/views/penawaran/kirimEmailKJPP.blade.php
+++ b/resources/views/penawaran/kirimEmailKJPP.blade.php
@@ -104,10 +104,10 @@
- Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ Aset Jaminan: @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
- Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ 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
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -171,10 +168,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ $user->name }}
diff --git a/resources/views/penawaran/surat_tender.blade.php b/resources/views/penawaran/surat_tender.blade.php
index 7b8f5f0..fe651cd 100644
--- a/resources/views/penawaran/surat_tender.blade.php
+++ b/resources/views/penawaran/surat_tender.blade.php
@@ -72,14 +72,14 @@
Aset Jaminan:
- @foreach ($permohonan->debiture->documents as $document)
+ @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
Lokasi Jaminan:
- @foreach ($permohonan->debiture->documents as $document)
+ @foreach ($permohonan->documents as $document)
{{ $document->address }}
@if (isset($document->jenisJaminan))
, Kel.
@@ -102,48 +102,45 @@
@endforeach
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -153,10 +150,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ auth()->user()->name }}
Sub Direktorat Appraisal
diff --git a/resources/views/penawaran/surat_tender_download.blade.php b/resources/views/penawaran/surat_tender_download.blade.php
index dcf640c..42180b1 100644
--- a/resources/views/penawaran/surat_tender_download.blade.php
+++ b/resources/views/penawaran/surat_tender_download.blade.php
@@ -102,10 +102,10 @@
- Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ Aset Jaminan: @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
- Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ 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
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -169,10 +166,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ auth()->user()->name }}
diff --git a/resources/views/penawaran/surat_tender_kjpp.blade.php b/resources/views/penawaran/surat_tender_kjpp.blade.php
index 8edc180..37e54f0 100644
--- a/resources/views/penawaran/surat_tender_kjpp.blade.php
+++ b/resources/views/penawaran/surat_tender_kjpp.blade.php
@@ -42,7 +42,7 @@
}
}
}
- } catch (\Exception $e) {
+ } catch (Exception $e) {
// Handle invalid JSON silently
}
}
@@ -70,14 +70,14 @@
Aset Jaminan:
- @foreach ($permohonan->debiture->documents as $document)
+ @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
Lokasi Jaminan:
- @foreach ($permohonan->debiture->documents as $document)
+ @foreach ($permohonan->documents as $document)
{{ $document->address }}
@if (isset($document->jenisJaminan))
, Kel.
@@ -100,48 +100,45 @@
@endforeach
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -151,10 +148,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ auth()->user()->name }}
Sub Direktorat Appraisal
diff --git a/resources/views/penawaran/surat_tender_kjpp_download.blade.php b/resources/views/penawaran/surat_tender_kjpp_download.blade.php
index bfd1806..0c14894 100644
--- a/resources/views/penawaran/surat_tender_kjpp_download.blade.php
+++ b/resources/views/penawaran/surat_tender_kjpp_download.blade.php
@@ -104,10 +104,10 @@
- Aset Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ Aset Jaminan: @foreach ($permohonan->documents as $document)
{{ $document->jenisJaminan->name }}
@endforeach
- Lokasi Jaminan: @foreach ($permohonan->debiture->documents as $document)
+ 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
- Luas Tanah / Luas Bangunan:
+ Dokumen Jaminan:
@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 }}
+ Luas Tanah / Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+ /
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_tanah))
+ {{ $n }}. {{ $detail->name }}
+ Luas Tanah :
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_tanah)) }}
+ m2
+
+ @php $n++; @endphp
+ @elseif (isset($details->luas_bangunan))
+ {{ $n }}. {{ $detail->name }}
+ Luas Bangunan:
+ {{ preg_replace('/[^0-9.]/', '', str_replace('m2', '', $details->luas_bangunan)) }}
+ m2
+
+ @php $n++; @endphp
@endif
@endforeach
@endforeach
-
- @if ($luas_tanah !== null && $luas_bangunan !== null)
- {{ $luas_tanah }} m2 / {{ $luas_bangunan }} m2
- @elseif ($luas_tanah !== null)
- {{ $luas_tanah }} m2
- @elseif ($luas_bangunan !== null)
- {{ $luas_bangunan }} m2
- @endif
@@ -171,10 +168,10 @@
Best Regards,
-
+
- {{ $permohonan->user->name }}
+ {{ auth()->user()->name }}
diff --git a/resources/views/penilai/components/call-report.blade.php b/resources/views/penilai/components/call-report.blade.php
new file mode 100644
index 0000000..6685408
--- /dev/null
+++ b/resources/views/penilai/components/call-report.blade.php
@@ -0,0 +1,596 @@
+@extends('layouts.main')
+
+@section('breadcrumbs')
+ {{ Breadcrumbs::render(request()->route()->getName()) }}
+@endsection
+
+@section('content')
+
+ @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
+
+ @csrf
+
+
+
+
+
+ @include('lpj::assetsku.includenya')
+ {{-- @include('lpj::surveyor.components.header')
+ @include('lpj::surveyor.components.callReport') --}}
+
+
+
+
+
+
+
+ {{-- 250109828129/ --}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Jenis Aset
+
+
+
+
+ Select Jenis asset
+ @isset($basicData['jenisJaminan'] )
+ @foreach ($basicData['jenisJaminan'] as $item)
+ jenis_asset_tidak_sesuai ?? '') == $item->name ? 'selected' : '' }}>
+ {{ $item->name }}
+
+ @endforeach
+ @endisset
+
+
+
+
+
+
Lokasi Objek Penilaian
+
+
+
+
+
+
+
+
Tanggal Penilaian
+
+
+
+
+
+
+
Nilai Pasar Wajar (NPW)
+
+
+
+
+
+
Nilai Likuidasi (NL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Staf Subdit Appraisal
+
+
+
+
+
+
+
+
+
+
+
Debitur/perwakilan debitur
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Faktor Positif
+
+ @if (!empty($callReport['fakta']['fakta_positif']))
+ @foreach ($callReport['fakta']['fakta_positif'] as $index => $positif)
+
+ {{ old("fakta_positif.$index", $positif) }}
+
+
+
+
+ @endforeach
+ @else
+
+ {{ old('fakta_positif.0', '') }}
+
+
+
+
+ @endif
+
+
+
+
+
+
+
+
Faktor Negatif
+
+ @if (!empty($callReport['fakta']['fakta_negatif']))
+ @foreach ($callReport['fakta']['fakta_negatif'] as $index => $negatif)
+
+ {{ old("fakta_negatif.$index", $negatif) }}
+
+
+
+
+ @endforeach
+ @else
+
+ {{ old('fakta_negatif.0', $callReport['fakta']['fakta_negatif'][0] ?? '') }}
+
+
+
+
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+
+@endsection
+@push('scripts')
+ {{-- --}}
+ @include('lpj::surveyor.js.utils')
+@endpush
diff --git a/resources/views/penilai/components/foto-jaminan.blade.php b/resources/views/penilai/components/foto-jaminan.blade.php
index c600d1b..73df482 100644
--- a/resources/views/penilai/components/foto-jaminan.blade.php
+++ b/resources/views/penilai/components/foto-jaminan.blade.php
@@ -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)
+
+ @endif
{{ $item['name'] }}
@if ($statusLpj || file_exists($imagePath))
diff --git a/resources/views/penilai/components/informasi-pembanding.blade.php b/resources/views/penilai/components/informasi-pembanding.blade.php
index 3245888..c2f3feb 100644
--- a/resources/views/penilai/components/informasi-pembanding.blade.php
+++ b/resources/views/penilai/components/informasi-pembanding.blade.php
@@ -28,37 +28,39 @@
-
Harga Penawara
+
Harga Penawaran
- {{ $item['harga_diskon'] }}
+ Rp. {{ $item['harga'] }}
-
Penjualan (HP)
+
Penjual (HP)
- {{ $item['harga'] }}
+ {{ $item['telepon'] }}
Ditawarkan sejak
- {{ $item['harga'] }}
+ {{ $item['penawaran'] }}
LT
- {{ $item['luas_tanah'] }}
+ {{ $item['luas_tanah'] }}
+ m2
LB
- {{ $item['luas_bangunan'] }}
+ {{ $item['luas_bangunan'] }}
+ m2
diff --git a/resources/views/penilai/components/lpj-sederhana-standard.blade.php b/resources/views/penilai/components/lpj-sederhana-standard.blade.php
index 3149280..56c8a41 100644
--- a/resources/views/penilai/components/lpj-sederhana-standard.blade.php
+++ b/resources/views/penilai/components/lpj-sederhana-standard.blade.php
@@ -5,22 +5,21 @@
@endsection
@section('content')
-
+ .list-decimal li {
+ margin-bottom: 0.5rem;
+ }
+
@include('lpj::assetsku.includenya')
@@ -34,25 +33,33 @@
diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php
index 71cee50..8f87ac2 100644
--- a/resources/views/penilai/components/memo.blade.php
+++ b/resources/views/penilai/components/memo.blade.php
@@ -281,7 +281,8 @@
{{-- @include('lpj::penilai.components.foto-lampiran') --}}