diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php
index d7bd597..b3d2398 100644
--- a/app/Http/Controllers/DokumenJaminanController.php
+++ b/app/Http/Controllers/DokumenJaminanController.php
@@ -9,6 +9,7 @@
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
+ use Illuminate\Http\UploadedFile;
use Log;
use Modules\Location\Models\City;
use Modules\Location\Models\District;
@@ -249,7 +250,7 @@
'jenis_legalitas_jaminan_id' => $value,
'name' => $request->name[$key],
'keterangan' => $request->keterangan[$key],
- 'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : ''
+ 'details' => isset($request->custom_field[$key]) ? json_encode(array_values($request->custom_field[$key])) : ''
];
$dokumenJaminan = [];
@@ -279,7 +280,6 @@
}
-
// Setelah loop, periksa apakah ada dokumen yang dihapus
$existingDetail = $existingDetails->get($request->detail_dokumen_jaminan_id[$key] ?? null);
@@ -287,26 +287,53 @@
$existingDokumen = json_decode($existingDetail->dokumen_jaminan, true) ?? [];
$existingNomor = json_decode($existingDetail->dokumen_nomor, true) ?? [];
+ $newDokumenJaminan = [];
+ $newDokumenNomor = [];
-
- // Jika jumlah dokumen berkurang, berarti ada yang dihapus
- if (count($existingDokumen) > count($dokumenJaminan)) {
- $dokumenJaminan = $existingDokumen;
- $dokumenNomor = $existingNomor;
- foreach ($request->dokumen_jaminan[$key] as $index => $file) {
- if ($file === null) {
- // Hapus dokumen yang tidak ada lagi
- unset($dokumenJaminan[$index]);
- unset($dokumenNomor[$index]);
+ foreach ($existingDokumen as $index => $existingFile) {
+ if (isset($request->dokumen_jaminan[$key][$index])) {
+ $file = $request->dokumen_jaminan[$key][$index];
+ if ($file instanceof \Illuminate\Http\UploadedFile) {
+ // File baru diupload
+ $file_name = $file->getClientOriginalName();
+ $file->storeAs('public/jaminan/' . $debitur->id . '/' . $document->id . '/', $file_name);
+ $newDokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
+ $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
} elseif (is_string($file) && !empty($file)) {
- // Update nomor dokumen untuk file yang tidak diubah
- $dokumenNomor[$index] = $request->dokumen_nomor[$key][$index] ?? '-';
+ // File tidak diubah
+ $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)) {
+ Storage::delete('public/' . $existingFile);
}
}
- // Reset array keys
- $dokumenJaminan = array_values($dokumenJaminan);
- $dokumenNomor = array_values($dokumenNomor);
}
+
+ //dd($request->dokumen_jaminan[$key]);
+
+ // Tambahkan file baru yang mungkin ditambahkan
+ foreach ($request->dokumen_jaminan[$key] ?? [] as $index => $file) {
+
+ if ($file instanceof UploadedFile) {
+ $file_name = $file->getClientOriginalName();
+ $path = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
+ if (!in_array($path, $newDokumenJaminan)) {
+ $file->storeAs('public/' . dirname($path), $file_name);
+ $newDokumenJaminan[] = $path;
+ $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
+ }
+ } elseif (is_string($file) && !empty($file) && !in_array($file, $newDokumenJaminan)) {
+ $newDokumenJaminan[] = $file;
+ $newDokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '-';
+ }
+ }
+
+ $dokumenJaminan = $newDokumenJaminan;
+ $dokumenNomor = $newDokumenNomor;
}
diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php
index 2debb71..5179f00 100644
--- a/resources/views/debitur/components/dokumen.blade.php
+++ b/resources/views/debitur/components/dokumen.blade.php
@@ -307,7 +307,9 @@
+ @if($loop->index > 0)
+ @endif
@if($detail->details)