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:
@@ -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])) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user