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 = [];
|
$newDokumenJaminan = [];
|
||||||
$newDokumenNomor = [];
|
$newDokumenNomor = [];
|
||||||
|
|
||||||
|
$allFilesDeleted = true;
|
||||||
|
|
||||||
foreach ($existingDokumen as $index => $existingFile) {
|
foreach ($existingDokumen as $index => $existingFile) {
|
||||||
if (isset($request->dokumen_jaminan[$key][$index])) {
|
if (isset($request->dokumen_jaminan[$key][$index])) {
|
||||||
|
$allFilesDeleted = false;
|
||||||
$file = $request->dokumen_jaminan[$key][$index];
|
$file = $request->dokumen_jaminan[$key][$index];
|
||||||
if ($file instanceof \Illuminate\Http\UploadedFile) {
|
if ($file instanceof \Illuminate\Http\UploadedFile) {
|
||||||
// File baru diupload
|
// File baru diupload
|
||||||
@@ -304,7 +307,6 @@
|
|||||||
$newDokumenJaminan[] = $existingFile;
|
$newDokumenJaminan[] = $existingFile;
|
||||||
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? $existingNomor[$index];
|
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? $existingNomor[$index];
|
||||||
}
|
}
|
||||||
// Jika $file adalah null, berarti file dihapus dan tidak perlu ditambahkan ke array baru
|
|
||||||
} else {
|
} else {
|
||||||
// File dihapus, hapus dari storage jika ada
|
// File dihapus, hapus dari storage jika ada
|
||||||
if (Storage::exists('public/' . $existingFile)) {
|
if (Storage::exists('public/' . $existingFile)) {
|
||||||
@@ -313,12 +315,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//dd($request->dokumen_jaminan[$key]);
|
|
||||||
|
|
||||||
// Tambahkan file baru yang mungkin ditambahkan
|
// Tambahkan file baru yang mungkin ditambahkan
|
||||||
foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) {
|
foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) {
|
||||||
|
|
||||||
if ($file instanceof UploadedFile) {
|
if ($file instanceof UploadedFile) {
|
||||||
|
$allFilesDeleted = false;
|
||||||
$file_name = $file->getClientOriginalName();
|
$file_name = $file->getClientOriginalName();
|
||||||
$path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
|
$path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
|
||||||
if (!in_array($path, $newDokumenJaminan)) {
|
if (!in_array($path, $newDokumenJaminan)) {
|
||||||
@@ -327,19 +327,29 @@
|
|||||||
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
|
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
|
||||||
}
|
}
|
||||||
} elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) {
|
} elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) {
|
||||||
|
$allFilesDeleted = false;
|
||||||
$newDokumenJaminan[] = $file;
|
$newDokumenJaminan[] = $file;
|
||||||
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
|
$newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$dokumenJaminan = $newDokumenJaminan;
|
if ($allFilesDeleted) {
|
||||||
$dokumenNomor = $newDokumenNomor;
|
$dokumenJaminan = [];
|
||||||
|
$dokumenNomor = [];
|
||||||
|
} else {
|
||||||
|
$dokumenJaminan = $newDokumenJaminan;
|
||||||
|
$dokumenNomor = $newDokumenNomor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!empty($dokumenJaminan)) {
|
if (!empty($dokumenJaminan)) {
|
||||||
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
|
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
|
||||||
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
|
$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])) {
|
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
||||||
|
|||||||
@@ -307,9 +307,8 @@
|
|||||||
<i class="ki-filled ki-cloud-download"></i>
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
@if($loop->index > 0)
|
|
||||||
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
|
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if($detail->details)
|
@if($detail->details)
|
||||||
|
|||||||
Reference in New Issue
Block a user