From a93fe806bbdff7574276b21e9a359990be12a333 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Mon, 31 Mar 2025 09:19:26 +0530 Subject: [PATCH] After Quality Validation changes --- .../Resources/QualityValidationResource.php | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/app/Filament/Resources/QualityValidationResource.php b/app/Filament/Resources/QualityValidationResource.php index 18528d5d8..871e436d8 100644 --- a/app/Filament/Resources/QualityValidationResource.php +++ b/app/Filament/Resources/QualityValidationResource.php @@ -14,6 +14,7 @@ use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; + class QualityValidationResource extends Resource { protected static ?string $model = QualityValidation::class; @@ -87,6 +88,11 @@ class QualityValidationResource extends Resource $serialNumber = trim($parts[1]); + // Store serial number before resetting fields + $previousSerialNumber = $serialNumber; + + $previousItemCode = $itemCode; + if (strlen($itemCode) < 6) { $set('validationError', 'Item code must be at least 6 digits.'); $set('item_id', null); @@ -120,14 +126,13 @@ class QualityValidationResource extends Resource return; } - //$set('validationError', null); + //$set('validationError', null); $plantId = $get('plant_id'); // Get selected plant if (!$plantId) { $set('validationError', 'Please select a plant first.'); $set('item_id', null); - $set('sticker_master_id', null); return; } @@ -163,8 +168,36 @@ class QualityValidationResource extends Resource } } + $serialExists = QualityValidation::where('sticker_master_id', $stickerMaster->id) + ->where(function ($query) use ($serialNumber, $serialFields) { + foreach ($serialFields as $column) { + $query->orWhere($column, $serialNumber); + } + })->exists(); + + if ($serialExists) { + $set('validationError', 'Already scanning process completed.'); + $set('item_id', "$previousItemCode|$previousSerialNumber"); // Restore original QR code + return; + } + + // Check if the serial number exists in any column of any row + $serialExists = QualityValidation::where(function ($query) use ($serialNumber, $serialFields) { + foreach ($serialFields as $column) { + $query->orWhere($column, $serialNumber); + } + })->exists(); + + + if ($serialExists) { + $set('validationError', 'Serial number already exists in quality validation.'); + // Restore the serial number before returning + $set('item_id', "$itemCode|$previousSerialNumber"); // Reinsert full QR code + return; + } + // Clear validation error if all inputs match - $set('validationError', null); + $set('validationError', null); // Filter columns with value `1` $visibleColumns = [];