update
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use App\BioCabinet;
|
||||
use App\BioRack;
|
||||
use App\BioSpecimen;
|
||||
use App\Periksa;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Session;
|
||||
@@ -28,15 +29,6 @@ class BiorepositoryController extends Controller
|
||||
->orderBy('id', 'DESC')
|
||||
->get();
|
||||
|
||||
$data['cabinets'] = BioCabinet::with([
|
||||
'racks' => function ($query) {
|
||||
$query->orderBy('rack_number', 'ASC')->orderBy('code', 'ASC');
|
||||
},
|
||||
'racks.specimens' => function ($query) {
|
||||
$query->orderBy('stored_at', 'ASC');
|
||||
},
|
||||
])->orderBy('name', 'ASC')->get();
|
||||
|
||||
$data['oldestSpecimen'] = BioSpecimen::with(['cabinet', 'rack'])
|
||||
->whereNotNull('stored_at')
|
||||
->orderBy('stored_at', 'ASC')
|
||||
@@ -79,7 +71,9 @@ class BiorepositoryController extends Controller
|
||||
'cabinet_id' => 'required|exists:bio_cabinets,id',
|
||||
'code' => 'required|max:50',
|
||||
'name' => 'required|max:150',
|
||||
'slot_count' => 'required|integer|min:1|max:20',
|
||||
'level' => 'required|integer|min:4|max:6',
|
||||
'box_number' => 'required|integer|min:1|max:20',
|
||||
'capacity' => 'required|integer|min:16|max:100',
|
||||
'notes' => 'nullable',
|
||||
]);
|
||||
@@ -102,9 +96,10 @@ class BiorepositoryController extends Controller
|
||||
'cabinet_id' => $request->input('cabinet_id'),
|
||||
'code' => $request->input('code'),
|
||||
'name' => $request->input('name'),
|
||||
'slot_count' => $request->input('slot_count'),
|
||||
'level' => $request->input('level'),
|
||||
'rack_number' => $nextRackNumber,
|
||||
'box_number' => 1,
|
||||
'box_number' => $request->input('box_number'),
|
||||
'capacity' => $request->input('capacity'),
|
||||
'notes' => $request->input('notes'),
|
||||
]);
|
||||
@@ -136,15 +131,23 @@ class BiorepositoryController extends Controller
|
||||
|
||||
$rack = BioRack::find($request->input('rack_id'));
|
||||
$expectedRackNo = $rack->rack_number ?: $rack->id;
|
||||
$expectedBoxNo = $rack->box_number ?: 1;
|
||||
$slotCount = (int) ($rack->slot_count ?: 1);
|
||||
$boxCount = (int) ($rack->box_number ?: 1);
|
||||
|
||||
if ((int) $request->input('raknomor') !== (int) $expectedRackNo ||
|
||||
(int) $request->input('boxnomor') !== (int) $expectedBoxNo) {
|
||||
if ((int) $request->input('raknomor') !== (int) $expectedRackNo) {
|
||||
return back()->withErrors(['slotnomor' => 'Posisi slot tidak sesuai dengan konfigurasi rack.'])->withInput();
|
||||
}
|
||||
|
||||
if ((int) $request->input('slotnomor') < 1 || (int) $request->input('slotnomor') > $slotCount) {
|
||||
return back()->withErrors(['slotnomor' => 'Slot melebihi konfigurasi rack.'])->withInput();
|
||||
}
|
||||
|
||||
if ((int) $request->input('shelfnomor') < 1 || (int) $request->input('shelfnomor') > (int) $rack->level) {
|
||||
return back()->withErrors(['shelfnomor' => 'Shelf melebihi konfigurasi rack.'])->withInput();
|
||||
return back()->withErrors(['shelfnomor' => 'Shelf melebihi konfigurasi slot.'])->withInput();
|
||||
}
|
||||
|
||||
if ((int) $request->input('boxnomor') < 1 || (int) $request->input('boxnomor') > $boxCount) {
|
||||
return back()->withErrors(['boxnomor' => 'Box melebihi konfigurasi shelf.'])->withInput();
|
||||
}
|
||||
|
||||
if ((int) $request->input('tubenomor') < 1 || (int) $request->input('tubenomor') > (int) $rack->capacity) {
|
||||
@@ -152,7 +155,9 @@ class BiorepositoryController extends Controller
|
||||
}
|
||||
|
||||
$slotTaken = BioSpecimen::where('rack_id', $rack->id)
|
||||
->where('slot_number', $request->input('slotnomor'))
|
||||
->where('shelf_number', $request->input('shelfnomor'))
|
||||
->where('box_number', $request->input('boxnomor'))
|
||||
->where('tube_number', $request->input('tubenomor'))
|
||||
->first();
|
||||
|
||||
@@ -209,7 +214,7 @@ class BiorepositoryController extends Controller
|
||||
$sampleid = $request->input('sampleid');
|
||||
if ($sampleid) {
|
||||
$cekdata = Periksa::where('nofoto', $sampleid)->first();
|
||||
if (!$cekdata) {
|
||||
if ($cekdata) {
|
||||
$sampleid = $cekdata->id;
|
||||
} else {
|
||||
$sampleid = null;
|
||||
@@ -226,7 +231,7 @@ class BiorepositoryController extends Controller
|
||||
'category_storage' => $request->input('kategorisimpan'),
|
||||
'shelf_number' => $request->input('shelfnomor'),
|
||||
'rack_number' => $request->input('raknomor'),
|
||||
'slot_number' => $request->input('shelfnomor'),
|
||||
'slot_number' => $request->input('slotnomor'),
|
||||
'box_number' => $request->input('boxnomor'),
|
||||
'tube_number' => $request->input('tubenomor'),
|
||||
'bacteria_name' => $request->input('nmbakteri'),
|
||||
|
||||
Reference in New Issue
Block a user