diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php
index cdfaa22..04feb22 100644
--- a/app/Http/Controllers/DokumenJaminanController.php
+++ b/app/Http/Controllers/DokumenJaminanController.php
@@ -4,6 +4,7 @@
use App\Http\Controllers\Controller;
use Exception;
+ use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
@@ -572,4 +573,40 @@
$combinedLegalitas = array_merge($existingLegalitas, $newLegalitas);
return response()->json($combinedLegalitas);
}
+
+ public function clearDetail(Request $request)
+ {
+ try {
+ DB::beginTransaction();
+
+ $detailId = $request->input('detail_id');
+ $detail = DetailDokumenJaminan::findOrFail($detailId);
+
+ // Delete associated files
+ if ($detail->dokumen_jaminan) {
+ $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
+ ? json_decode($detail->dokumen_jaminan)
+ : [$detail->dokumen_jaminan];
+
+ foreach ($dokumen_jaminan as $dokumen) {
+ if (Storage::exists($dokumen)) {
+ Storage::delete($dokumen);
+ }
+ }
+ }
+
+ // Delete the detail record
+ $detail->delete();
+
+ DB::commit();
+
+ return response()->json(['success' => true, 'message' => 'Detail berhasil dihapus']);
+ } catch (\Exception $e) {
+ DB::rollBack();
+ return response()->json([
+ 'success' => false,
+ 'message' => 'Gagal menghapus detail: ' . $e->getMessage()
+ ], 500);
+ }
+ }
}
diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php
index 9d3b3da..3f5fb73 100644
--- a/resources/views/debitur/components/dokumen.blade.php
+++ b/resources/views/debitur/components/dokumen.blade.php
@@ -262,7 +262,16 @@
-
+
+
@@ -713,5 +722,75 @@
return ``;
}
}
+
+ function clearDetail(detailId) {
+ Swal.fire({
+ title: 'Apakah Anda yakin?',
+ text: "Anda akan menghapus detail ini!",
+ icon: 'warning',
+ showCancelButton: true,
+ confirmButtonColor: '#3085d6',
+ cancelButtonColor: '#d33',
+ confirmButtonText: 'Ya, yakin!',
+ cancelButtonText: 'Batal'
+ }).then((result) => {
+ if (result.isConfirmed) {
+ Swal.fire({
+ title: 'Apakah Anda yakin?',
+ text: "Data yang telah di hapus tidak dapat di kembalikan",
+ icon: 'warning',
+ showCancelButton: true,
+ confirmButtonColor: '#3085d6',
+ cancelButtonColor: '#d33',
+ confirmButtonText: 'Ya, hapus!',
+ cancelButtonText: 'Batal'
+ }).then((result2) => {
+ if (result2.isConfirmed) {
+ // Hapus input fields
+ $(`input[name="detail_dokumen_jaminan_id[]"][value="${detailId}"]`).closest('.grid.gap-5').remove();
+
+ // Kirim request AJAX untuk menghapus data dari database
+ $.ajax({
+ url: '{{ route("debitur.jaminan.clearDetail", $debitur->id ) }}',
+ type: 'POST',
+ data: {
+ _token: '{{ csrf_token() }}',
+ detail_id: detailId
+ },
+ success: function (response) {
+ if (response.success) {
+ Swal.fire({
+ title: 'Berhasil!',
+ text: 'Detail berhasil dihapus',
+ icon: 'success',
+ confirmButtonText: 'OK'
+ }).then((result) => {
+ if (result.isConfirmed) {
+ location.reload();
+ }
+ });
+ } else {
+ Swal.fire({
+ title: 'Gagal!',
+ text: 'Detail gagal dihapus',
+ icon: 'error',
+ confirmButtonText: 'OK'
+ });
+ }
+ },
+ error: function () {
+ Swal.fire({
+ title: 'Gagal!',
+ text: 'Terjadi kesalahan saat menghapus detail',
+ icon: 'error',
+ confirmButtonText: 'OK'
+ });
+ }
+ });
+ }
+ });
+ }
+ });
+ }
@endpush
diff --git a/routes/web.php b/routes/web.php
index d922846..9dad5ac 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -349,6 +349,8 @@ Route::middleware(['auth'])->group(function () {
Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update');
Route::post('store', [DokumenJaminanController::class, 'store'])->name('store');
Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy');
+
+ Route::post('clear-detail', [DokumenJaminanController::class, 'clearDetail'])->name('clearDetail');
});
Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () {