From 73d863b200955a68ecd7492ff4bd1d3be7bdeaf7 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 26 Nov 2025 19:42:46 +0530 Subject: [PATCH] Refactored ProcessOrderImporter to standardize column headers and improve error messaging --- app/Filament/Imports/ProcessOrderImporter.php | 66 +++++++++---------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/app/Filament/Imports/ProcessOrderImporter.php b/app/Filament/Imports/ProcessOrderImporter.php index aa727d9..9534cb6 100644 --- a/app/Filament/Imports/ProcessOrderImporter.php +++ b/app/Filament/Imports/ProcessOrderImporter.php @@ -6,11 +6,11 @@ use App\Models\Item; use App\Models\Plant; use App\Models\ProcessOrder; use App\Models\User; +use Filament\Actions\Imports\Exceptions\RowImportFailedException; use Filament\Actions\Imports\ImportColumn; use Filament\Actions\Imports\Importer; use Filament\Actions\Imports\Models\Import; use Str; -use Filament\Actions\Imports\Exceptions\RowImportFailedException; class ProcessOrderImporter extends Importer { @@ -21,27 +21,28 @@ class ProcessOrderImporter extends Importer return [ ImportColumn::make('plant') ->requiredMapping() - ->exampleHeader('Plant Code') + ->exampleHeader('PLANT CODE') ->example('1000') - ->label('Plant Code') - ->relationship(resolveUsing:'code') + ->label('PLANT CODE') + ->relationship(resolveUsing: 'code') ->rules(['required']), ImportColumn::make('item') ->requiredMapping() - ->exampleHeader('Item Code') + ->exampleHeader('ITEM CODE') ->example('123456') - ->label('Item Code') + ->label('ITEM CODE') ->relationship(resolveUsing: 'code') ->rules(['required']), ImportColumn::make('process_order') - ->exampleHeader('Process Order') - ->example('200000166843') - ->label('Process Order') + ->exampleHeader('PROCESS ORDER') + ->example('202500123456') + ->label('PROCESS ORDER') ->rules(['required']), ImportColumn::make('created_by') - ->exampleHeader('Created By') + ->exampleHeader('CREATED BY') ->example('RAW01234') - ->label('Created By'), + ->label('CREATED BY') + ->rules(['required']), ]; } @@ -52,26 +53,23 @@ class ProcessOrderImporter extends Importer $itemCode = Item::where('code', $this->data['item'])->first(); $iCode = trim($this->data['item']); - if (!$plant) { - $warnMsg[] = "Plant not found"; - } - else if (Str::length($iCode) < 6 || !ctype_alnum($iCode)) { - $warnMsg[] = "Invalid item code found"; - } - else if(!$itemCode) - { - $warnMsg[] = "Item Code not found"; + if (! $plant) { + $warnMsg[] = 'Plant not found'; + } elseif (Str::length($iCode) < 6 || ! ctype_alnum($iCode)) { + $warnMsg[] = 'Invalid item code found'; + } elseif (! $itemCode) { + $warnMsg[] = 'Item Code not found'; } $processOrder = trim($this->data['process_order'] ?? ''); if ($processOrder == '') { - $warnMsg[] = "Process Order cannot be empty"; + $warnMsg[] = 'Process Order cannot be empty'; } $user = User::where('name', $this->data['created_by'])->first(); - if (!$user) { - $warnMsg[] = "User not found"; + if (! $user) { + $warnMsg[] = 'User not found'; } if ($plant && $processOrder != '') { @@ -81,33 +79,33 @@ class ProcessOrderImporter extends Importer ->first(); if ($existingOrder && $existingOrder->item_id !== ($itemCode->id ?? null)) { - $warnMsg[] = "Same Process Order already exists for this Plant with a different Item Code"; + $warnMsg[] = 'Same Process Order already exists for this Plant with a different Item Code'; } } - if (!empty($warnMsg)) { + if (! empty($warnMsg)) { throw new RowImportFailedException(implode(', ', $warnMsg)); } return ProcessOrder::create([ - 'plant_id' => $plant->id, - 'item_id' => $itemCode->id, - 'process_order' => trim($this->data['process_order']), - 'coil_number' => "0", - 'order_quantity' => 0, + 'plant_id' => $plant->id, + 'item_id' => $itemCode->id, + 'process_order' => trim($this->data['process_order']), + 'coil_number' => '0', + 'order_quantity' => 0, 'received_quantity' => 0, - 'created_by' => $user->name, + 'created_by' => $user->name, ]); - //return new ProcessOrder(); + // return new ProcessOrder(); } public static function getCompletedNotificationBody(Import $import): string { - $body = 'Your process order import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; + $body = 'Your process order import has completed and '.number_format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' imported.'; if ($failedRowsCount = $import->getFailedRowsCount()) { - $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to import.'; + $body .= ' '.number_format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' failed to import.'; } return $body;