fix(dokumen): perbaiki logika penyimpanan dokumen jaminan

- Tambahkan pengecekan untuk menentukan apakah semua file telah dihapus.
- Sesuaikan logika penyimpanan dokumen dan nomor dokumen berdasarkan kondisi file yang ada.
- Perbaiki tampilan tombol hapus file agar selalu ditampilkan.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-11 10:48:35 +07:00
parent ce792474c6
commit 059f58842e
2 changed files with 17 additions and 8 deletions

View File

@@ -290,8 +290,11 @@
$newDokumenJaminan = [];
$newDokumenNomor = [];
$allFilesDeleted = true;
foreach ($existingDokumen as $index => $existingFile) {
if (isset($request->dokumen_jaminan[$key][$index])) {
$allFilesDeleted = false;
$file = $request->dokumen_jaminan[$key][$index];
if ($file instanceof \Illuminate\Http\UploadedFile) {
// File baru diupload
@@ -304,7 +307,6 @@
$newDokumenJaminan[] = $existingFile;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? $existingNomor[$index];
}
// Jika $file adalah null, berarti file dihapus dan tidak perlu ditambahkan ke array baru
} else {
// File dihapus, hapus dari storage jika ada
if (Storage::exists('public/' . $existingFile)) {
@@ -313,12 +315,10 @@
}
}
//dd($request->dokumen_jaminan[$key]);
// Tambahkan file baru yang mungkin ditambahkan
foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) {
if ($file instanceof UploadedFile) {
$allFilesDeleted = false;
$file_name = $file->getClientOriginalName();
$path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
if (!in_array($path, $newDokumenJaminan)) {
@@ -327,19 +327,29 @@
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
} elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) {
$allFilesDeleted = false;
$newDokumenJaminan[] = $file;
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
}
}
$dokumenJaminan = $newDokumenJaminan;
$dokumenNomor = $newDokumenNomor;
if ($allFilesDeleted) {
$dokumenJaminan = [];
$dokumenNomor = [];
} else {
$dokumenJaminan = $newDokumenJaminan;
$dokumenNomor = $newDokumenNomor;
}
}
if (!empty($dokumenJaminan)) {
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
} else if(empty($dokumenJaminan)){
$detailData['dokumen_jaminan'] = null;
$detailData['dokumen_nomor'] = null;
}
if (isset($request->detail_dokumen_jaminan_id[$key])) {

View File

@@ -307,9 +307,8 @@
<i class="ki-filled ki-cloud-download"></i>
</a>
</span>
@if($loop->index > 0)
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
@endif
</div>
@if($detail->details)