Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into andydev
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
use Modules\Lpj\Models\JenisJaminan;
|
||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||
use Modules\Lpj\Models\PemilikJaminan;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Collection;
|
||||
use ZipArchive;
|
||||
|
||||
class DokumenJaminanController extends Controller
|
||||
@@ -402,7 +404,7 @@
|
||||
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
|
||||
}
|
||||
|
||||
public function legalitasJaminan($id, $jaminan)
|
||||
public function legalitasJaminan($id)
|
||||
{
|
||||
$jenisJaminan = JenisJaminan::find($id);
|
||||
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||
@@ -410,4 +412,60 @@
|
||||
$legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||
echo json_encode($legalitas);
|
||||
}
|
||||
|
||||
|
||||
public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1) : JsonResponse
|
||||
{
|
||||
|
||||
$jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId);
|
||||
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||
$newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||
|
||||
$existingLegalitas = [];
|
||||
$newLegalitas = [];
|
||||
|
||||
// Create a set of new jenis_legalitas_jaminan_ids for quick lookup
|
||||
$newLegalitasIds = $newLegalitasJaminan->pluck('id')->toArray();
|
||||
|
||||
if($id>0) {
|
||||
$document = DokumenJaminan::findOrFail($id);
|
||||
if ($document && $document->detail) {
|
||||
foreach ($document->detail as $detail) {
|
||||
// Only include existing legalitas if its id is in the new set
|
||||
if (in_array($detail->jenis_legalitas_jaminan_id, $newLegalitasIds)) {
|
||||
$existingLegalitas[] = [
|
||||
'id' => $detail->id,
|
||||
'jenis_legalitas_jaminan_id' => $detail->jenis_legalitas_jaminan_id,
|
||||
'name' => $detail->name,
|
||||
'dokumen_jaminan' => $detail->dokumen_jaminan,
|
||||
'custom_field' => $detail->jenisLegalitasJaminan->custom_field,
|
||||
'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type,
|
||||
'details' => $detail->details,
|
||||
'keterangan' => $detail->keterangan,
|
||||
'is_existing' => true
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($newLegalitasJaminan as $legalitas) {
|
||||
if (!Collection::make($existingLegalitas)->contains('jenis_legalitas_jaminan_id', $legalitas->id)) {
|
||||
$newLegalitas[] = [
|
||||
'id' => null,
|
||||
'jenis_legalitas_jaminan_id' => $legalitas->id,
|
||||
'name' => $legalitas->name,
|
||||
'dokumen_jaminan' => null,
|
||||
'custom_field' => $legalitas->custom_field,
|
||||
'custom_field_type' => $legalitas->custom_field_type,
|
||||
'details' => null,
|
||||
'keterangan' => null,
|
||||
'is_existing' => false
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$combinedLegalitas = array_merge($existingLegalitas, $newLegalitas);
|
||||
return response()->json($combinedLegalitas);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user