From 541793613c582f2a1f3197e0f6829fcf455bdefc Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 29 Aug 2026 11:13:34 +0530 Subject: [PATCH] Added catch for rework scenario in panel box validation --- app/Livewire/PanelCheckList.php | 59 +++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/app/Livewire/PanelCheckList.php b/app/Livewire/PanelCheckList.php index 46077cc..42ea3db 100644 --- a/app/Livewire/PanelCheckList.php +++ b/app/Livewire/PanelCheckList.php @@ -180,30 +180,40 @@ public $records = []; $latestReworkRecord = PanelBoxValidation::where('plant_id', $this->data['plant_id'] ?? null)->where('serial_number', $this->data['serial_number'] ?? null)->latest()->first(); if($latestReworkRecord){ - $qualityValidation = PanelBoxValidation::create([ - 'plant_id' => $this->data['plant_id'] ?? null, - 'line_id' => $this->data['line_id'] ?? null, - 'sticker_master_id' => $this->data['sticker_master_id'] ?? null, - 'production_order' => $this->data['production_order'] ?? null, - 'serial_number' => $this->data['serial_number'] ?? null, - 'serial_number_panel' => $this->data['serial_number_panel'] ?? null, - 'pack_slip_panel' => $this->data['pack_slip_panel'] ?? null, - 'name_plate_panel' => $this->data['name_plate_panel'] ?? null, - 'tube_sticker_panel' => $this->data['tube_sticker_panel'] ?? null, - 'warranty_card_panel' => $this->data['warranty_card_panel'] ?? null, - 'part_validation1' => $this->data['part_validation1'] ?? null, - 'part_validation2' => $this->data['part_validation2'] ?? null, - 'part_validation3' => $this->data['part_validation3'] ?? null, - 'part_validation4' => $this->data['part_validation4'] ?? null, - 'part_validation5' => $this->data['part_validation5'] ?? null, - 'panel_box_supplier' => $this->data['panel_box_supplier'] ?? null, - 'panel_box_serial_number' => $this->data['panel_box_serial_number'] ?? null, - 'panel_box_code' => $this->data['panel_box_code'] ?? null, - 'inspection_lot_number' => $this->data['inspection_lot_number'] ?? null, - 'rework_count' => $latestReworkRecord ? ((int) $latestReworkRecord->rework_count + 1) : 0, - 'created_by' => $this->data['created_by'] ?? null, - 'updated_by' => $this->data['updated_by'] ?? null, - ]); + try{ + $qualityValidation = PanelBoxValidation::create([ + 'plant_id' => $this->data['plant_id'] ?? null, + 'line_id' => $this->data['line_id'] ?? null, + 'sticker_master_id' => $this->data['sticker_master_id'] ?? null, + 'production_order' => $this->data['production_order'] ?? null, + 'serial_number' => $this->data['serial_number'] ?? null, + 'serial_number_panel' => $this->data['serial_number_panel'] ?? null, + 'pack_slip_panel' => $this->data['pack_slip_panel'] ?? null, + 'name_plate_panel' => $this->data['name_plate_panel'] ?? null, + 'tube_sticker_panel' => $this->data['tube_sticker_panel'] ?? null, + 'warranty_card_panel' => $this->data['warranty_card_panel'] ?? null, + 'part_validation1' => $this->data['part_validation1'] ?? null, + 'part_validation2' => $this->data['part_validation2'] ?? null, + 'part_validation3' => $this->data['part_validation3'] ?? null, + 'part_validation4' => $this->data['part_validation4'] ?? null, + 'part_validation5' => $this->data['part_validation5'] ?? null, + 'panel_box_supplier' => $this->data['panel_box_supplier'] ?? null, + 'panel_box_serial_number' => $this->data['panel_box_serial_number'] ?? null, + 'panel_box_code' => $this->data['panel_box_code'] ?? null, + 'inspection_lot_number' => $this->data['inspection_lot_number'] ?? null, + 'rework_count' => $latestReworkRecord ? ((int) $latestReworkRecord->rework_count + 1) : 0, + 'created_by' => $this->data['created_by'] ?? null, + 'updated_by' => $this->data['updated_by'] ?? null, + ]); + } + catch (\Illuminate\Database\QueryException $e) { + Notification::make() + ->title('Duplicate Record') + ->body("Duplicate serial number found against doc number '{$this->data['production_order'] }' and inspection lot number '{$this->data['inspection_lot_number']}'.") + ->danger() + ->send(); + return; + } } else{ $qualityValidation = PanelBoxValidation::create([ @@ -262,7 +272,6 @@ public $records = []; ->body('Something went wrong while inserting data.') ->danger() ->send(); - return; }