Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2025-03-03 15:51:49 +07:00
2 changed files with 42 additions and 5 deletions

View File

@@ -93,13 +93,29 @@
public function destroy($id) public function destroy($id)
{ {
try { try {
// Delete from database // Periksa apakah pengguna adalah administrator
if (!auth()->user()->hasRole('administrator')) {
return response()->json(['success' => false, 'message' => 'Hanya administrator yang dapat menghapus debitur'], 403);
}
// Temukan debitur
$debitur = Debiture::find($id); $debitur = Debiture::find($id);
if (!$debitur) {
return response()->json(['success' => false, 'message' => 'Debitur tidak ditemukan'], 404);
}
// Periksa apakah debitur memiliki permohonan aktif
if ($debitur->permohonan()->exists()) {
return response()->json(['success' => false, 'message' => 'Tidak dapat menghapus debitur yang masih memiliki permohonan aktif'], 400);
}
// Hapus dari database
$debitur->delete(); $debitur->delete();
echo json_encode(['success' => true, 'message' => 'Debitur deleted successfully']); return response()->json(['success' => true, 'message' => 'Debitur berhasil dihapus']);
} catch (Exception $e) { } catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Failed to delete debitur']); return response()->json(['success' => false, 'message' => 'Gagal menghapus debitur: ' . $e->getMessage()], 500);
} }
} }

View File

@@ -385,16 +385,37 @@
) )
{ {
try { try {
// Periksa apakah pengguna adalah admin
if (!auth()->user()->hasRole('administrator')) {
return response()->json(['success' => false, 'message' => 'Hanya administrator yang dapat menghapus dokumen jaminan'], 403);
}
$jaminan = DokumenJaminan::find($jaminan_id); $jaminan = DokumenJaminan::find($jaminan_id);
if (!$jaminan) {
return response()->json(['success' => false, 'message' => 'Dokumen Jaminan tidak ditemukan'], 404);
}
// Periksa apakah dokumen jaminan terkait dengan permohonan aktif
if ($jaminan->permohonan()->exists()) {
return response()->json(['success' => false, 'message' => 'Tidak dapat menghapus dokumen jaminan yang terkait dengan permohonan aktif'], 400);
}
DB::beginTransaction();
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get(); $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get();
foreach ($details as $detail) { foreach ($details as $detail) {
Storage::delete('public/' . $detail->dokumen_jaminan); Storage::delete('public/' . $detail->dokumen_jaminan);
$detail->delete(); $detail->delete();
} }
$jaminan->delete(); $jaminan->delete();
echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']);
DB::commit();
return response()->json(['success' => true, 'message' => 'Dokumen Jaminan berhasil dihapus']);
} catch (Exception $e) { } catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Failed to delete Dokumen Jaminan']); DB::rollBack();
return response()->json(['success' => false, 'message' => 'Gagal menghapus Dokumen Jaminan: ' . $e->getMessage()], 500);
} }
} }