diff --git a/app/Filament/Imports/ProcessOrderImporter.php b/app/Filament/Imports/ProcessOrderImporter.php index 9534cb6..3248ef8 100644 --- a/app/Filament/Imports/ProcessOrderImporter.php +++ b/app/Filament/Imports/ProcessOrderImporter.php @@ -10,6 +10,7 @@ use Filament\Actions\Imports\Exceptions\RowImportFailedException; use Filament\Actions\Imports\ImportColumn; use Filament\Actions\Imports\Importer; use Filament\Actions\Imports\Models\Import; +use Filament\Facades\Filament; use Str; class ProcessOrderImporter extends Importer @@ -38,41 +39,57 @@ class ProcessOrderImporter extends Importer ->example('202500123456') ->label('PROCESS ORDER') ->rules(['required']), - ImportColumn::make('created_by') - ->exampleHeader('CREATED BY') - ->example('RAW01234') - ->label('CREATED BY') + ImportColumn::make('order_quantity') + ->exampleHeader('ORDER QUANTITY') + ->example('100') + ->label('ORDER QUANTITY') ->rules(['required']), + // ImportColumn::make('created_by') + // ->exampleHeader('CREATED BY') + // ->example('RAW01234') + // ->label('CREATED BY') + // ->rules(['required']), ]; } public function resolveRecord(): ?ProcessOrder { $warnMsg = []; - $plant = Plant::where('code', $this->data['plant'])->first(); - $itemCode = Item::where('code', $this->data['item'])->first(); + $plantCod = $this->data['plant']; + $plant = null; $iCode = trim($this->data['item']); + $processOrder = trim($this->data['process_order'] ?? ''); + $user = Filament::auth()->user(); + $operatorName = $user->name; - 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'; + if (Str::length($plantCod) < 4 || ! is_numeric($plantCod) || ! preg_match('/^[1-9]\d{3,}$/', $plantCod)) { + $warnMsg[] = 'Invalid plant code found'; + } else { + $plant = Plant::where('code', $plantCod)->first(); + if (! $plant) { + $warnMsg[] = 'Plant not found'; + } } - $processOrder = trim($this->data['process_order'] ?? ''); + if (Str::length($iCode) < 6 || ! ctype_alnum($iCode)) { + $warnMsg[] = 'Invalid item code found'; + } else { + $itemCode = Item::where('code', $iCode)->first(); + if (! $itemCode) { + $warnMsg[] = 'Item Code not found'; + } + } if ($processOrder == '') { $warnMsg[] = 'Process Order cannot be empty'; } - $user = User::where('name', $this->data['created_by'])->first(); - if (! $user) { - $warnMsg[] = 'User not found'; - } + // $user = User::where('name', $this->data['created_by'])->first(); + // if (! $user) { + // $warnMsg[] = 'User not found'; + // } - if ($plant && $processOrder != '') { + if ($plant && $itemCode && $processOrder != '') { $existingOrder = ProcessOrder::where('plant_id', $plant->id) ->where('process_order', $processOrder) @@ -94,7 +111,7 @@ class ProcessOrderImporter extends Importer 'coil_number' => '0', 'order_quantity' => 0, 'received_quantity' => 0, - 'created_by' => $user->name, + 'created_by' => $operatorName, ]); // return new ProcessOrder();