From 793a98484b4aacf0f4a48f1ae59c6eb2ec3eead2 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sun, 20 Sep 2026 14:24:51 +0530 Subject: [PATCH] changed machine importer logic --- app/Filament/Imports/MachineImporter.php | 121 ++++++++++++----------- 1 file changed, 63 insertions(+), 58 deletions(-) diff --git a/app/Filament/Imports/MachineImporter.php b/app/Filament/Imports/MachineImporter.php index b4f2550..ac284b3 100644 --- a/app/Filament/Imports/MachineImporter.php +++ b/app/Filament/Imports/MachineImporter.php @@ -21,36 +21,36 @@ class MachineImporter extends Importer return [ ImportColumn::make('name') ->requiredMapping() - ->exampleHeader('Machine') + ->exampleHeader('DESCRIPTION') ->example(['1600251']) - ->label('Machine') + ->label('DESCRIPTION') ->rules(['required']), ImportColumn::make('work_center') ->requiredMapping() - ->exampleHeader('Work Center') + ->exampleHeader('WORK CENTER') ->example('RMGCE001') - ->label('Work Center') + ->label('WORK CENTER') ->rules(['required']), ImportColumn::make('workGroupMaster') ->requiredMapping() ->relationship(resolveUsing: 'name') - ->exampleHeader('Work Group Center') + ->exampleHeader('GROUP WORK CENTER') ->example(['RMGCGABC']) - ->label('Work Group Center') + ->label('GROUP WORK CENTER') ->rules(['required']), ImportColumn::make('line') ->requiredMapping() ->relationship(resolveUsing: 'name') - ->exampleHeader('Line') + ->exampleHeader('LINE NAME') ->example(['4 inch pump line']) - ->label('Line') + ->label('LINE NAME') ->rules(['required']), ImportColumn::make('plant') ->requiredMapping() - ->relationship(resolveUsing: 'name') - ->exampleHeader('Plant') - ->example(['Ransar Industries-I']) - ->label('Plant') + ->relationship(resolveUsing: 'code') + ->exampleHeader('PLANT CODE') + ->example(['1000']) + ->label('PLANT CODE') ->rules(['required']), ]; } @@ -58,74 +58,79 @@ class MachineImporter extends Importer public function resolveRecord(): ?Machine { $warnMsg = []; - $plant = Plant::where('name', $this->data['plant'])->first(); + $plantCod = $this->data['plant']; + $plant = null; $line = null; + $lineNam = $this->data['line']; $machine = $this->data['name']; $workCenter = $this->data['work_center']; - $groupWorkCenter = WorkGroupMaster::where('name', $this->data['workGroupMaster'])->first(); - if (!$plant) { - $warnMsg[] = "Plant not found!"; - } - else { - $groupWorkCenter = WorkGroupMaster::where('name', $this->data['workGroupMaster'])->where('plant_id', $plant->id)->first(); - $line = Line::where('name', $this->data['line'])->where('plant_id', $plant->id)->first(); - if ($line) { - $grpWrkCnr = $line->no_of_operation; - if (!$grpWrkCnr || $grpWrkCnr < 1)//Str::length($grpWrkCnr) < 1) - { - $warnMsg[] = "Group work center line not found!"; - } - else if (!$groupWorkCenter) { - $warnMsg[] = "Group work center not found!"; - } - else { - $dupMachine = Machine::where('plant_id', $plant->id)->where('work_center', '!=', $workCenter)->where('name', $machine)->first(); - if ($dupMachine) { - $warnMsg[] = "Duplicate machine name found!"; - } - else { - $isValidGroupWork = false; - for ($i = 1; $i <= $line->no_of_operation; $i++) { - $column = "work_group{$i}_id"; - if (!empty($line->$column)) { - if ($line->$column == $groupWorkCenter->id) { - $isValidGroupWork = true; - break; + $workGroupCenter = $this->data['workGroupMaster']; + if (Str::length($plantCod) < 4 || ! is_numeric($plantCod) || ! preg_match('/^[1-9]\d{3,}$/', $plantCod)) { + $warnMsg[] = 'Invalid plant code found'; + } elseif (Str::length($lineNam) <= 0) { + $warnMsg[] = "Line name can't be empty!"; + } elseif (Str::length($machine) <= 0) { + $warnMsg[] = "Description can't be empty!"; + } elseif (Str::length($workCenter) <= 0) { + $warnMsg[] = "Work center can't be empty!"; + } elseif (Str::length($workGroupCenter) <= 0) { + $warnMsg[] = "Group work center can't be empty!"; + } else { + $plant = Plant::where('code', $plantCod)->first(); + if (! $plant) { + $warnMsg[] = 'Plant not found!'; + } else { + $groupWorkCenter = WorkGroupMaster::where('name', $workGroupCenter)->where('plant_id', $plant->id)->first(); + $line = Line::where('name', $lineNam)->where('plant_id', $plant->id)->first(); + if ($line) { + $grpWrkCnr = $line->no_of_operation; + if (! $grpWrkCnr || $grpWrkCnr < 1) {// Str::length($grpWrkCnr) < 1) + $warnMsg[] = 'Group work center line not found!'; + } elseif (! $groupWorkCenter) { + $warnMsg[] = 'Group work center not found!'; + } else { + $dupMachine = Machine::where('plant_id', $plant->id)->where('work_center', '!=', $workCenter)->where('name', $machine)->first(); + if ($dupMachine) { + $warnMsg[] = 'Duplicate machine name found!'; + } else { + $isValidGroupWork = false; + for ($i = 1; $i <= $line->no_of_operation; $i++) { + $column = "work_group{$i}_id"; + if (! empty($line->$column)) { + if ($groupWorkCenter->id == $line->$column) { + $isValidGroupWork = true; + break; + } } } - } - if (!$isValidGroupWork) { - $warnMsg[] = "Group work center does not match with line!"; + if (! $isValidGroupWork) { + $warnMsg[] = 'Group work center does not match with line!'; + } } } + } else { + $warnMsg[] = 'Line not found!'; } } - else - { - $warnMsg[] = "Line not found!"; - } } - if (Str::length($machine) <= 0) { - $warnMsg[] = "Machine name not found!"; - } - - if (!empty($warnMsg)) { + if (! empty($warnMsg)) { throw new RowImportFailedException(implode(', ', $warnMsg)); } Machine::updateOrCreate( [ 'plant_id' => $plant->id, - 'work_center' => $workCenter + 'work_center' => $workCenter, ], [ 'line_id' => $line->id, 'name' => $machine, - 'work_group_master_id' => $groupWorkCenter->id + 'work_group_master_id' => $groupWorkCenter->id, ] ); + return null; // // return Machine::firstOrNew([ // // // Update existing records, matching them by `$this->data['column_name']` @@ -137,10 +142,10 @@ class MachineImporter extends Importer public static function getCompletedNotificationBody(Import $import): string { - $body = 'Your machine import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; + $body = 'Your machine 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;