feat(print-out): hasil inspeksi surveyor
This commit is contained in:
@@ -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));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2407,7 +2407,7 @@ class SurveyorController extends Controller
|
||||
$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,
|
||||
]
|
||||
@@ -3265,33 +3265,33 @@ class SurveyorController extends Controller
|
||||
if ($checkKesesuaian) {
|
||||
// Mengecek apakah status kesesuaian adalah 'sesuai'
|
||||
$isSesuai = ($data[$fieldName] ?? '') === 'sesuai';
|
||||
|
||||
|
||||
// Menggunakan key berdasarkan status kesesuaian
|
||||
$result = [
|
||||
$isSesuai ? 'sesuai' : 'tidak_sesuai' => $data[$fieldName] ?? null
|
||||
];
|
||||
|
||||
|
||||
// Tambahkan field ekstra jika ada
|
||||
if ($extraField) {
|
||||
$result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null;
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
// Jika tidak melakukan pengecekan kesesuaian, hanya ambil data berdasarkan fieldName
|
||||
$result = [
|
||||
$fieldName => $data[$fieldName] ?? null,
|
||||
];
|
||||
|
||||
|
||||
// Jika ada extra field, tambahkan ke result
|
||||
if ($extraField) {
|
||||
$result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null;
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function export(string $type)
|
||||
{
|
||||
@@ -3332,12 +3332,13 @@ class SurveyorController extends Controller
|
||||
->where('dokument_id', $request->input('document_id'))
|
||||
->first();
|
||||
|
||||
if (!$inspeksi) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Data inspeksi tidak ditemukan'
|
||||
], 404);
|
||||
}
|
||||
if (!$inspeksi) {
|
||||
$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
|
||||
$dataForm = json_decode($inspeksi->data_form, true) ?: [];
|
||||
@@ -3493,36 +3494,43 @@ class SurveyorController extends Controller
|
||||
|
||||
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.');
|
||||
}
|
||||
|
||||
|
||||
$pdf = PDF::loadView('lpj::surveyor.components.print-out.main', compact(
|
||||
'permohonan',
|
||||
'basicData',
|
||||
'forminspeksi',
|
||||
));
|
||||
|
||||
// Pilih template PDF berdasarkan nama inspeksi
|
||||
$templateView = strtolower($inspeksi->name) === 'rap'
|
||||
? 'lpj::surveyor.components.print-out.main'
|
||||
: 'lpj::surveyor.components.print-out.main';
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user