update memo, lpj, resume, dan perbaikan form inspeksi

This commit is contained in:
majid
2024-12-18 16:58:32 +07:00
committed by putrakuningan
parent 85d256c6b5
commit 7553b7d4b6
22 changed files with 1556 additions and 310 deletions

View File

@@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers;
use Illuminate\Http\Request;
use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Inspeksi;
use Modules\Lpj\Models\Penilai;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
@@ -15,6 +16,13 @@ class PenilaiController extends Controller
{
public $user;
protected $surveyorController;
public function __construct(SurveyorController $surveyorController)
{
$this->surveyorController = $surveyorController;
}
/**
* Display a listing of the resource.
*/
@@ -30,9 +38,9 @@ class PenilaiController extends Controller
{
$permohonan = Permohonan::with('debiture.documents')->find($id);
$jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id;
$documentId = $request->query('documentId');
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $jaminanId)->first();
$formFoto = null;
if ($inpeksi) {
@@ -56,14 +64,20 @@ class PenilaiController extends Controller
//
}
public function sederhana($id)
public function sederhana(Request $request,$id)
{
$data = new SurveyorController();
$basicData = $data->getCommonData();
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
$jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id;
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
$basicData = $this->surveyorController->getCommonData();
$documentId = $request->query('documentId');
$inspeksiId = $request->query('inspeksiId');
$jaminanId = $request->query('jaminanId');
$permohonan = $this->surveyorController->getPermohonanJaminanId($id, $documentId, $jaminanId);
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first();
$forminspeksi = null;
if ($inspeksi) {
$forminspeksi = json_decode($inspeksi->data_form, true);
@@ -71,33 +85,55 @@ class PenilaiController extends Controller
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'basicData', 'forminspeksi', 'inspeksi'));
}
public function standard($id)
public function standard(Request $request, $id)
{
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
$jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id;
$documentId = $request->query('documentId');
$jaminanId = $request->query('jaminanId');
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
$permohonan = $this->surveyorController->getPermohonanJaminanId($id, $documentId, $jaminanId);
$basicData = $this->surveyorController->getCommonData();
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first();
$forminspeksi = null;
if ($inspeksi) {
$forminspeksi = json_decode($inspeksi->data_form, true);
}
$data = new SurveyorController();
$basicData = $data->getCommonData();
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi'));
}
public function resume($id)
public function resume(Request $request)
{
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
$permohonanId = $request->query('permohonanId');
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($permohonanId);
return view('lpj::penilai.components.resume', compact('permohonan'));
}
public function memo()
public function memo(Request $request)
{
return view('lpj::resume.index');
$permohonanId = $request->query('permohonanId');
$documentId = $request->query('documentId');
$inspeksiId = $request->query('inspeksiId');
$jaminanId = $request->query('jaminanId');
$permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId);
$inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first();
$formFoto = null;
$formPeta = null;
if ($inspeksi) {
$formFoto = json_decode($inspeksi->foto_form, true);
$formPeta = json_decode($inspeksi->data_form, true);
}
return view('lpj::penilai.components.memo', compact('permohonan', 'formFoto', 'formPeta'));
}
@@ -106,7 +142,7 @@ class PenilaiController extends Controller
*/
public function show($id)
{
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian', 'documents.inspeksi'])->find($id);
// return response()->json(['permohonan' => $permohonan]);
return view('lpj::penilai.show', compact('permohonan'));
@@ -123,11 +159,20 @@ class PenilaiController extends Controller
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
public function paparan(Request $request)
{
//
$permohonanId = $request->query('permohonanId');
return view('lpj::penilai.components.paparan');
}
public function rap(Request $request)
{
$permohonanId = $request->query('permohonanId');
return view('lpj::penilai.components.paparan');
}
/**
* Remove the specified resource from storage.
*/
@@ -160,7 +205,7 @@ class PenilaiController extends Controller
// Apply whereHas to check penilai_id, role, and user_id specifically for 'penilai' role
$query->whereHas('penilaian.userPenilai', function ($q) {
$q->where('role', 'penilai') // Ensure the role is 'penilai'
->where('user_id', 12); // Ganti dengan Auth::user()->id jika dinamis
->where('user_id', Auth::user()->id); // Ganti dengan Auth::user()->id jika dinamis
});
// Apply sorting if provided
@@ -213,9 +258,9 @@ class PenilaiController extends Controller
]);
}
public function kertas_kerja($id, $jaminanId)
public function export_kertas_kerja($id, $jaminanId)
{
$data = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
$data = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $jaminanId)->first();
// $data = null;
// $headerInfo = [
@@ -234,5 +279,100 @@ class PenilaiController extends Controller
}
public function import_kertas_kerja(Request $request)
{
$validatedData = $request->validate([
'permohonan_id' => 'required|integer',
'document_id' => 'required|integer',
'inspeksi_id' => 'required|integer',
'kertas_kerja' => 'required|file|mimes:pdf,doc,docx,xls,xlsx,xlsx',
]);
try {
// Simpan file kertas kerja
if ($request->hasFile('kertas_kerja')) {
$file = $request->file('kertas_kerja');
$filePath = $this->surveyorController->uploadFile($file, 'kertas_kerja');
Penilai::updateOrCreate(
[
'permohonan_id' => $validatedData['permohonan_id'],
'dokument_id' => $validatedData['document_id'],
'inspeksi_id' => $validatedData['inspeksi_id'],
],
[
'kertas_kerja' => $filePath,
]
);
return response()->json(['success' => true, 'message' => 'Kertas kerja berhasil diunggah.']);
}
return response()->json(['success' => false, 'message' => 'File kertas kerja tidak ditemukan.'], 400);
} catch (\Exception $e) {
return response()->json(['success' => false, 'message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500);
}
}
public function status($id)
{
$penilai = Penilai::find($id);
return response()->json(['data' => $penilai]);
}
public function checkStatusLpj(Request $request)
{
$permohonanId = $request->query('permohonanId');
$documentId = $request->query('documentId');
$inspeksiId = $request->query('inspeksiId');
$statusLpj = Penilai::where('permohonan_id', $permohonanId)
->where('dokument_id', $documentId)
->where('inspeksi_id', $inspeksiId)
->first();
return response()->json(['status' => $statusLpj ? $statusLpj->type : null]);
}
public function saveStatusLpj(Request $request)
{
Penilai::updateOrCreate(
[
'permohonan_id' => $request->permohonan_id,
'dokument_id' => $request->document_id,
'inspeksi_id' => $request->inspeksi_id,
],
[
'type' => $request->type,
]
);
return response()->json(['success' => true]);
}
public function storePenilaian($id){
try {
$permohonan = Permohonan::findOrFail($id);
$permohonan->update([
'status' => 'proses-laporan',
]);
return response()->json([
'success' => true,
'message' => 'Berhasil menyimpan penilaian'
], 200);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => 'Terjadi kesalahan',
'error' => $e->getMessage()
], 500);
}
}
}

View File

@@ -723,15 +723,33 @@ class SurveyorController extends Controller
// Fields untuk tanah
if (in_array($field, ['luas_tanah'])) {
$cekLuas = $dataForm['tanah']['luas_tanah'] == 'sesuai' ? 'sesuai' : 'tidak sesuai';
$dataForm['tanah'][$field][$cekLuas] = $newValue;
// Pastikan struktur array ada sebelum diakses
if (!isset($dataForm['tanah']['luas_tanah'])) {
$dataForm['tanah']['luas_tanah'] = [];
}
$cekLuas = isset($dataForm['tanah']['luas_tanah']['sesuai']) && $dataForm['tanah']['luas_tanah']['sesuai'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$dataForm['tanah']['luas_tanah'][$cekLuas] = $newValue;
$needsSave = true;
}
// Fields untuk bangunan
elseif (in_array($field, ['luas_tanah_bagunan'])) {
if (!isset($dataForm['bangunan']['luas_tanah_bagunan'])) {
$dataForm['bangunan']['luas_tanah_bagunan'] = [];
}
$cekBanguan = $dataForm['bangunan']['luas_tanah_bagunan'] == 'sesuai' ? 'sesuai' : 'tidak sesuai';
$dataForm['bangunan'][$field][$cekBanguan] = $newValue;
$cekBanguan = isset($dataForm['bangunan']['luas_tanah_bagunan']['sesuai']) && $dataForm['bangunan']['luas_tanah_bagunan']['sesuai'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$dataForm['bangunan']['luas_tanah_bagunan'][$cekBanguan] = $newValue;
$needsSave = true;
}
// Fields untuk alamat dalam asset
elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) {
@@ -2306,7 +2324,7 @@ class SurveyorController extends Controller
*/
private function uploadFile($file, $type)
public function uploadFile($file, $type)
{
if (!$file->isValid()) {
throw new Exception("Invalid file upload for {$type}");