update memo, lpj, resume, dan perbaikan form inspeksi

This commit is contained in:
majid
2024-12-18 16:58:32 +07:00
parent eaffe2805f
commit 27e53431d0
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);
}
}
}