From 0219554eb7a43bafb36a9fb4cfb04289a0f98774 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 29 Aug 2026 15:39:51 +0530 Subject: [PATCH] Added logic for invalid quantity updation in panel gr master --- .../Pages/EditPanelGrMaster.php | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/app/Filament/Resources/PanelGrMasterResource/Pages/EditPanelGrMaster.php b/app/Filament/Resources/PanelGrMasterResource/Pages/EditPanelGrMaster.php index 9933566..cf94fe9 100644 --- a/app/Filament/Resources/PanelGrMasterResource/Pages/EditPanelGrMaster.php +++ b/app/Filament/Resources/PanelGrMasterResource/Pages/EditPanelGrMaster.php @@ -3,13 +3,49 @@ namespace App\Filament\Resources\PanelGrMasterResource\Pages; use App\Filament\Resources\PanelGrMasterResource; +use App\Models\PanelBoxValidation; +use App\Models\StickerMaster; use Filament\Actions; +use Filament\Facades\Filament; +use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; class EditPanelGrMaster extends EditRecord { protected static string $resource = PanelGrMasterResource::class; + protected function mutateFormDataBeforeSave(array $data): array + { + $record = $this->record; + + $sticker = StickerMaster::where('plant_id', $record->plant_id)->where('item_id', $record->item_id)->first(); + + if($sticker) + { + $scannedQuantity = PanelBoxValidation::where('plant_id', $record->plant_id) + ->where('production_order', $record->document_number) + ->where('inspection_lot_number', $record->inspection_lot_number) + ->where('sticker_master_id', $sticker->id) + ->count(); + } + + + if ((int) $data['quantity'] < $scannedQuantity) { + Notification::make() + ->title('Invalid Quantity') + ->body("Already scanned quantity is {$scannedQuantity}.
Panel GR Master quantity cannot be less than {$scannedQuantity}.") + ->danger() + ->send(); + $this->halt(); + + } + + $data['updated_by'] = Filament::auth()->user()?->name; + $data['updated_at'] = now(); + + return $data; + } + protected function getHeaderActions(): array { return [ -- 2.49.1