This commit is contained in:
Dwi Swandhana
2026-02-21 06:32:31 +07:00
parent b8a94e4508
commit 41cbe00299
3 changed files with 64 additions and 2 deletions
@@ -217,6 +217,44 @@ class BiorepositoryController extends Controller
return redirect('/biorepository')->with('success', 'Spesimen berhasil dihapus.');
}
public function deleteRack($id)
{
if (Session::get('previlage') == '') {
return redirect('/login');
}
$rack = BioRack::find($id);
if (!$rack) {
return redirect('/biorepository')->withErrors(['rack' => 'Data rack tidak ditemukan.']);
}
BioSpecimen::where('rack_id', $rack->id)->delete();
$rack->delete();
return redirect('/biorepository')->with('success', 'Rack dan semua spesimennya berhasil dihapus.');
}
public function deleteCabinet($id)
{
if (Session::get('previlage') == '') {
return redirect('/login');
}
$cabinet = BioCabinet::find($id);
if (!$cabinet) {
return redirect('/biorepository')->withErrors(['cabinet' => 'Data lemari tidak ditemukan.']);
}
$rackIds = BioRack::where('cabinet_id', $cabinet->id)->pluck('id')->toArray();
if (!empty($rackIds)) {
BioSpecimen::whereIn('rack_id', $rackIds)->delete();
BioRack::whereIn('id', $rackIds)->delete();
}
$cabinet->delete();
return redirect('/biorepository')->with('success', 'Lemari beserta rack dan spesimennya berhasil dihapus.');
}
private function mapStorageCondition($category)
{
$mapping = [
@@ -168,7 +168,13 @@
@forelse($cabinets as $cabinet)
<div class="cabinet-visual">
<h5 class="m-b-15">{{ $cabinet->code }} - {{ $cabinet->name }} <small class="text-muted">({{ $cabinet->location ?? 'Lokasi belum diisi' }})</small></h5>
<div class="d-flex justify-content-between align-items-start m-b-15">
<h5 class="m-b-0">{{ $cabinet->code }} - {{ $cabinet->name }} <small class="text-muted">({{ $cabinet->location ?? 'Lokasi belum diisi' }})</small></h5>
<form method="POST" action="{{ route('biorepository.deleteCabinet', $cabinet->id) }}" class="js-delete-cabinet">
@csrf
<button type="submit" class="btn btn-sm btn-danger">Delete Lemari</button>
</form>
</div>
<div class="rack-grid">
@forelse($cabinet->racks as $rack)
@php
@@ -182,7 +188,13 @@
$tubeCapacity = (int) $rack->capacity;
@endphp
<div class="rack-box">
<div class="rack-header">{{ $rack->code }} - {{ $rack->name }}</div>
<div class="d-flex justify-content-between align-items-start">
<div class="rack-header">{{ $rack->code }} - {{ $rack->name }}</div>
<form method="POST" action="{{ route('biorepository.deleteRack', $rack->id) }}" class="js-delete-rack">
@csrf
<button type="submit" class="btn btn-xs btn-danger">Delete Rack</button>
</form>
</div>
<div style="font-size:12px;">Rack No {{ $rack->rack_number ?? $rack->id }} | Total Shelf {{ $shelfCount }} | 1 Box per Shelf | Tube per Box {{ $tubeCapacity }}</div>
<div style="font-size:12px;">Terisi: {{ $rack->specimens->count() }}</div>
@@ -530,6 +542,16 @@
e.preventDefault();
}
});
$(document).on('submit', '.js-delete-rack', function (e) {
if (!confirm('Yakin hapus rack ini? Semua spesimen pada rack ini juga akan dihapus.')) {
e.preventDefault();
}
});
$(document).on('submit', '.js-delete-cabinet', function (e) {
if (!confirm('Yakin hapus lemari ini? Semua rack dan spesimennya akan dihapus.')) {
e.preventDefault();
}
});
});
</script>
@endpush
+2
View File
@@ -72,6 +72,8 @@ Route::group(['middleware' => 'project.ipg'], function() {
Route::post('biorepository/store-rack', [BiorepositoryController::class, 'storeRack'])->name('biorepository.storeRack');
Route::post('biorepository/store-specimen', [BiorepositoryController::class, 'storeSpecimen'])->name('biorepository.storeSpecimen');
Route::post('biorepository/delete-specimen/{id}', [BiorepositoryController::class, 'deleteSpecimen'])->name('biorepository.deleteSpecimen');
Route::post('biorepository/delete-rack/{id}', [BiorepositoryController::class, 'deleteRack'])->name('biorepository.deleteRack');
Route::post('biorepository/delete-cabinet/{id}', [BiorepositoryController::class, 'deleteCabinet'])->name('biorepository.deleteCabinet');
Route::post('simbhp/exaddbarang', [GudangController::class, 'exAddbarang'])->name('exAddBarang');
Route::post('simbhp/reportbhp', [GudangController::class, 'jsonReportbhp'])->name('reportBHP');
Route::post('simbhp/kwitansi', [GudangController::class, 'exKwitansi'])->name('kwitansiBHP');