Files
pds/app/Filament/Imports/TestingPanelReadingImporter.php
dhanabalan c410f37d3d
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 13s
Updated importer / exporter file to add rework_winded and group work center column and Refactored design
2026-10-03 17:52:01 +05:30

319 lines
13 KiB
PHP

<?php
namespace App\Filament\Imports;
use App\Models\TestingPanelReading;
use Filament\Actions\Imports\ImportColumn;
use Filament\Actions\Imports\Importer;
use Filament\Actions\Imports\Models\Import;
class TestingPanelReadingImporter extends Importer
{
protected static ?string $model = TestingPanelReading::class;
public static function getColumns(): array
{
return [
ImportColumn::make('plant')
->requiredMapping()
->label('PLANT CODE')
->exampleHeader('PLANT CODE')
->example(['1000'])
->relationship(resolveUsing: 'code')
->rules(['required']),
ImportColumn::make('line')
->requiredMapping()
->label('LINE NAME')
->exampleHeader('LINE NAME')
->example(['4 inch pump line'])
->relationship(resolveUsing: 'name')
->rules(['required']),
ImportColumn::make('machine.workGroupMaster.name')
->requiredMapping()
->label('GROUP WORK CENTER')
->exampleHeader('GROUP WORK CENTER')
->example('TESTGMG01')
->relationship()
->rules(['required']),
ImportColumn::make('machine.work_center')
->requiredMapping()
->label('WORK CENTER')
->exampleHeader('WORK CENTER')
->example('TESTIMG01')
->relationship() // resolveUsing: 'work_center'
->rules(['required']),
ImportColumn::make('motorTestingMaster.item.code')
->requiredMapping()
->label('ITEM CODE')
->exampleHeader('ITEM CODE')
->example('ITEM001')
->relationship()
->rules(['required']),
ImportColumn::make('output')
->requiredMapping()
->label('OUTPUT ID')
->exampleHeader('OUTPUT ID')
->example('Output1')
->rules(['required']),
ImportColumn::make('serial_number')
->requiredMapping()
->label('MOTOR SERIAL NUMBER')
->exampleHeader('MOTOR SERIAL NUMBER')
->example('12345678901234')
->rules(['required']),
ImportColumn::make('winded_serial_number')
->requiredMapping()
->label('WINDED SERIAL NUMBER')
->exampleHeader('WINDED SERIAL NUMBER')
->example('98765432101234')
->rules(['required']),
ImportColumn::make('before_fr_volt')
->requiredMapping()
->label('BEFORE FR VOLTAGE')
->exampleHeader('BEFORE FR VOLTAGE')
->example('0'),
ImportColumn::make('before_fr_cur')
->requiredMapping()
->label('BEFORE FR CURRENT')
->exampleHeader('BEFORE FR CURRENT')
->example('0'),
ImportColumn::make('before_fr_pow')
->requiredMapping()
->label('BEFORE FR POWER')
->exampleHeader('BEFORE FR POWER')
->example('0'),
ImportColumn::make('before_fr_res_ry')
->requiredMapping()
->label('BEFORE FR RESISTANCE RY')
->exampleHeader('BEFORE FR RESISTANCE RY')
->example('0'),
ImportColumn::make('before_fr_res_yb')
->requiredMapping()
->label('BEFORE FR RESISTANCE YB')
->exampleHeader('BEFORE FR RESISTANCE YB')
->example('0'),
ImportColumn::make('before_fr_res_br')
->requiredMapping()
->label('BEFORE FR RESISTANCE BR')
->exampleHeader('BEFORE FR RESISTANCE BR')
->example('0'),
ImportColumn::make('before_fr_ir')
->requiredMapping()
->label('BEFORE FR IR')
->exampleHeader('BEFORE FR IR')
->example('0'),
ImportColumn::make('before_fr_ir_r')
->requiredMapping()
->label('BEFORE FR IR R')
->exampleHeader('BEFORE FR IR R')
->example('0'),
ImportColumn::make('before_fr_ir_y')
->requiredMapping()
->label('BEFORE FR IR Y')
->exampleHeader('BEFORE FR IR Y')
->example('0'),
ImportColumn::make('before_fr_ir_b')
->requiredMapping()
->label('BEFORE FR IR B')
->exampleHeader('BEFORE FR IR B')
->example('0'),
ImportColumn::make('before_fr_freq')
->requiredMapping()
->label('BEFORE FR FREQUENCY')
->exampleHeader('BEFORE FR FREQUENCY')
->example('0'),
ImportColumn::make('before_fr_speed')
->requiredMapping()
->label('BEFORE FR SPEED')
->exampleHeader('BEFORE FR SPEED')
->example('0'),
ImportColumn::make('after_fr_vol')
->requiredMapping()
->label('AFTER FR VOLTAGE')
->exampleHeader('AFTER FR VOLTAGE')
->example('0'),
ImportColumn::make('after_fr_cur')
->requiredMapping()
->label('AFTER FR CURRENT')
->exampleHeader('AFTER FR CURRENT')
->example('0'),
ImportColumn::make('after_fr_pow')
->requiredMapping()
->label('AFTER FR POWER')
->exampleHeader('AFTER FR POWER')
->example('0'),
ImportColumn::make('after_fr_ir_hot')
->requiredMapping()
->label('AFTER FR IR HOT')
->exampleHeader('AFTER FR IR HOT')
->example('0'),
ImportColumn::make('after_fr_ir_hot_r')
->requiredMapping()
->label('AFTER FR IR HOT R')
->exampleHeader('AFTER FR IR HOT R')
->example('0'),
ImportColumn::make('after_fr_ir_hot_y')
->requiredMapping()
->label('AFTER FR IR HOT Y')
->exampleHeader('AFTER FR IR HOT Y')
->example('0'),
ImportColumn::make('after_fr_ir_hot_b')
->requiredMapping()
->label('AFTER FR IR HOT B')
->exampleHeader('AFTER FR IR HOT B')
->example('0'),
ImportColumn::make('after_fr_ir_cool')
->requiredMapping()
->label('AFTER FR IR COOL')
->exampleHeader('AFTER FR IR COOL')
->example('0'),
ImportColumn::make('after_fr_ir_cool_r')
->requiredMapping()
->label('AFTER FR IR COOL R')
->exampleHeader('AFTER FR IR COOL R')
->example('0'),
ImportColumn::make('after_fr_ir_cool_y')
->requiredMapping()
->label('AFTER FR IR COOL Y')
->exampleHeader('AFTER FR IR COOL Y')
->example('0'),
ImportColumn::make('after_fr_ir_cool_b')
->requiredMapping()
->label('AFTER FR IR COOL B')
->exampleHeader('AFTER FR IR COOL B')
->example('0'),
ImportColumn::make('after_fr_freq')
->requiredMapping()
->label('AFTER FR FREQUENCY')
->exampleHeader('AFTER FR FREQUENCY')
->example('0'),
ImportColumn::make('after_fr_speed')
->requiredMapping()
->label('AFTER FR SPEED')
->exampleHeader('AFTER FR SPEED')
->example('0'),
ImportColumn::make('after_fr_leak_cur')
->requiredMapping()
->label('AFTER FR LEAK CURRENT')
->exampleHeader('AFTER FR LEAK CURRENT')
->example('0'),
ImportColumn::make('locked_rt_volt')
->requiredMapping()
->label('LOCKED RT VOLTAGE')
->exampleHeader('LOCKED RT VOLTAGE')
->example('0'),
ImportColumn::make('locked_rt_cur')
->requiredMapping()
->label('LOCKED RT CURRENT')
->exampleHeader('LOCKED RT CURRENT')
->example('0'),
ImportColumn::make('locked_rt_pow')
->requiredMapping()
->label('LOCKED RT POWER')
->exampleHeader('LOCKED RT POWER')
->example('0'),
ImportColumn::make('no_load_pickup_volt')
->requiredMapping()
->label('NO LOAD PICKUP VOLTAGE')
->exampleHeader('NO LOAD PICKUP VOLTAGE')
->example('0'),
ImportColumn::make('room_temperature')
->requiredMapping()
->label('ROOM TEMPERATURE')
->exampleHeader('ROOM TEMPERATURE')
->example('0'),
ImportColumn::make('hv_test')
->requiredMapping()
->label('HIGH VOLTAGE TEST')
->exampleHeader('HIGH VOLTAGE TEST')
->example('Not With Stood')
->rules(['required']),
ImportColumn::make('batch_number')
->requiredMapping()
->label('BATCH NUMBER')
->exampleHeader('BATCH NUMBER')
->example('261231B001')
->rules(['required']),
ImportColumn::make('batch_count')
->requiredMapping()
->label('BATCH COUNT')
->exampleHeader('BATCH COUNT')
->example('1')
->rules(['required']),
ImportColumn::make('result')
->requiredMapping()
->label('RESULT')
->exampleHeader('RESULT')
->example('FAIL')
->rules(['required']),
ImportColumn::make('remark')
->requiredMapping()
->label('REMARK')
->exampleHeader('REMARK')
->example('Testing Remark'),
ImportColumn::make('rework_count')
->requiredMapping()
->label('REWORK COUNT')
->exampleHeader('REWORK COUNT')
->example('0')
->rules(['required']),
ImportColumn::make('rework_winded')
->requiredMapping()
->label('REWORK WINDED STATUS')
->exampleHeader('REWORK WINDED STATUS')
->example('0')
->rules(['required']),
ImportColumn::make('update_count')
->requiredMapping()
->label('UPDATED COUNT')
->exampleHeader('UPDATED COUNT')
->example('0')
->rules(['required']),
ImportColumn::make('output_flag')
->requiredMapping()
->label('OUTPUT FLAG')
->exampleHeader('OUTPUT FLAG')
->example('0')
->rules(['required']),
ImportColumn::make('tested_by')
->requiredMapping()
->label('TESTED BY')
->exampleHeader('TESTED BY')
->example('RAW01234')
->rules(['required']),
ImportColumn::make('updated_by')
->requiredMapping()
->label('UPDATED BY')
->exampleHeader('UPDATED BY')
->example('RAW01234'),
ImportColumn::make('scanned_at')
->requiredMapping()
->label('SCANNED AT')
->exampleHeader('SCANNED AT')
->example('01-01-2026 00:08:00')
->rules(['required']),
];
}
public function resolveRecord(): ?TestingPanelReading
{
// return TestingPanelReading::firstOrNew([
// // Update existing records, matching them by `$this->data['column_name']`
// 'email' => $this->data['email'],
// ]);
return new TestingPanelReading;
}
public static function getCompletedNotificationBody(Import $import): string
{
$body = 'Your testing panel reading 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.';
}
return $body;
}
}