Tambahkan validasi dan relasi dokumen jaminan pada permohonan
- Menambahkan pengecekan keberadaan dokumen jaminan saat membuat atau memperbarui permohonan.
- Menambahkan relasi `has('documents')` pada query permohonan untuk memastikan hanya data yang memiliki dokumen terkait yang ditampilkan.
- Menambahkan tampilan nomor permohonan di komponen dokumen pada view.
- Merapikan dan memperbaiki format kode pada berbagai fungsi controller.
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Log;
|
||||||
use Modules\Location\Models\City;
|
use Modules\Location\Models\City;
|
||||||
use Modules\Location\Models\District;
|
use Modules\Location\Models\District;
|
||||||
use Modules\Location\Models\Province;
|
use Modules\Location\Models\Province;
|
||||||
@@ -20,6 +21,7 @@
|
|||||||
use Modules\Lpj\Models\JenisJaminan;
|
use Modules\Lpj\Models\JenisJaminan;
|
||||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
use Modules\Lpj\Models\PemilikJaminan;
|
use Modules\Lpj\Models\PemilikJaminan;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
use ZipArchive;
|
use ZipArchive;
|
||||||
|
|
||||||
class DokumenJaminanController extends Controller
|
class DokumenJaminanController extends Controller
|
||||||
@@ -31,6 +33,13 @@
|
|||||||
{
|
{
|
||||||
$debitur = Debiture::find($id);
|
$debitur = Debiture::find($id);
|
||||||
$documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get();
|
$documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get();
|
||||||
|
if (request()->get('permohonan_id') !== null) {
|
||||||
|
$permohonan_id = request()->get('permohonan_id');
|
||||||
|
$documents = DokumenJaminan::with('pemilik', 'detail')
|
||||||
|
->where('debiture_id', $id)
|
||||||
|
->where('permohonan_id', $permohonan_id)
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.edit',
|
'lpj::debitur.edit',
|
||||||
@@ -127,7 +136,10 @@
|
|||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
||||||
$hubunganPemilik = HubunganPemilikJaminan::all();
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
$permohonan = null;
|
||||||
|
if(request()->get('permohonan_id')) {
|
||||||
|
$permohonan = Permohonan::where('id', request()->get('permohonan_id'))->first();
|
||||||
|
}
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.jaminan',
|
'lpj::debitur.jaminan',
|
||||||
compact(
|
compact(
|
||||||
@@ -137,6 +149,7 @@
|
|||||||
'jenisLegalitasJaminan',
|
'jenisLegalitasJaminan',
|
||||||
'pemilikJaminan',
|
'pemilikJaminan',
|
||||||
'hubunganPemilik',
|
'hubunganPemilik',
|
||||||
|
'permohonan'
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -238,7 +251,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
$dokumenJaminan = [];
|
$dokumenJaminan = [];
|
||||||
$dokumenNomor=[];
|
$dokumenNomor = [];
|
||||||
|
|
||||||
if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) {
|
if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) {
|
||||||
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
|
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
|
||||||
@@ -311,7 +324,8 @@
|
|||||||
public function edit(
|
public function edit(
|
||||||
$id,
|
$id,
|
||||||
$jaminan,
|
$jaminan,
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
$document = DokumenJaminan::find($jaminan);
|
$document = DokumenJaminan::find($jaminan);
|
||||||
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
|
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
|
||||||
|
|
||||||
@@ -326,8 +340,8 @@
|
|||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
|
|
||||||
$_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id);
|
$_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id);
|
||||||
$legalitas='';
|
$legalitas = '';
|
||||||
if($_jenisJaminan) {
|
if ($_jenisJaminan) {
|
||||||
$legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true);
|
$legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true);
|
||||||
|
|
||||||
$currentLegalitasJaminan = JenisLegalitasJaminan::whereIn(
|
$currentLegalitasJaminan = JenisLegalitasJaminan::whereIn(
|
||||||
@@ -367,7 +381,8 @@
|
|||||||
public function destroy(
|
public function destroy(
|
||||||
$id,
|
$id,
|
||||||
$jaminan_id,
|
$jaminan_id,
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
$jaminan = DokumenJaminan::find($jaminan_id);
|
$jaminan = DokumenJaminan::find($jaminan_id);
|
||||||
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get();
|
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get();
|
||||||
@@ -385,7 +400,7 @@
|
|||||||
public function bulkDownload()
|
public function bulkDownload()
|
||||||
{
|
{
|
||||||
$dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id
|
$dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id
|
||||||
$documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail','debiture'])->get();
|
$documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail', 'debiture'])->get();
|
||||||
|
|
||||||
if ($documents->isEmpty()) {
|
if ($documents->isEmpty()) {
|
||||||
return redirect()->back()->with('error', 'No documents found for the provided IDs.');
|
return redirect()->back()->with('error', 'No documents found for the provided IDs.');
|
||||||
@@ -401,8 +416,8 @@
|
|||||||
$folderName = $this->sanitizeFolderName($jenisJaminan);
|
$folderName = $this->sanitizeFolderName($jenisJaminan);
|
||||||
|
|
||||||
foreach ($document->detail as $detail) {
|
foreach ($document->detail as $detail) {
|
||||||
if($detail->dokumen_jaminan) {
|
if ($detail->dokumen_jaminan) {
|
||||||
$folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name?? 'Uncategorized');
|
$folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name ?? 'Uncategorized');
|
||||||
$files = is_array(json_decode($detail->dokumen_jaminan))
|
$files = is_array(json_decode($detail->dokumen_jaminan))
|
||||||
? json_decode($detail->dokumen_jaminan)
|
? json_decode($detail->dokumen_jaminan)
|
||||||
: [$detail->dokumen_jaminan];
|
: [$detail->dokumen_jaminan];
|
||||||
@@ -410,10 +425,10 @@
|
|||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
$filePath = storage_path('app/public/' . $file);
|
$filePath = storage_path('app/public/' . $file);
|
||||||
if (file_exists($filePath)) {
|
if (file_exists($filePath)) {
|
||||||
$zip->addFile($filePath, $folderName . '/' .$folderJaminanName.'/'.basename($filePath));
|
$zip->addFile($filePath, $folderName . '/' . $folderJaminanName . '/' . basename($filePath));
|
||||||
} else {
|
} else {
|
||||||
// Log or display an error message for missing files
|
// Log or display an error message for missing files
|
||||||
\Log::warning('File not found: ' . $filePath);
|
Log::warning('File not found: ' . $filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -463,7 +478,8 @@
|
|||||||
|
|
||||||
|
|
||||||
public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1)
|
public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1)
|
||||||
: JsonResponse {
|
: JsonResponse
|
||||||
|
{
|
||||||
$jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId);
|
$jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId);
|
||||||
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||||
$newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
$newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||||
|
|||||||
@@ -69,6 +69,11 @@
|
|||||||
$permohonan->toArray(),
|
$permohonan->toArray(),
|
||||||
$filePath,
|
$filePath,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get();
|
||||||
|
if(count($documents)<1){
|
||||||
|
return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu');
|
||||||
|
}
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.index')->with('success', 'Permohonan created successfully');
|
->route('permohonan.index')->with('success', 'Permohonan created successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -151,6 +156,11 @@
|
|||||||
}
|
}
|
||||||
$permohonan->update($validate);
|
$permohonan->update($validate);
|
||||||
|
|
||||||
|
$documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get();
|
||||||
|
if(count($documents)<1){
|
||||||
|
return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu');
|
||||||
|
}
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.index')->with('success', 'Permohonan updated successfully');
|
->route('permohonan.index')->with('success', 'Permohonan updated successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -265,7 +275,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query = Permohonan::query();
|
$query = Permohonan::query()->with('documents')->has('documents', '>', 0)->where('status', '=', 'order');
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
@@ -304,7 +314,7 @@
|
|||||||
$filteredRecords = $query->count();
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
// Get the data for the current page
|
// Get the data for the current page
|
||||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status', '=', 'order')->get(
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(
|
||||||
);
|
);
|
||||||
|
|
||||||
// Calculate the page count
|
// Calculate the page count
|
||||||
|
|||||||
@@ -16,6 +16,16 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor Permohonan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<p class="text-base text-gray-700 font-bold">
|
||||||
|
{{ $permohonan->nomor_registrasi ?? "-" }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Pemilik Jaminan
|
Pemilik Jaminan
|
||||||
|
|||||||
Reference in New Issue
Block a user