diff --git a/app/Filament/Imports/MachineImporter.php b/app/Filament/Imports/MachineImporter.php index a4e56f86b..96ade2a77 100644 --- a/app/Filament/Imports/MachineImporter.php +++ b/app/Filament/Imports/MachineImporter.php @@ -2,10 +2,14 @@ namespace App\Filament\Imports; +use App\Models\Line; use App\Models\Machine; +use App\Models\Plant; +use Filament\Actions\Imports\Exceptions\RowImportFailedException; use Filament\Actions\Imports\ImportColumn; use Filament\Actions\Imports\Importer; use Filament\Actions\Imports\Models\Import; +use Str; class MachineImporter extends Importer { @@ -44,12 +48,54 @@ class MachineImporter extends Importer public function resolveRecord(): ?Machine { - // return Machine::firstOrNew([ - // // Update existing records, matching them by `$this->data['column_name']` - // 'email' => $this->data['email'], - // ]); + $warnMsg = []; + $plant = Plant::where('name', $this->data['plant'])->first(); + $line = null; + $machine = $this->data['name']; + $workCenter = $this->data['work_center']; + if (!$plant) { + $warnMsg[] = "Plant not found"; + } + else { + $line = Line::where('name', $this->data['line'])->where('plant_id', $plant->id)->first(); + if ($line) { + $grpWrkCnr = $line->group_work_center; + if (!$grpWrkCnr || Str::length($grpWrkCnr) < 1) + { + $warnMsg[] = "Group work center line not found"; + } + } + else + { + $warnMsg[] = "Line not found"; + } + } - return new Machine(); + if (Str::length($machine) <= 0) { + $warnMsg[] = "Machine name not found"; + } + + if (!empty($warnMsg)) { + throw new RowImportFailedException(implode(', ', $warnMsg)); + } + + Machine::updateOrCreate( + [ + 'name' => $machine, + 'plant_id' => $plant->id, + 'line_id' => $line->id + ], + [ + 'work_center' => $workCenter + ] + ); + return null;//work_center plant_id line_id name + // // return Machine::firstOrNew([ + // // // Update existing records, matching them by `$this->data['column_name']` + // // 'email' => $this->data['email'], + // // ]); + + // return new Machine(); } public static function getCompletedNotificationBody(Import $import): string