diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 40b94d9..b78ef6a 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -20,11 +20,12 @@ use Modules\Location\Models\Village; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\App; use App\Helpers\Lpj; +use Modules\Lpj\Http\Requests\FormSurveyorRequest; + class PenilaiController extends Controller { public $user; - protected $surveyorController; public function __construct(SurveyorController $surveyorController) @@ -566,40 +567,53 @@ class PenilaiController extends Controller } public function storeLpjSederhanadanStandard(Request $request) - { +{ + try { + $validatedRequest = app(FormSurveyorRequest::class); + $this->surveyorController->store($validatedRequest); - try { + $data = [ + 'luas_tanah' => $request->input('luas_tanah'), + 'nilai_tanah_1' => $request->input('nilai_tanah_1'), + 'nilai_tanah_2' => $request->input('nilai_tanah_2'), + 'luas_bangunan' => $request->input('luas_bangunan'), + 'nilai_bangunan_1' => $request->input('nilai_bangunan_1'), + 'nilai_bangunan_2' => $request->input('nilai_bangunan_2'), + 'sarana_pelengkap' => $request->input('sarana_pelengkap', []), + 'nilai_sarana_pelengkap_1' => $request->input('nilai_sarana_pelengkap_1'), + 'nilai_sarana_pelengkap_2' => $request->input('nilai_sarana_pelengkap_2'), + 'total_nilai_pasar_wajar' => $request->input('total_nilai_pasar_wajar'), + 'likuidasi' => $request->input('likuidasi'), + 'likuidasi_nilai_1' => $request->input('likuidasi_nilai_1'), + 'likuidasi_nilai_2' => $request->input('likuidasi_nilai_2'), + 'asuransi_luas_bangunan' => $request->input('asuransi_luas_bangunan'), + 'asuransi_nilai_1' => $request->input('asuransi_nilai_1'), + 'asuransi_nilai_2' => $request->input('asuransi_nilai_2'), + ]; - $validatedData = $request->validate([ - 'permohonan_id' => 'required|integer', - 'document_id' => 'required|integer', - 'inspeksi_id' => 'required|integer', - 'lpj' => 'required', - ]); - Penilai::updateOrCreate( - [ - 'permohonan_id' => $validatedData['permohonan_id'], - 'dokument_id' => $validatedData['document_id'], - 'inspeksi_id' => $validatedData['inspeksi_id'], - ], - [ - 'lpj' => json_encode($validatedData['lpj']), - ] - ); - - - return response()->json([ - 'success' => true, - 'message' => 'Berhasil saved lpj' - ], 200); - } catch (\Exception $e) { - return response()->json([ - 'success' => false, - 'message' => 'Terjadi kesalahan', - 'error' => $e->getMessage() - ], 500); - } + // Update atau buat data baru + Penilai::updateOrCreate( + [ + 'permohonan_id' => $request->permohonanId, + 'dokument_id' => $request->documentId, + 'inspeksi_id' => $request->inspeksiId, + ], + [ + 'lpj' => json_encode($data), + ] + ); + return response()->json([ + 'success' => true, + 'message' => 'Berhasil menyimpan LPJ', + ], 200); + } catch (\Throwable $e) { + return response()->json([ + 'success' => false, + 'message' => 'Terjadi kesalahan saat menyimpan LPJ', + 'error' => $e->getMessage(), + ], 500); } +} public function print_out(Request $request) diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 8824091..7247f82 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -1,568 +1,652 @@ surveyorController = $surveyorController; + // $this->penilaiController = $penilaiController; + } - /** - * Display a listing of the resource. - */ - public function index() - { - $status_permohonan = StatusPermohonan::all(); - return view('lpj::penilaian.index', compact('status_permohonan')); - } + /** + * Display a listing of the resource. + */ + public function index() + { + $status_permohonan = StatusPermohonan::all(); - /** - * Store a newly created resource in storage. - */ + return view('lpj::penilaian.index', compact('status_permohonan')); + } - public function store(PenilaianRequest $request) - { - $validatedData = $request->validated(); + /** + * Store a newly created resource in storage. + */ - if ($validatedData) { - try { - DB::beginTransaction(); + public function store(PenilaianRequest $request) + { + $validatedData = $request->validated(); - $penilaian = Penilaian::create($validatedData); - $validatedData['penilaian_id'] = $penilaian->id; - - $teams_ids = []; - $user_ids = []; - $roles = []; - - if ($validatedData['surveyor_id'] === 'pilih_dari_region') { - $surveyor_region_id = $validatedData['surveyor_region_id']; - - // Hapus team_id sebelumnya di Permohonan jika ada - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - if ($permohonan) { - $permohonan->update([ - 'region_id' => $surveyor_region_id, - ]); - } - - $teams_ids[] = $surveyor_region_id; - $user_ids[] = null; - $roles[] = 'surveyor'; - } else { - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $teams_ids[] = $validatedData['teams_id']; - - if (isset($validatedData['penilai_surveyor_id'])) { - $user_ids[] = $validatedData['penilai_surveyor_id']; - } else { - $user_ids[] = $validatedData['surveyor_id']; - } - - $roles[] = 'surveyor'; - } - - if ($validatedData['penilai_id'] === 'pilih_dari_region') { - $penilaian_region_id = $validatedData['penilai_region_id']; - - // Hapus team_id sebelumnya di Permohonan jika ada - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - if ($permohonan) { - $permohonan->update([ - 'region_id' => $penilaian_region_id, - ]); - } - - $teams_ids[] = $penilaian_region_id; - $user_ids[] = null; - $roles[] = 'penilai'; - } else { - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $teams_ids[] = $validatedData['teams_id']; - - if (isset($validatedData['penilai_surveyor_id'])) { - $user_ids[] = $validatedData['penilai_surveyor_id']; - } else { - $user_ids[] = $validatedData['penilai_id']; - } - - $roles[] = 'penilai'; - } - - foreach ($teams_ids as $key => $teams_id) { - PenilaianTeam::create([ - 'penilaian_id' => $validatedData['penilaian_id'], - 'team_id' => $teams_id, - 'user_id' => $user_ids[$key], - 'role' => $roles[$key], - ]); - } - - if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') { - $status = $permohonan->status; - } else { - $status = 'assign'; - } - - $permohonan->update([ - 'status' => $status, - ]); - - DB::commit(); - return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); - } catch (Exception $e) { - DB::rollBack(); - - return response()->json(['error' => $e->getMessage()]); - } - } - } - - /** - * Show the form for creating a new resource. - */ - public function create($id) - { - return view('lpj::penilaian.form'); - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, $id) - { + if ($validatedData) { try { DB::beginTransaction(); - $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $penilaianId = $penilaian->id; + $penilaian = Penilaian::create($validatedData); + $validatedData['penilaian_id'] = $penilaian->id; - $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); + $teams_ids = []; + $user_ids = []; + $roles = []; + if ($validatedData['surveyor_id'] === 'pilih_dari_region') { + $surveyor_region_id = $validatedData['surveyor_region_id']; - foreach ($penilainTeam as $item) { - if ($item->role === 'surveyor' && $item->user_id === null) { - $item->update([ - 'user_id' => $request->surveyor_id, - 'role' => 'surveyor', + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $surveyor_region_id, ]); } - if ($item->role === 'penilai' && $item->user_id === null) { - $item->update([ - 'user_id' => $request->penilai_id, - 'role' => 'penilai', - ]); + $teams_ids[] = $surveyor_region_id; + $user_ids[] = null; + $roles[] = 'surveyor'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + + if (isset($validatedData['penilai_surveyor_id'])) { + $user_ids[] = $validatedData['penilai_surveyor_id']; + } else { + $user_ids[] = $validatedData['surveyor_id']; } + + $roles[] = 'surveyor'; + } + + if ($validatedData['penilai_id'] === 'pilih_dari_region') { + $penilaian_region_id = $validatedData['penilai_region_id']; + + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $penilaian_region_id, + ]); + } + + $teams_ids[] = $penilaian_region_id; + $user_ids[] = null; + $roles[] = 'penilai'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + + if (isset($validatedData['penilai_surveyor_id'])) { + $user_ids[] = $validatedData['penilai_surveyor_id']; + } else { + $user_ids[] = $validatedData['penilai_id']; + } + + $roles[] = 'penilai'; + } + + foreach ($teams_ids as $key => $teams_id) { + PenilaianTeam::create([ + 'penilaian_id' => $validatedData['penilaian_id'], + 'team_id' => $teams_id, + 'user_id' => $user_ids[$key], + 'role' => $roles[$key], + ]); + } + + if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') { + $status = $permohonan->status; + } else { + $status = 'assign'; } - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); $permohonan->update([ - 'status' => 'assign', + 'status' => $status, ]); + DB::commit(); return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); } catch (Exception $e) { DB::rollBack(); - return response()->json(['success' => false, 'error' => $e->getMessage()]); + + return response()->json(['error' => $e->getMessage()]); } } + } - /** - * Show the form for editing the specified resource. - */ - public function assignment($id) - { - $permohonan = Permohonan::with([ - 'user', - 'debiture.province', - 'debiture.city', - 'debiture.district', - 'debiture.village', - 'branch', - 'tujuanPenilaian', - ])->findOrFail($id); + /** + * Show the form for creating a new resource. + */ + public function create($id) + { + return view('lpj::penilaian.form'); + } - $idPenilaian = $permohonan->jenis_penilaian_id; - $idRegion = $permohonan->region_id; + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { + try { + DB::beginTransaction(); + $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); - $jenisPenilaian = JenisPenilaian::find($idPenilaian); + $penilaianId = $penilaian->id; - $userTeam = Teams::with(['regions', 'teamsUsers.user'])->whereHas('regions', function ($q) use ($idRegion) { - $q->where('id', $idRegion); - })->get(); - - $teamPenilai = $userTeam->flatMap(function ($team) { - return $team->teamsUsers->filter(function ($teamUser) { - return $teamUser->user->roles->contains(function ($role) { - return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator'; - }); - })->map(function ($teamUser) { - return $teamUser->user; - }); - })->unique('id'); - - $existingTeamIds = $userTeam->pluck('id')->toArray(); - - $updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user'])->whereNotIn( - 'id', - $existingTeamIds, - )->get(); - - $regionName = null; - foreach ($userTeam as $item) { - $regionName = $item->regions; - } - - $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - - $penilaianTeam = collect(); - if ($penilaian && $penilaian->id) { - $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); - } - - return view( - 'lpj::penilaian.form', - compact( - 'permohonan', - 'teamPenilai', - 'jenisPenilaian', - 'penilaian', - 'regionName', - 'updateTeamPenilai', - 'penilaianTeam', - ), - ); - } - - /** - * Remove the specified resource from storage. - */ - - public function revisi(PenilaianRequest $request, $nomor_registrasi) - { - $validatedData = $request->validated(); - if ($validatedData) { - try { - if (isset($validatedData['dokumen']) && $request->hasFile('dokumen')) { - $file_name = $validatedData['dokumen']->getClientOriginalName(); - $validatedData['dokumen']->storeAs('public/dokumen_revisi', $file_name); - } - - $dataToUpdate = [ - 'keterangan' => $validatedData['keterangan'], - 'dokumen' => 'dokumen_revisi/' . $file_name, - 'status' => 'revisi', - ]; + $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); - $permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first(); + foreach ($penilainTeam as $item) { + if ($item->role === 'surveyor' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->surveyor_id, + 'role' => 'surveyor', + ]); + } - $permohonan->update($dataToUpdate); - return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi'); - } catch (Exception $e) { - return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + if ($item->role === 'penilai' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->penilai_id, + 'role' => 'penilai', + ]); } } - } - - public function dataForDatatables(Request $request) - { - if (is_null($this->user) || !$this->user->can('debitur.view')) { - } - - $query = Permohonan::query(); - - if ($request->has('search') && !empty($request->get('search'))) { - $search = $request->get('search'); - $query->where(function ($q) use ($search) { - $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); - $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhere('status', 'LIKE', '%' . $search . '%'); - }); - } - - $query->whereIn('status', ['registered', 'registrasi-final']); - - // Filter berdasarkan role - if (Auth::user()->roles[0]->name !== 'administrator') { - $query->whereHas('region.teams.teamsUsers.user', function ($q) { - $q->where('id', Auth::user()->id); - }); - } - - if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { - $order = $request->get('sortOrder'); - $column = $request->get('sortField'); - $query->orderBy($column, $order); - } - - $totalRecords = $query->count(); - - $size = $request->get('size', 10); - if ($size == 0) { - $size = 10; - } - - if ($request->has('page') && $request->has('size')) { - $page = $request->get('page', 1); - $offset = ($page - 1) * $size; - - $query->skip($offset)->take($size); - } - - $filteredRecords = $query->count(); - $data = $query->with( - ['user', 'debiture', 'branch', 'tujuanPenilaian','jenisPenilaian', 'region.teams.teamsUsers.user'], - )->get(); - - $pageCount = ceil($totalRecords / $size); - - $currentPage = max(1, $request->get('page', 1)); - return response()->json([ - 'draw' => $request->get('draw'), - 'recordsTotal' => $totalRecords, - 'recordsFiltered' => $filteredRecords, - 'pageCount' => $pageCount, - 'page' => $currentPage, - 'totalCount' => $totalRecords, - 'data' => $data, + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); + $permohonan->update([ + 'status' => 'assign', ]); + DB::commit(); + return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200); + } catch (Exception $e) { + DB::rollBack(); + return response()->json(['success' => false, 'error' => $e->getMessage()]); + } + } + + /** + * Show the form for editing the specified resource. + */ + public function assignment($id) + { + $permohonan = Permohonan::with([ + 'user', + 'debiture.province', + 'debiture.city', + 'debiture.district', + 'debiture.village', + 'branch', + 'tujuanPenilaian', + ])->findOrFail($id); + + $idPenilaian = $permohonan->jenis_penilaian_id; + $idRegion = $permohonan->region_id; + + $jenisPenilaian = JenisPenilaian::find($idPenilaian); + + $userTeam = Teams::with(['regions', 'teamsUsers.user'])->whereHas('regions', function ($q) use ($idRegion) { + $q->where('id', $idRegion); + })->get(); + + $teamPenilai = $userTeam->flatMap(function ($team) { + return $team->teamsUsers->filter(function ($teamUser) { + return $teamUser->user->roles->contains(function ($role) { + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator'; + }); + })->map(function ($teamUser) { + return $teamUser->user; + }); + })->unique('id'); + + $existingTeamIds = $userTeam->pluck('id')->toArray(); + + $updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user'])->whereNotIn( + 'id', + $existingTeamIds, + )->get(); + + $regionName = null; + foreach ($userTeam as $item) { + $regionName = $item->regions; } + $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - public function otorisator(Request $request) - { - $type = $request->route('type'); - $headers = [ - 'pelaporan' => 'Pelaporan', - 'pembayaran' => 'Pembayaran', - 'pembatalan' => 'Pembatalan', - 'sla' => 'SLA', - ]; - - $header = $headers[$type] ?? 'Pelaporan'; - - return view('lpj::penilaian.otorisator.index', compact('header')); + $penilaianTeam = collect(); + if ($penilaian && $penilaian->id) { + $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); } - public function show($id, $type) - { - $headers = [ - 'Pelaporan' => 'Pelaporan', - 'Pembayaran' => 'Pembayaran', - 'Pembatalan' => 'Pembatalan', - 'SLA' => 'SLA', - ]; + return view( + 'lpj::penilaian.form', + compact( + 'permohonan', + 'teamPenilai', + 'jenisPenilaian', + 'penilaian', + 'regionName', + 'updateTeamPenilai', + 'penilaianTeam', + ), + ); + } - $header = $headers[$type] ?? 'Pelaporan'; - $permohonan = Permohonan::find($id); + /** + * Remove the specified resource from storage. + */ - return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header')); + public function revisi(PenilaianRequest $request, $nomor_registrasi) + { + $validatedData = $request->validated(); + if ($validatedData) { + try { + if (isset($validatedData['dokumen']) && $request->hasFile('dokumen')) { + $file_name = $validatedData['dokumen']->getClientOriginalName(); + $validatedData['dokumen']->storeAs('public/dokumen_revisi', $file_name); + } + + $dataToUpdate = [ + 'keterangan' => $validatedData['keterangan'], + 'dokumen' => 'dokumen_revisi/' . $file_name, + 'status' => 'revisi', + ]; + + + $permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first(); + + $permohonan->update($dataToUpdate); + return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi'); + } catch (Exception $e) { + return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + } + } + } + + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { } - public function otorisatorUpdate(Request $request, $id, $context) - { - $permohonan = Permohonan::find($id); - if (!$permohonan) { + $query = Permohonan::query(); + + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); + $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhere('status', 'LIKE', '%' . $search . '%'); + }); + } + + $query->whereIn('status', ['registered', 'registrasi-final']); + + // Filter berdasarkan role + if (Auth::user()->roles[0]->name !== 'administrator') { + $query->whereHas('region.teams.teamsUsers.user', function ($q) { + $q->where('id', Auth::user()->id); + }); + } + + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + $filteredRecords = $query->count(); + $data = $query->with( + ['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers.user'], + )->get(); + + $pageCount = ceil($totalRecords / $size); + + $currentPage = max(1, $request->get('page', 1)); + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + + + public function otorisator(Request $request) + { + $type = $request->route('type'); + $headers = [ + 'pelaporan' => 'Pelaporan', + 'pembayaran' => 'Pembayaran', + 'pembatalan' => 'Pembatalan', + 'sla' => 'SLA', + ]; + + $header = $headers[$type] ?? 'Pelaporan'; + + return view('lpj::penilaian.otorisator.index', compact('header')); + } + + public function show($id, $type) + { + $headers = [ + 'Pelaporan' => 'Pelaporan', + 'Pembayaran' => 'Pembayaran', + 'Pembatalan' => 'Pembatalan', + 'SLA' => 'SLA', + ]; + + $header = $headers[$type] ?? 'Pelaporan'; + $permohonan = Permohonan::find($id); + + return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header')); + } + + public function otorisatorUpdate(Request $request, $id, $context) + { + $permohonan = Permohonan::find($id); + if (!$permohonan) { + return response()->json([ + 'message' => 'Data permohonan tidak ditemukan.', + ], 404); + } + + switch (strtolower($context)) { + case 'pembayaran': + + $newStatus = $permohonan->status_bayar === 'sudah_bayar' ? 'belum_bayar' : 'sudah_bayar'; + + $permohonan->update([ + 'status_bayar' => $newStatus, + 'keterangan' => $request->message, + ]); + break; + + case 'pembatalan': + $permohonan->update([ + 'status' => 'batal', + 'keterangan' => $request->message, + ]); + break; + + case 'pelaporan': + if (Auth::user()->roles[0]->name === 'senior-officer') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_so' => Auth::user()->id, + 'approval_so_at' => now(), + 'keterangan' => $request->message, + ]); + } elseif (Auth::user()->roles[0]->name === 'EO Appraisal') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_eo' => Auth::user()->id, + 'approval_eo_at' => now(), + 'keterangan' => $request->message, + ]); + } elseif (Auth::user()->roles[0]->name === 'DD Appraisal') { + $permohonan->update([ + 'status' => 'proses-laporan', + 'approval_dd' => Auth::user()->id, + 'approval_dd_at' => now(), + 'keterangan' => $request->message, + ]); + } + break; + + case 'sla': + + $permohonan->update([ + 'status' => 'proses-sla', + 'keterangan' => $request->message, + ]); + break; + + default: + return response()->json([ - 'message' => 'Data permohonan tidak ditemukan.', - ], 404); + 'message' => 'Konteks otorisasi tidak valid.', + ], 400); + } + + + return response()->json([ + 'message' => 'Otorisasi berhasil dilakukan.', + 'data' => $permohonan, + ]); + } + + + public function dataForAuthorization(Request $request, $otorisator) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + + // Tentukan status berdasarkan otorisator + $status = match ($otorisator) { + 'Pelaporan' => 'proses-laporan', + 'Pembayaran' => 'proses', + 'Pembatalan' => 'batal', + 'SLA' => 'freeze', + default => '', + }; + + + $query = Permohonan::query(); + + // Pencarian berdasarkan parameter search + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); + $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhere('status', 'LIKE', '%' . $search . '%'); + }); + } + + + if (!empty($otorisator)) { + if ($status == 'proses') { + $query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']); + } elseif ($status == 'proses-laporan') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } elseif ($status == 'batal') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } elseif ($status == 'freeze') { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); } + } - switch (strtolower($context)) { - case 'pembayaran': - - $newStatus = $permohonan->status_bayar === 'sudah_bayar' ? 'belum_bayar' : 'sudah_bayar'; - - $permohonan->update([ - 'status_bayar' => $newStatus, - 'keterangan' => $request->message, - ]); - break; - - case 'pembatalan': - $permohonan->update([ - 'status' => 'batal', - 'keterangan' => $request->message, - ]); - break; - - case 'pelaporan': - if(Auth::user()->roles[0]->name === 'senior-officer') { - $permohonan->update([ - 'status' => 'proses-laporan', - 'approval_so' => Auth::user()->id, - 'approval_so_at' => now(), - 'keterangan' => $request->message, - ]); - } elseif(Auth::user()->roles[0]->name === 'EO Appraisal') { - $permohonan->update([ - 'status' => 'proses-laporan', - 'approval_eo' => Auth::user()->id, - 'approval_eo_at' => now(), - 'keterangan' => $request->message, - ]); - } elseif(Auth::user()->roles[0]->name === 'DD Appraisal') { - $permohonan->update([ - 'status' => 'proses-laporan', - 'approval_dd' => Auth::user()->id, - 'approval_dd_at' => now(), - 'keterangan' => $request->message, - ]); - } - break; - - case 'sla': - - $permohonan->update([ - 'status' => 'proses-sla', - 'keterangan' => $request->message, - ]); - break; - - default: - - return response()->json([ - 'message' => 'Konteks otorisasi tidak valid.', - ], 400); - } + // Filter berdasarkan region user yang login + if (Auth::user()->hasRole('senior-officer')) { + $query->whereHas('region.teams.teamsUsers', function ($q) { + $q->where('user_id', Auth::id()); + }); + } + // Sorting berdasarkan sortField dan sortOrder + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Hitung total records + $totalRecords = $query->count(); + + // Pagination (default page size 10) + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + // Filtered records + $filteredRecords = $query->count(); + + // Ambil data dengan relasi + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo'])->get(); + + + // Hitung jumlah halaman + $pageCount = ceil($totalRecords / $size); + + // Ambil current page + $currentPage = max(1, $request->get('page', 1)); + + // Return JSON response + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + + public function view_laporan(Request $request) + { + + $id = $request->permohonanId; + $documentId = $request->query('documentId'); + $jaminanId = $request->query('jaminanId'); + + $permohonan = $this->surveyorController->getPermohonanJaminanId($id, $documentId, $jaminanId); + $basicData = $this->surveyorController->getCommonData(); + + $inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first(); + $lpj = Penilai::where('permohonan_id', $id)->where('dokument_id', $documentId)->first(); + + $forminspeksi = null; + $lpjData = null; + if ($inspeksi) { + $forminspeksi = json_decode($inspeksi->data_form, true); + } + + if ($lpj) { + $lpjData = json_decode($lpj->lpj, true); + } + + return view('lpj::penilaian.laporan-so', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData')); + } + + public function storePenilaiLaporan(Request $request) + { + try { + $validatedRequest = app(FormSurveyorRequest::class); + $this->surveyorController->store($validatedRequest); + + $data = [ + 'luas_tanah' => $request->input('luas_tanah'), + 'nilai_tanah_1' => $request->input('nilai_tanah_1'), + 'nilai_tanah_2' => $request->input('nilai_tanah_2'), + 'luas_bangunan' => $request->input('luas_bangunan'), + 'nilai_bangunan_1' => $request->input('nilai_bangunan_1'), + 'nilai_bangunan_2' => $request->input('nilai_bangunan_2'), + 'sarana_pelengkap' => $request->input('sarana_pelengkap', []), + 'nilai_sarana_pelengkap_1' => $request->input('nilai_sarana_pelengkap_1'), + 'nilai_sarana_pelengkap_2' => $request->input('nilai_sarana_pelengkap_2'), + 'total_nilai_pasar_wajar' => $request->input('total_nilai_pasar_wajar'), + 'likuidasi' => $request->input('likuidasi'), + 'likuidasi_nilai_1' => $request->input('likuidasi_nilai_1'), + 'likuidasi_nilai_2' => $request->input('likuidasi_nilai_2'), + 'asuransi_luas_bangunan' => $request->input('asuransi_luas_bangunan'), + 'asuransi_nilai_1' => $request->input('asuransi_nilai_1'), + 'asuransi_nilai_2' => $request->input('asuransi_nilai_2'), + ]; + + // Update atau buat data baru + Penilai::updateOrCreate( + [ + 'permohonan_id' => $request->permohonanId, + 'dokument_id' => $request->documentId, + 'inspeksi_id' => $request->inspeksiId, + ], + [ + 'lpj' => json_encode($data), + ] + ); return response()->json([ - 'message' => 'Otorisasi berhasil dilakukan.', - 'data' => $permohonan, - ]); - } - - - public function dataForAuthorization(Request $request, $otorisator) - { - if (is_null($this->user) || !$this->user->can('debitur.view')) { - // abort(403, 'Sorry! You are not allowed to view users.'); - } - - - // Tentukan status berdasarkan otorisator - $status = match ($otorisator) { - 'Pelaporan' => 'proses-laporan', - 'Pembayaran' => 'proses', - 'Pembatalan' => 'batal', - 'SLA' => 'freeze', - default => '', - }; - - - $query = Permohonan::query(); - - // Pencarian berdasarkan parameter search - if ($request->has('search') && !empty($request->get('search'))) { - $search = $request->get('search'); - $query->where(function ($q) use ($search) { - $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); - $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); - $q->orWhere('status', 'LIKE', '%' . $search . '%'); - }); - } - - - if (!empty($otorisator)) { - if ($status == 'proses') { - $query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']); - } elseif ($status == 'proses-laporan') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } elseif ($status == 'batal') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } elseif ($status == 'freeze') { - $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); - } - } - - // Filter berdasarkan region user yang login - if(Auth::user()->hasRole('senior-officer')) { - $query->whereHas('region.teams.teamsUsers', function ($q) { - $q->where('user_id', Auth::id()); - }); - } - - - // Sorting berdasarkan sortField dan sortOrder - if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { - $order = $request->get('sortOrder'); - $column = $request->get('sortField'); - $query->orderBy($column, $order); - } - - // Hitung total records - $totalRecords = $query->count(); - - // Pagination (default page size 10) - $size = $request->get('size', 10); - if ($size == 0) { - $size = 10; - } - - if ($request->has('page') && $request->has('size')) { - $page = $request->get('page', 1); - $offset = ($page - 1) * $size; - - $query->skip($offset)->take($size); - } - - // Filtered records - $filteredRecords = $query->count(); - - // Ambil data dengan relasi - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo'])->get(); - - - // Hitung jumlah halaman - $pageCount = ceil($totalRecords / $size); - - // Ambil current page - $currentPage = max(1, $request->get('page', 1)); - - // Return JSON response + 'success' => true, + 'message' => 'Berhasil Update Laporan penilai', + 'data' => $request->all(), + ], 200); + } catch (\Throwable $e) { return response()->json([ - 'draw' => $request->get('draw'), - 'recordsTotal' => $totalRecords, - 'recordsFiltered' => $filteredRecords, - 'pageCount' => $pageCount, - 'page' => $currentPage, - 'totalCount' => $totalRecords, - 'data' => $data, - ]); + 'success' => false, + 'message' => 'Terjadi kesalahan', + 'error' => $e->getMessage() + ], 500); } - public function view_laporan(Request $request){ - - $id = $request->permohonanId; - - $permohonan = Permohonan::find($id); - return view('lpj::penilaian.laporan-so', compact('permohonan')); - } } + +} diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php index 5e07ac0..2a16878 100644 --- a/app/Http/Requests/FormSurveyorRequest.php +++ b/app/Http/Requests/FormSurveyorRequest.php @@ -529,7 +529,7 @@ class FormSurveyorRequest extends FormRequest 'jenis_asset_tidak_sesuai' => 'nullable|string', 'alamat_sesuai' => 'required', 'alamat_tidak_sesuai' => 'nullable|string', - 'pihak_bank' => 'required|string', + 'pihak_bank' => 'nullable|string', 'hub_cadeb' => 'required', 'hub_cadeb_sesuai' => 'nullable|string', diff --git a/module.json b/module.json index aa2eeb7..f1a7700 100644 --- a/module.json +++ b/module.json @@ -520,17 +520,6 @@ "admin" ] }, - { - "title": "SLA", - "path": "basicdata.sla", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator", - "admin" - ] - }, { "title": "Bentuk", "path": "basicdata.bentuk-tanah", diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index f2f6527..1f706d8 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -169,7 +169,7 @@ nama_debitur: { title: 'Nama Debitur', render: (item, data) => { - return `${data.permohonan.debiture.name}` + return `${data.permohonan.debiture?.name}` }, }, tujuan_penilaian: { @@ -181,7 +181,7 @@ jenis_asset: { title: 'Jenis Asset', render: (item, data) => - `${data.permohonan.debiture.documents.map(d => d.jenis_jaminan.name) || ''}`, + `${data.permohonan.debiture?.documents?.map(d => d.jenis_jaminan.name) || ''}`, }, jenis_report: { title: 'Jenis Report', @@ -209,7 +209,7 @@ due_date: { title: 'Due Date', render: (item, data) => { - const jenis_asset = data.permohonan.debiture.documents.map(d => d.jenis_jaminan.name ); + const jenis_asset = data.permohonan.debiture?.documents?.map(d => d.jenis_jaminan.name ); return `${calculateDateSLA(jenis_asset, data.tanggal_kunjungan)}`; }, diff --git a/resources/views/component/form-penilai.blade.php b/resources/views/component/form-penilai.blade.php new file mode 100644 index 0000000..d121879 --- /dev/null +++ b/resources/views/component/form-penilai.blade.php @@ -0,0 +1,789 @@ + +
+
+ + + @if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan'])) +
+ @foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item) +
+ + +
+ @endforeach +
+ @else +
+
+ + +
+
+ @endif + + + +
+ + +
+ +
+
+ +
+
+
+
+
+

Nama Cadeb/Debitur

+
+
+ + +
+
+ +
+ @if (isset($permohonan->debiture)) +

{{ $permohonan->debiture->name }}

+ @endif +
+
+
+
+
+ + +
+
+

Deskripsi Aset jaminan

+
+
+
+
+ +
+
+ @if (isset($permohonan->debiture->documents)) + @foreach ($permohonan->debiture->documents as $item) +

{{ $item->jenisJaminan->name }}

+ + @endforeach + @endif +
+
+
+ + + + @php + $statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) + ? 'sesuai' + : 'tidak sesuai'; + $selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; + @endphp +
+ + {{-- --}} +
+
+ +
+ +
+
+ +
+ +
+ + + {{ formatAlamat($permohonan->debiture) }} + + + +
+
+ + +
+ + +
+ + @php + $statusKey = isset($forminspeksi['asset']['alamat']['sesuai']) + ? 'sesuai' + : 'tidak sesuai'; + $address = $forminspeksi['asset']['alamat'][$statusKey] ?? null; + + @endphp + + +
+
+ + +
+
+
+ + +
+
+

Titik Koordinat Google Maps

+
+
+
+ + +
+
+
+ +
+
+

Status

+
+
+ +
+
+

Hubungan cadeb/debitur dengan Pemilik Jaminan +

+
+ +
+ +
+
+ @foreach ($permohonan->debiture->documents as $dokumen) + @php + $hubCadebPemilik = $dokumen->pemilik->hubungan_pemilik->name ?? 'N/A'; + @endphp + {{ $hubCadebPemilik }} + + + @endforeach +
+ +
+
+ + + + @php + $statusKey = isset($forminspeksi['asset']['hub_cadeb']['sesuai']) + ? 'sesuai' + : 'tidak sesuai'; + $selectedData = $forminspeksi['asset']['hub_cadeb'][$statusKey] ?? null; + @endphp + + + +
+ +
+
+
+ +
+ +
+
+

Hubungan Cadeb/Debitur dengan Penghuni Jaminan +

+
+ + +
+
+ +
+ +
+
+ + + + @php + $statusKey = isset( + $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'], + ) + ? 'sesuai' + : 'tidak sesuai'; + $selectedData = + $forminspeksi['asset']['hub_cadeb_penghuni'][$statusKey] ?? null; + @endphp + + + +
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+

+ {{$title ?? 'Data Jaminan' }} +

+
+ @if (isset($id)) + + Back + + @else + + Back + + @endif +
+
+
+
+ +
+ @if (isset($permohonan->debiture)) +

{{ $permohonan->debiture->name }}

+ @endif +
+
+
+ +
+ @foreach ($permohonan->debiture->documents as $dokumen) + + {{ formatAlamat($dokumen->pemilik) }} + {{ formatAlamat($dokumen->pemilik) }} + + @endforeach +
+
+
+ +
+

{{ $permohonan->nomor_registrasi }}

+
+
+ +
+ +
+ @if (isset($permohonan->branch)) +

{{ $permohonan->branch->name }}

+ @endif +
+
+ +
+ +
+

{{ $permohonan->nomor_registrasi }}

+
+
+
+ +
+ @if (isset($permohonan->user)) +

{{ $permohonan->user->name }}

+ @endif +
+
+
+
+
+ +
+
+

+ Identitas Cadeb/Debitur +

+
+
+ +
+ +
+ + @if (isset($permohonan->debiture)) +

{{ $permohonan->debiture->name }}

+ @endif +
+
+
+ +
+ +
+ + {{ $forminspeksi['asset']['debitur_perwakilan'][0] ?? '' }} + +
+
+ +
+ +
+ {{ $forminspeksi['asset']['pihak_bank'] ?? '' }} +
+
+ +
+
+ + +
+
+

+ Deskripsi dan Alamat Aset +

+
+
+
+ + @php + $statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; + @endphp +
+ {{ $selectedValue }} +
+
+ +
+ @php + $statusKey = isset($forminspeksi['asset']['alamat']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedValue = $forminspeksi['asset']['alamat'][$statusKey] ?? null; + @endphp + +
+ {{ $selectedValue['address'] ?? '' }} +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+ +
+
+

+ dokumen +

+
+
+ @include('lpj::component.detail-jaminan', ['status' => true]) +
+
+ +
+
+

+ Hubungan Cadeb/Debitur dengan pemilik dan penghuni +

+
+ @php + $statusKey = isset($forminspeksi['asset']['hub_cadeb']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedData = $forminspeksi['asset']['hub_cadeb'][$statusKey] ?? null; + @endphp +
+
+
+ + + + @foreach ($permohonan->debiture->documents as $dokumen) + @if ($dokumen->jenisJaminan) + @php + $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); + @endphp + @if (isset($formKategori) && $formKategori) + @php + $kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori]; + $kategoriUnik = array_unique($kategoriArray); + @endphp + + + + + @foreach ($kategoriUnik as $kategori) + {{-- Tampilkan komponen sesuai kategori --}} + @include('lpj::surveyor.components.' . str_replace('-', '-', $kategori), [ + 'dokumen' => $dokumen, + ]) + @endforeach + @endif + @endif + @endforeach + + +
+
+

+ Informasi dan pembanding +

+
+ @include('lpj::penilai.components.informasi-pembanding') +
+ +
+
+

+ total nilai pasar wajar +

+
+
+
+ +
+
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ + + + +
+
+ + +
+ + + +
+ +
+ + +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+
+
+ +
+
+

+ nilai asuransi +

+
+
+
+ +
+
+
+ + +
+
+ + +
+ +
+ +
+ + +
+
+
+
+
+ +
diff --git a/resources/views/penilai/components/lpj-sederhana-standard.blade.php b/resources/views/penilai/components/lpj-sederhana-standard.blade.php index fc7c890..c699dfb 100644 --- a/resources/views/penilai/components/lpj-sederhana-standard.blade.php +++ b/resources/views/penilai/components/lpj-sederhana-standard.blade.php @@ -8,642 +8,18 @@ @section('content') @include('lpj::assetsku.includenya') -
-
-
-
-

- Data Jaminan -

- -
-
-
- -
- @if (isset($permohonan->debiture)) -

{{ $permohonan->debiture->name }}

- @endif -
-
-
- -
- @foreach ($permohonan->debiture->documents as $dokumen) - - {{ formatAlamat($dokumen->pemilik) }} - {{ formatAlamat($dokumen->pemilik) }} - - @endforeach -
-
-
- -
-

{{ $permohonan->nomor_registrasi }}

-
-
- -
- -
- @if (isset($permohonan->branch)) -

{{ $permohonan->branch->name }}

- @endif -
-
- -
- -
-

{{ $permohonan->nomor_registrasi }}

-
-
-
- -
- @if (isset($permohonan->user)) -

{{ $permohonan->user->name }}

- @endif -
-
-
-
+
+ + + @include('lpj::component.form-penilai') + - -
-
-

- Identitas Cadeb/Debitur -

-
-
- -
- -
- - @if (isset($permohonan->debiture)) -

{{ $permohonan->debiture->name }}

- @endif -
-
-
- -
- -
- - {{ $forminspeksi['asset']['debitur_perwakilan'][0] ?? '' }} - -
-
- -
- -
- {{ $forminspeksi['asset']['pihak_bank'] ?? '' }} -
-
- -
-
- - -
-
-

- Deskripsi dan Alamat Aset -

-
-
-
- - @php - $statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) ? 'sesuai' : 'tidak sesuai'; - $selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; - @endphp -
- {{ $selectedValue }} -
-
- -
- @php - $statusKey = isset($forminspeksi['asset']['alamat']['sesuai']) ? 'sesuai' : 'tidak sesuai'; - $selectedValue = $forminspeksi['asset']['alamat'][$statusKey] ?? null; - @endphp - -
- {{ $selectedValue['address'] ?? '' }} -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
-
-
- -
-
-

- dokumen -

-
-
-
- @foreach ($permohonan->debiture->documents as $dokumen) -
- - - -
- @endforeach -
- @include('lpj::component.pdfviewer') -
- @foreach ($permohonan->debiture->documents as $dokumen) -
- - - -
- @endforeach -
- @include('lpj::component.pdfviewer') -
-
- -
-
-

- Hubungan Cadeb/Debitur dengan pemilik dan penghuni -

-
- @php - $statusKey = isset($forminspeksi['asset']['hub_cadeb']['sesuai']) ? 'sesuai' : 'tidak sesuai'; - $selectedData = $forminspeksi['asset']['hub_cadeb'][$statusKey] ?? null; - @endphp -
-
-
- - - - @foreach ($permohonan->debiture->documents as $dokumen) - @if ($dokumen->jenisJaminan) - @php - $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); - @endphp - @if (isset($formKategori) && $formKategori) - @php - $kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori]; - $kategoriUnik = array_unique($kategoriArray); - @endphp - - - - - @foreach ($kategoriUnik as $kategori) - {{-- Tampilkan komponen sesuai kategori --}} - @include('lpj::surveyor.components.' . str_replace('-', '-', $kategori), [ - 'dokumen' => $dokumen, - ]) - @endforeach - @endif - @endif - @endforeach - - -
-
-

- Informasi dan pembanding -

-
- @include('lpj::penilai.components.informasi-pembanding') -
- - - -
-
-

- total nilai pasar wajar -

-
-
-
- -
-
-
- - -
-
- - -
-
- -
-
- -
-
- - -
-
- - -
-
- -
-
- -
-
- - -
-
- - - - -
-
- - -
- - - -
- -
- - -
-
-
-
-
- -
- -
-
-
- -
-
- - -
-
-
- -
- -
- -
-
-
-
-
- -
-
-

- nilai asuransi -

-
-
-
- -
-
-
- - -
-
- - -
- -
- -
- - -
-
-
-
-
-
- -
-
- -
+ @endsection - - - - +@include('lpj::surveyor.js.utils') diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php index 735e43e..5290994 100644 --- a/resources/views/penilaian/otorisator/show.blade.php +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -13,6 +13,60 @@ @include('lpj::component.detail-jaminan', ['backLink' => 'otorisator.' . $dataHeader . '.index']) + @foreach ($permohonan->debiture->documents as $dokumen) +
+
+

+ Team +

+
+ +
+
+ @php + $surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first(); + $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first(); + + @endphp + +
+ +

+ {{ $surveyor->userPenilaiTeam->name }} +

+ +

{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }} +

+
+ +
+ +

+ {{ $penilai->userPenilaiTeam->name }} +

+ +

+ {{ checkRegionUserName($penilai->userPenilaiTeam->id) }} +

+
+
+ + +
+ @php + $inspeksiId = null; + foreach ($dokumen->inspeksi as $item) { + $inspeksiId = $item->id; + } + @endphp + + +
+ @endforeach @if($permohonan->approval_so) diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index fe572da..f131775 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -263,19 +263,19 @@
@if (isset($basicData['saranaPelengkap'])) - @foreach ($basicData['saranaPelengkap'] as $item) -
- - -
- @endforeach + @foreach ($basicData['saranaPelengkap'] as $item) +
+ + +
+ @endforeach @endif
diff --git a/routes/web.php b/routes/web.php index 16b6742..5f4bc57 100644 --- a/routes/web.php +++ b/routes/web.php @@ -466,6 +466,7 @@ Route::middleware(['auth'])->group(function () { Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); Route::post('create', [PenilaianController::class, 'create'])->name('create'); Route::post('store', [PenilaianController::class, 'store'])->name('store'); + Route::post('storePenilaiLaporan', [PenilaianController::class, 'storePenilaiLaporan'])->name('storePenilaiLaporan'); }); /**