From 9a003bc22a451105fa84d76aa6a45641f0fb5f2e Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 23 Sep 2026 15:15:27 +0530 Subject: [PATCH 1/2] Added zmm_mrp column migration, model, resource, importer, exporter, and Updated 5 permissions --- .../Exports/ClassCharacteristicExporter.php | 2 + .../Exports/ProductionTempExporter.php | 2 + .../TempClassCharacteristicExporter.php | 2 + .../Imports/ClassCharacteristicImporter.php | 4 + .../Imports/ProductionTempImporter.php | 6 +- .../TempClassCharacteristicImporter.php | 4 + .../Resources/ClassCharacteristicResource.php | 620 ++++++++++++++++++ .../Resources/ProductionTempResource.php | 19 +- .../TempClassCharacteristicResource.php | 10 + app/Models/ClassCharacteristic.php | 1 + app/Models/ProductionTemp.php | 1 + app/Models/TempClassCharacteristic.php | 1 + ..._column_in_class_characteristics_table.php | 31 + ...mn_in_temp_class_characteristics_table.php | 31 + ...m_mrp_column_in_production_temps_table.php | 31 + database/seeders/PermissionSeeder.php | 7 + 16 files changed, 766 insertions(+), 6 deletions(-) create mode 100644 database/migrations/2026_09_23_124824_add_zmm_mrp_column_in_class_characteristics_table.php create mode 100644 database/migrations/2026_09_23_125945_add_zmm_mrp_column_in_temp_class_characteristics_table.php create mode 100644 database/migrations/2026_09_23_143550_add_zmm_mrp_column_in_production_temps_table.php diff --git a/app/Filament/Exports/ClassCharacteristicExporter.php b/app/Filament/Exports/ClassCharacteristicExporter.php index e45105e..95fc202 100644 --- a/app/Filament/Exports/ClassCharacteristicExporter.php +++ b/app/Filament/Exports/ClassCharacteristicExporter.php @@ -311,6 +311,8 @@ class ClassCharacteristicExporter extends Exporter ->label('ZMM OPERATING TEMPERATURE'), ExportColumn::make('zmm_axial_force') ->label('ZMM AXIAL FORCE'), + ExportColumn::make('zmm_mrp') + ->label('ZMM MRP'), // ExportColumn::make('is_stopped') // ->label('IS STOPPED') // ->formatStateUsing(fn ($state) => ($state == '0') ? 'No' : ($state == '1' ? 'Yes' : 'Yes (Alert Pending)')), diff --git a/app/Filament/Exports/ProductionTempExporter.php b/app/Filament/Exports/ProductionTempExporter.php index 2998364..1e19ae1 100644 --- a/app/Filament/Exports/ProductionTempExporter.php +++ b/app/Filament/Exports/ProductionTempExporter.php @@ -302,6 +302,8 @@ class ProductionTempExporter extends Exporter ->label('ZMM OPERATING TEMPERATURE'), ExportColumn::make('zmm_axial_force') ->label('ZMM AXIAL FORCE'), + ExportColumn::make('zmm_mrp') + ->label('ZMM MRP'), ExportColumn::make('pending_released_status') ->label('PENDING RELEASED STATUS'), ExportColumn::make('created_at') diff --git a/app/Filament/Exports/TempClassCharacteristicExporter.php b/app/Filament/Exports/TempClassCharacteristicExporter.php index 311d576..54b6a80 100644 --- a/app/Filament/Exports/TempClassCharacteristicExporter.php +++ b/app/Filament/Exports/TempClassCharacteristicExporter.php @@ -302,6 +302,8 @@ class TempClassCharacteristicExporter extends Exporter ->label('ZMM OPERATING TEMPERATURE'), ExportColumn::make('zmm_axial_force') ->label('ZMM AXIAL FORCE'), + ExportColumn::make('zmm_mrp') + ->label('ZMM MRP'), ExportColumn::make('winded_serial_number') ->label('WINDED SERIAL NUMBER'), ExportColumn::make('model_type') diff --git a/app/Filament/Imports/ClassCharacteristicImporter.php b/app/Filament/Imports/ClassCharacteristicImporter.php index c7f117e..21cf0e3 100644 --- a/app/Filament/Imports/ClassCharacteristicImporter.php +++ b/app/Filament/Imports/ClassCharacteristicImporter.php @@ -583,6 +583,10 @@ class ClassCharacteristicImporter extends Importer ->label('ZMM AXIAL FORCE') ->exampleHeader('ZMM AXIAL FORCE') ->example(''), + ImportColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->exampleHeader('ZMM MRP') + ->example(''), ImportColumn::make('mark_status') ->label('MARKED STATUS') ->exampleHeader('MARKED STATUS') diff --git a/app/Filament/Imports/ProductionTempImporter.php b/app/Filament/Imports/ProductionTempImporter.php index 40293d1..70b2f61 100644 --- a/app/Filament/Imports/ProductionTempImporter.php +++ b/app/Filament/Imports/ProductionTempImporter.php @@ -583,9 +583,13 @@ class ProductionTempImporter extends Importer ->label('ZMM AXIAL FORCE') ->exampleHeader('ZMM AXIAL FORCE') ->example(''), + ImportColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->exampleHeader('ZMM MRP') + ->example(''), ImportColumn::make('pending_released_status') ->label('PENDING RELEASED STATUS') - ->exampleHeader('ZMM AXIAL FORCE') + ->exampleHeader('PENDING RELEASED STATUS') ->example(''), ImportColumn::make('created_by') ->label('CREATED BY') diff --git a/app/Filament/Imports/TempClassCharacteristicImporter.php b/app/Filament/Imports/TempClassCharacteristicImporter.php index fda9b49..6e61d1c 100644 --- a/app/Filament/Imports/TempClassCharacteristicImporter.php +++ b/app/Filament/Imports/TempClassCharacteristicImporter.php @@ -583,6 +583,10 @@ class TempClassCharacteristicImporter extends Importer ->label('ZMM AXIAL FORCE') ->exampleHeader('ZMM AXIAL FORCE') ->example(''), + ImportColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->exampleHeader('ZMM MRP') + ->example(''), ImportColumn::make('winded_serial_number') ->label('WINDed SERIAL NUMBER') ->exampleHeader('WINDED SERIAL NUMBER') diff --git a/app/Filament/Resources/ClassCharacteristicResource.php b/app/Filament/Resources/ClassCharacteristicResource.php index 37ac262..89cf954 100644 --- a/app/Filament/Resources/ClassCharacteristicResource.php +++ b/app/Filament/Resources/ClassCharacteristicResource.php @@ -7,16 +7,19 @@ use App\Filament\Imports\ClassCharacteristicImporter; use App\Filament\Resources\ClassCharacteristicResource\Pages; use App\Models\ClassCharacteristic; use App\Models\Item; +use App\Models\ItemCharacteristic; use App\Models\Machine; use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Forms\Get; +use Filament\Notifications\Notification; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Actions\ExportAction; @@ -25,7 +28,9 @@ use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; +use Illuminate\Support\Facades\Storage; use Illuminate\Validation\Rule; +use Maatwebsite\Excel\Facades\Excel; use Str; class ClassCharacteristicResource extends Resource @@ -982,6 +987,12 @@ class ClassCharacteristicResource extends Resource ->afterStateUpdated(function (callable $set) { $set('updated_by', Filament::auth()->user()?->name); }), + Forms\Components\TextInput::make('zmm_mrp') + ->label('ZMM MRP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), // Forms\Components\Select::make('is_stopped') // ->label('IS STOPPED') // // ->nullable() @@ -1991,6 +2002,10 @@ class ClassCharacteristicResource extends Resource ->label('ZMM AXIAL FORCE') ->alignCenter() ->sortable(), + Tables\Columns\TextColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->alignCenter() + ->sortable(), // Tables\Columns\TextColumn::make('is_stopped') // ->label('IS STOPPED') // ->alignCenter() @@ -2533,6 +2548,611 @@ class ClassCharacteristicResource extends Resource ]), ]) ->headerActions([ + Tables\Actions\Action::make('Import Class Characteristic Serial') + ->label('Import Class Characteristic Serial') + ->form([ + Select::make('plant_id') + // ->options(Plant::pluck('name', 'id')->toArray()) // Fetch plant names and IDs + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); + }) + ->searchable() + ->label('Search by Plant Name') + ->required() + ->default(function () { + return optional(ClassCharacteristic::latest()->first())->plant_id; + }) + ->afterStateUpdated(function ($state, callable $set, callable $get) { + // $set('class_characteristics_serial', null); + $plantId = $get('plant_id'); + if (! $plantId) { + $set('invoice_serial_number', null); + + return; + } + $plantCode = Plant::find($plantId)?->code ?? null; + + $directory = "uploads/classcharacteristic/{$plantCode}"; + if ($plantId && ! Storage::disk('local')->exists($directory)) { + Storage::disk('local')->makeDirectory($directory); + } + }) + ->reactive(), + + FileUpload::make('class_characteristics_serial') + ->label('Choose Class Characteristic Serial Upload') + ->required() + ->acceptedFileTypes([ + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + // 'application/vnd.ms-excel', // Legacy .xls fallback if needed + ]) + ->rules(['mimes:xlsx', 'max:5120']) // Laravel validation: extension check + ->maxSize(5120) + ->preserveFilenames() // <- this keeps the original filename + ->reactive() + ->storeFiles(false) // prevent auto-storing, we will store manually + ->disk('local') // 'local' refers to the local storage disk defined in config/filesystems.php, typically pointing to storage/app. + ->visible(fn (Get $get) => ! empty($get('plant_id'))) + ->directory(function (callable $get) { + $plant = Plant::find($get('plant_id')); + $plantCode = $plant?->code ?? null; + + return "uploads/classcharacteristic/{$plantCode}"; + }) + ->uploadingMessage('Uploading...') + ->helperText('Only .xlsx files are allowed (Excel files).'), + ]) + ->action(function (array $data) { + $uploadedFile = $data['class_characteristics_serial']; + + $disk = Storage::disk('local'); + + $plantId = $data['plant_id']; + + $plant = Plant::find($plantId); + $plantCode = $plant?->code ?? null; + + $userName = Filament::auth()->user()->name; + + // Get original filename + $originalName = $uploadedFile->getClientOriginalName(); // e.g. 3RA0018732.xlsx + + $extension = strtolower(pathinfo($originalName, PATHINFO_EXTENSION)); + if ($extension != 'xlsx') { + throw new \Exception('Only .xlsx files allowed.'); + } + + $originalNameOnly = strtoupper(pathinfo($originalName, PATHINFO_FILENAME)); + + $originalName = "{$originalNameOnly}.xlsx"; + + // Store manually using storeAs to keep original name + $path = $uploadedFile->storeAs("uploads/classcharacteristic/{$plantCode}", $originalName, 'local'); // returns relative path + + $fullPath = Storage::disk('local')->path($path); + // /home/iot-dev/projects/pds/storage/app/private/uploads/temp/{$plantCode}/3RA0018735.xlsx + + if ($fullPath && file_exists($fullPath)) { + $rows = Excel::toArray(null, $fullPath)[0]; + + if ((count($rows) - 1) <= 0) { + Notification::make() + ->title('Records Not Found') + ->body("Import the valid 'Serial Invoice' file to proceed..!") + ->danger() + ->send(); + + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } + + $invalidMplaCodes = []; + $invalidItemCodes = []; + $invalidWorkCenters = []; + $invalidPOrders = []; + $invalidOrderQuantities = []; + $invalidReleaseQuantities = []; + $invalidSerialCodes = []; + $invalidMatCodesNotFound = []; + $invalidPlaCodesNotFound = []; + $invalidWorkCodesNotFound = []; + $materialCodes = []; + $missingSerials = []; + $duplicateSerials = []; + $seenSerialNumbers = []; + $validRowsFound = false; + $duplicateSerialNoInDb = []; + + foreach ($rows as $index => $row) { + if ($index == 0) { + continue; + } // Skip header + + $plantCode = trim($row[0]); + $itemCode = trim($row[1]); + $workCenter = trim($row[2]); + $pOrder = trim($row[3]); + $orderQuan = trim($row[4]); + $releaseQuan = trim($row[5]); + $serialNumber = trim($row[6]); + + if (empty($plantCode) && empty($itemCode) && empty($workCenter) && empty($pOrder) && empty($orderQuan) && empty($releaseQuan) && empty($serialNumber)) { + continue; + } + + if (empty($plantCode)) { + $invalidMplaCodes[] = 'Row '.($index + 1).': Plant Code is empty'; + + continue; + } + + if (Str::length($plantCode) < 4 || ! is_numeric($plantCode)) { + $invalidMplaCodes[] = $plantCode; + + continue; + } + if (Str::length($plantCode) > 3) { + + $plant = Plant::where('code', $plantCode)->first(); + if (! $plant) { + $invalidPlaCodesNotFound[] = $plantCode; + + continue; + } + } + + if (Str::length($itemCode) < 6 || ! ctype_alnum($itemCode)) { + $invalidItemCodes[] = $itemCode; + + continue; + } + if ($itemCode) { + $itemCodeExist = Item::where('plant_id', $plantId)->where('code', $itemCode)->first(); + if (! $itemCodeExist) { + $invalidMatCodesNotFound = $itemCode; + + continue; + } + } + + if (empty($workCenter)) { + $invalidWorkCenters[] = $workCenter; + + continue; + } + if (Str::length($workCenter) < 7) { + $invalidWorkCenters[] = $workCenter; + + continue; + } + if (Str::length($workCenter) > 6) { + $WorkCenter = Machine::where('plant_id', $plantId)->where('work_center', $workCenter)->first(); + + if (! $WorkCenter) { + $invalidWorkCodesNotFound[] = $workCenter; + + continue; + } + } + + if (Str::length($pOrder) < 7 || ! is_numeric($pOrder)) { + $invalidPOrders[] = $pOrder; + + continue; + } + if ($orderQuan == '' || ! is_numeric($orderQuan)) { + $invalidOrderQuantities[] = $orderQuan; + + continue; + } + if ($releaseQuan == '' || ! is_numeric($releaseQuan)) { + $invalidReleaseQuantities[] = $releaseQuan; + + continue; + } + + if (! empty($serialNumber)) { + if (Str::length($serialNumber) < 9 || ! ctype_alnum($serialNumber)) { + $invalidSerialCodes[] = $serialNumber; + } + if ($serialNumber) { + if (in_array($serialNumber, $seenSerialNumbers)) { + $duplicateSerials[] = $serialNumber; + } else { + $seenSerialNumbers[] = $serialNumber; + $materialCodes[] = $itemCode; + $validRowsFound = true; + } + } + if (Str::length($serialNumber) > 8) { + $SerialNoExist = ClassCharacteristic::where('plant_id', $plantId)->where('gernr', $serialNumber)->first(); + + if ($SerialNoExist) { + $duplicateSerialNoInDb[] = $serialNumber; + + continue; + } + } + } + + } + + $uniqueInvalidCodes = array_unique($invalidItemCodes); + + $uniqueInvalidMatCodesMaster = array_unique($invalidMatCodesNotFound); + + $uniqueInvalidPlaCodesMaster = array_unique($invalidPlaCodesNotFound); + + $uniqueInvalidWorkCenter = array_unique($invalidWorkCenters); + + $uniqueInvalidWorkCenterMaster = array_unique($invalidWorkCodesNotFound); + + $uniqueInvalidPOrder = array_unique($invalidPOrders); + + $uniqueInvalidOrdQuan = array_unique($invalidOrderQuantities); + + $uniqueInvalidReleaseQuan = array_unique($invalidReleaseQuantities); + + $uniqueMissingSerials = array_unique($missingSerials); + + $uniqueSerialCodes = array_unique($invalidSerialCodes); + + $duplicateSerialCodes = array_unique($duplicateSerials); + + $duplicateSerialCodesInDb = array_unique($duplicateSerialNoInDb); + + if (! empty($uniqueInvalidCodes)) { + Notification::make() + ->title('Invalid Item Codes') + ->body('The following item codes should contain minimum 6 digit alpha numeric values:
'.implode(', ', $uniqueInvalidCodes)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidMatCodesMaster)) { + Notification::make() + ->title('Invalid Item Codes') + ->body('The following item codes not found in item master:
'.implode(', ', $uniqueInvalidMatCodesMaster)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidPlaCodesMaster)) { + Notification::make() + ->title('Invalid Plant Codes') + ->body('The following plant codes not found in plant master:
'.implode(', ', $uniqueInvalidPlaCodesMaster)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidWorkCenter)) { + Notification::make() + ->title('Invalid Work Center') + ->body('The following work center should contain miminum 7 digits:
'.implode(', ', $uniqueInvalidWorkCenter)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidWorkCenterMaster)) { + Notification::make() + ->title('Invalid Work Center') + ->body('The following work center not found in machine master:
'.implode(', ', $uniqueInvalidWorkCenterMaster)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($duplicateSerialCodesInDb)) { + Notification::make() + ->title('Duplicate Serial Number In DB') + ->body('The following Serial Number already exist in class characteristic table:
'.implode(', ', $duplicateSerialCodesInDb)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidPOrder)) { + Notification::make() + ->title('Invalid Production Order') + ->body('The following production order should contain minimum 7 digit values:
'.implode(', ', $uniqueInvalidPOrder)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidOrdQuan)) { + Notification::make() + ->title('Invalid Order Quantity') + ->body('The following Order Quantity should contain numeric values:
'.implode(', ', $uniqueInvalidOrdQuan)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueInvalidReleaseQuan)) { + Notification::make() + ->title('Invalid Released Quantity') + ->body('The following Released Quantity should contain numeric values:
'.implode(', ', $uniqueInvalidReleaseQuan)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueMissingSerials)) { + Notification::make() + ->title('Missing Serial Numbers') + ->body("The following item codes doesn't have valid serial number:
".implode(', ', $uniqueMissingSerials)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($uniqueSerialCodes)) { + Notification::make() + ->title('Invalid Serial Number') + ->body('The following serial numbers should contain minimum 9 digit alpha numeric values:
'.implode(', ', $uniqueSerialCodes)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! empty($duplicateSerialCodes)) { + Notification::make() + ->title('Duplicate Serial Numbers') + ->body('The following serial numbers are already exist in imported excel:
'.implode(', ', $duplicateSerialCodes)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } elseif (! $validRowsFound) { + Notification::make() + ->title('Invalid Serial Invoice') + ->danger() // This makes the notification red to indicate an error + ->body('Uploaded Excel sheet is empty or
contains no valid data.') + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + + return; + } + + // ..Insert Logic + + $insertedCount = 0; + foreach ($rows as $index => $row) { + if ($index == 0) { + continue; + } // Skip header + + $plantCode = trim($row[0]); + $itemCode = trim($row[1]); + $workCenter = trim($row[2]); + $pOrder = trim($row[3]); + $orderQuan = trim($row[4]); + $releaseQuan = trim($row[5]); + $serialNumber = trim($row[6]); + + if (empty($plantCode) && empty($itemCode) && empty($workCenter) && empty($pOrder) && empty($orderQuan) && empty($releaseQuan) && empty($serialNumber)) { + continue; + } + + $item = Item::where('plant_id', $plantId)->where('code', $itemCode)->first(); + + $machine = Machine::where('plant_id', $plantId)->where('work_center', $workCenter)->first(); + + $record = ClassCharacteristic::create([ + 'plant_id' => $plantId, + 'item_id' => $item->id, + 'machine_id' => $machine->id, + 'aufnr' => $pOrder, + 'gamng' => $orderQuan, + 'lmnga' => $releaseQuan, + 'gernr' => $serialNumber, + 'created_by' => $userName, + 'updated_by' => $userName, + ]); + + if ($record) { + $insertedCount++; + } + } + + $itemCharacteristic = ItemCharacteristic::where('plant_id', $plantId)->where('item_id', $item->id)->first(); + + if ($itemCharacteristic) { + + $classCharacteristics = ClassCharacteristic::where('plant_id', $itemCharacteristic->plant_id) + ->where('item_id', $itemCharacteristic->item_id) + ->get(); + + $updatedCount = 0; + + foreach ($classCharacteristics as $classCharacteristic) { + + $classCharacteristic->update([ + 'zz1_cn_bill_ord' => $itemCharacteristic->zz1_cn_bill_ord, + 'zmm_amps' => $itemCharacteristic->zmm_amps, + 'zmm_brand' => $itemCharacteristic->zmm_brand, + 'zmm_degreeofprotection' => $itemCharacteristic->zmm_degreeofprotection, + 'zmm_delivery' => $itemCharacteristic->zmm_delivery, + 'zmm_dir_rot' => $itemCharacteristic->zmm_dir_rot, + 'zmm_discharge' => $itemCharacteristic->zmm_discharge, + 'zmm_discharge_max' => $itemCharacteristic->zmm_discharge_max, + 'zmm_discharge_min' => $itemCharacteristic->zmm_discharge_min, + 'zmm_duty' => $itemCharacteristic->zmm_duty, + 'zmm_eff_motor' => $itemCharacteristic->zmm_eff_motor, + 'zmm_eff_pump' => $itemCharacteristic->zmm_eff_pump, + 'zmm_frequency' => $itemCharacteristic->zmm_frequency, + 'zmm_head' => $itemCharacteristic->zmm_head, + 'zmm_heading' => $itemCharacteristic->zmm_heading, + 'zmm_head_max' => $itemCharacteristic->zmm_head_max, + 'zmm_head_minimum' => $itemCharacteristic->zmm_head_minimum, + 'zmm_idx_eff_mtr' => $itemCharacteristic->zmm_idx_eff_mtr, + 'zmm_idx_eff_pump' => $itemCharacteristic->zmm_idx_eff_pump, + 'zmm_kvacode' => $itemCharacteristic->zmm_kvacode, + 'zmm_maxambtemp' => $itemCharacteristic->zmm_maxambtemp, + 'zmm_mincoolingflow' => $itemCharacteristic->zmm_mincoolingflow, + 'zmm_motorseries' => $itemCharacteristic->zmm_motorseries, + 'zmm_motor_model' => $itemCharacteristic->zmm_motor_model, + 'zmm_outlet' => $itemCharacteristic->zmm_outlet, + 'zmm_phase' => $itemCharacteristic->zmm_phase, + 'zmm_pressure' => $itemCharacteristic->zmm_pressure, + 'zmm_pumpflowtype' => $itemCharacteristic->zmm_pumpflowtype, + 'zmm_pumpseries' => $itemCharacteristic->zmm_pumpseries, + 'zmm_pump_model' => $itemCharacteristic->zmm_pump_model, + 'zmm_ratedpower' => $itemCharacteristic->zmm_ratedpower, + 'zmm_region' => $itemCharacteristic->zmm_region, + 'zmm_servicefactor' => $itemCharacteristic->zmm_servicefactor, + 'zmm_servicefactormaximumamps' => $itemCharacteristic->zmm_servicefactormaximumamps, + 'zmm_speed' => $itemCharacteristic->zmm_speed, + 'zmm_suction' => $itemCharacteristic->zmm_suction, + 'zmm_suctionxdelivery' => $itemCharacteristic->zmm_suctionxdelivery, + 'zmm_supplysource' => $itemCharacteristic->zmm_supplysource, + 'zmm_temperature' => $itemCharacteristic->zmm_temperature, + 'zmm_thrustload' => $itemCharacteristic->zmm_thrustload, + 'zmm_volts' => $itemCharacteristic->zmm_volts, + 'zmm_wire' => $itemCharacteristic->zmm_wire, + 'zmm_package' => $itemCharacteristic->zmm_package, + 'zmm_pvarrayrating' => $itemCharacteristic->zmm_pvarrayrating, + 'zmm_isi' => $itemCharacteristic->zmm_isi, + 'zmm_isimotor' => $itemCharacteristic->zmm_isimotor, + 'zmm_isipump' => $itemCharacteristic->zmm_isipump, + 'zmm_isipumpset' => $itemCharacteristic->zmm_isipumpset, + 'zmm_pumpset_model' => $itemCharacteristic->zmm_pumpset_model, + 'zmm_stages' => $itemCharacteristic->zmm_stages, + 'zmm_headrange' => $itemCharacteristic->zmm_headrange, + 'zmm_overall_efficiency' => $itemCharacteristic->zmm_overall_efficiency, + 'zmm_connection' => $itemCharacteristic->zmm_connection, + 'zmm_min_bore_size' => $itemCharacteristic->zmm_min_bore_size, + 'zmm_isireference' => $itemCharacteristic->zmm_isireference, + 'zmm_category' => $itemCharacteristic->zmm_category, + 'zmm_submergence' => $itemCharacteristic->zmm_submergence, + 'zmm_capacitorstart' => $itemCharacteristic->zmm_capacitorstart, + 'zmm_capacitorrun' => $itemCharacteristic->zmm_capacitorrun, + 'zmm_inch' => $itemCharacteristic->zmm_inch, + 'zmm_motor_type' => $itemCharacteristic->zmm_motor_type, + 'zmm_dismantle_direction' => $itemCharacteristic->zmm_dismantle_direction, + 'zmm_eff_ovrall' => $itemCharacteristic->zmm_eff_ovrall, + 'zmm_bodymoc' => $itemCharacteristic->zmm_bodymoc, + 'zmm_rotormoc' => $itemCharacteristic->zmm_rotormoc, + 'zmm_dlwl' => $itemCharacteristic->zmm_dlwl, + 'zmm_inputpower' => $itemCharacteristic->zmm_inputpower, + 'zmm_imp_od' => $itemCharacteristic->zmm_imp_od, + 'zmm_ambtemp' => $itemCharacteristic->zmm_ambtemp, + 'zmm_de' => $itemCharacteristic->zmm_de, + 'zmm_dischargerange' => $itemCharacteristic->zmm_dischargerange, + 'zmm_efficiency_class' => $itemCharacteristic->zmm_efficiency_class, + 'zmm_framesize' => $itemCharacteristic->zmm_framesize, + 'zmm_impellerdiameter' => $itemCharacteristic->zmm_impellerdiameter, + 'zmm_insulationclass' => $itemCharacteristic->zmm_insulationclass, + 'zmm_maxflow' => $itemCharacteristic->zmm_maxflow, + 'zmm_minhead' => $itemCharacteristic->zmm_minhead, + 'zmm_mtrlofconst' => $itemCharacteristic->zmm_mtrlofconst, + 'zmm_nde' => $itemCharacteristic->zmm_nde, + 'zmm_powerfactor' => $itemCharacteristic->zmm_powerfactor, + 'zmm_tagno' => $itemCharacteristic->zmm_tagno, + 'zmm_year' => $itemCharacteristic->zmm_year, + 'zmm_laser_name' => $itemCharacteristic->zmm_laser_name, + 'zmm_logo_cp' => $itemCharacteristic->zmm_logo_cp, + 'zmm_logo_ce' => $itemCharacteristic->zmm_logo_ce, + 'zmm_logo_nsf' => $itemCharacteristic->zmm_logo_nsf, + 'zmm_logo_eac' => $itemCharacteristic->zmm_logo_eac, + 'zmm_beenote' => $itemCharacteristic->zmm_beenote, + 'zmm_beenumber' => $itemCharacteristic->zmm_beenumber, + 'zmm_beestar' => $itemCharacteristic->zmm_beestar, + 'zmm_codeclass' => $itemCharacteristic->zmm_codeclass, + 'zmm_colour' => $itemCharacteristic->zmm_colour, + 'zmm_grade' => $itemCharacteristic->zmm_grade, + 'zmm_grwt_pset' => $itemCharacteristic->zmm_grwt_pset, + 'zmm_grwt_cable' => $itemCharacteristic->zmm_grwt_cable, + 'zmm_grwt_motor' => $itemCharacteristic->zmm_grwt_motor, + 'zmm_grwt_pf' => $itemCharacteristic->zmm_grwt_pf, + 'zmm_grwt_pump' => $itemCharacteristic->zmm_grwt_pump, + 'zmm_isivalve' => $itemCharacteristic->zmm_isivalve, + 'zmm_isi_wc' => $itemCharacteristic->zmm_isi_wc, + 'zmm_labelperiod' => $itemCharacteristic->zmm_labelperiod, + 'zmm_length' => $itemCharacteristic->zmm_length, + 'zmm_license_cml_no' => $itemCharacteristic->zmm_license_cml_no, + 'zmm_mfgmonyr' => $itemCharacteristic->zmm_mfgmonyr, + 'zmm_modelyear' => $itemCharacteristic->zmm_modelyear, + 'zmm_motoridentification' => $itemCharacteristic->zmm_motoridentification, + 'zmm_newt_pset' => $itemCharacteristic->zmm_newt_pset, + 'zmm_newt_cable' => $itemCharacteristic->zmm_newt_cable, + 'zmm_newt_motor' => $itemCharacteristic->zmm_newt_motor, + 'zmm_newt_pf' => $itemCharacteristic->zmm_newt_pf, + 'zmm_newt_pump' => $itemCharacteristic->zmm_newt_pump, + 'zmm_packtype' => $itemCharacteristic->zmm_packtype, + 'zmm_panel' => $itemCharacteristic->zmm_panel, + 'zmm_performance_factor' => $itemCharacteristic->zmm_performance_factor, + 'zmm_pumpidentification' => $itemCharacteristic->zmm_pumpidentification, + 'zmm_psettype' => $itemCharacteristic->zmm_psettype, + 'zmm_size' => $itemCharacteristic->zmm_size, + 'zmm_eff_ttl' => $itemCharacteristic->zmm_eff_ttl, + 'zmm_type' => $itemCharacteristic->zmm_type, + 'zmm_usp' => $itemCharacteristic->zmm_usp, + 'zmm_operating_range' => $itemCharacteristic->zmm_operating_range, + 'zmm_intake_air' => $itemCharacteristic->zmm_intake_air, + 'zmm_oxygen_transfer_rate' => $itemCharacteristic->zmm_oxygen_transfer_rate, + 'zmm_air_inlet_pipesize' => $itemCharacteristic->zmm_air_inlet_pipesize, + 'zmm_sump_depth' => $itemCharacteristic->zmm_sump_depth, + 'zmm_poles' => $itemCharacteristic->zmm_poles, + 'zmm_motor_heading' => $itemCharacteristic->zmm_motor_heading, + 'zmm_motor_speed' => $itemCharacteristic->zmm_motor_speed, + 'zqmm_qty' => $itemCharacteristic->zqmm_qty, + 'zmm_operating_temperature' => $itemCharacteristic->zmm_operating_temperature, + 'zmm_axial_force' => $itemCharacteristic->zmm_axial_force, + ]); + + $updatedCount++; + } + } + + if ($record) { + Notification::make() + ->title('Import Successful') + ->body("{$insertedCount} records inserted successfully and updated zmm values success for '{$updatedCount}' records.") + ->success(); + } + } + }) + ->visible(function () { + return Filament::auth()->user()->can('view import class characteristic serial'); + }), ImportAction::make() ->label('Import Class Characteristics') ->color('warning') diff --git a/app/Filament/Resources/ProductionTempResource.php b/app/Filament/Resources/ProductionTempResource.php index a8c81f5..c16797e 100644 --- a/app/Filament/Resources/ProductionTempResource.php +++ b/app/Filament/Resources/ProductionTempResource.php @@ -11,21 +11,20 @@ use App\Models\Plant; use App\Models\ProductionTemp; use Filament\Facades\Filament; use Filament\Forms; +use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Forms\Get; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Actions\ExportAction; use Filament\Tables\Actions\ImportAction; +use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Illuminate\Validation\Rule; -use Filament\Tables\Filters\Filter; -use Filament\Forms\Components\DateTimePicker; -use Filament\Forms\Components\Section; -use Filament\Forms\Components\Select; -use Filament\Forms\Components\TextInput; class ProductionTempResource extends Resource { @@ -949,6 +948,12 @@ class ProductionTempResource extends Resource ->afterStateUpdated(function (callable $set) { $set('updated_by', Filament::auth()->user()?->name); }), + Forms\Components\TextInput::make('zmm_mrp') + ->label('ZMM MRP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), Forms\Components\TextInput::make('pending_released_status') ->label('PENDING RELEASED STATUS') ->reactive() @@ -1535,6 +1540,10 @@ class ProductionTempResource extends Resource ->label('ZMM AXIAL FORCE') ->alignCenter() ->sortable(), + Tables\Columns\TextColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->alignCenter() + ->sortable(), Tables\Columns\TextColumn::make('pending_released_status') ->label('PENDING RELEASED STATUS') ->alignCenter() diff --git a/app/Filament/Resources/TempClassCharacteristicResource.php b/app/Filament/Resources/TempClassCharacteristicResource.php index 16504fe..b876223 100644 --- a/app/Filament/Resources/TempClassCharacteristicResource.php +++ b/app/Filament/Resources/TempClassCharacteristicResource.php @@ -988,6 +988,12 @@ class TempClassCharacteristicResource extends Resource ->afterStateUpdated(function (callable $set) { $set('updated_by', Filament::auth()->user()?->name); }), + Forms\Components\TextInput::make('zmm_mrp') + ->label('ZMM MRP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), Forms\Components\TextInput::make('winded_serial_number') ->label('WINDED SERIAL NUMBER') ->reactive() @@ -1597,6 +1603,10 @@ class TempClassCharacteristicResource extends Resource ->label('ZMM AXIAL FORCE') ->alignCenter() ->sortable(), + Tables\Columns\TextColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->alignCenter() + ->sortable(), Tables\Columns\TextColumn::make('winded_serial_number') ->label('WINDED SERIAL NUMBER') ->alignCenter() diff --git a/app/Models/ClassCharacteristic.php b/app/Models/ClassCharacteristic.php index 00f9ea4..d66555a 100644 --- a/app/Models/ClassCharacteristic.php +++ b/app/Models/ClassCharacteristic.php @@ -154,6 +154,7 @@ class ClassCharacteristic extends Model 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force', + 'zmm_mrp', 'mark_status', 'marked_physical_count', 'marked_expected_time', diff --git a/app/Models/ProductionTemp.php b/app/Models/ProductionTemp.php index be0ba11..a0ab749 100644 --- a/app/Models/ProductionTemp.php +++ b/app/Models/ProductionTemp.php @@ -150,6 +150,7 @@ class ProductionTemp extends Model 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force', + 'zmm_mrp', 'pending_released_status', 'created_at', 'updated_at', diff --git a/app/Models/TempClassCharacteristic.php b/app/Models/TempClassCharacteristic.php index 2c2a805..f6d6aca 100644 --- a/app/Models/TempClassCharacteristic.php +++ b/app/Models/TempClassCharacteristic.php @@ -151,6 +151,7 @@ class TempClassCharacteristic extends Model 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force', + 'zmm_mrp', 'winded_serial_number', 'model_type', 'has_work_flow_id', diff --git a/database/migrations/2026_09_23_124824_add_zmm_mrp_column_in_class_characteristics_table.php b/database/migrations/2026_09_23_124824_add_zmm_mrp_column_in_class_characteristics_table.php new file mode 100644 index 0000000..300b269 --- /dev/null +++ b/database/migrations/2026_09_23_124824_add_zmm_mrp_column_in_class_characteristics_table.php @@ -0,0 +1,31 @@ + 'view import production characteristics']); Permission::updateOrCreate(['name' => 'view export production characteristics']); + Permission::updateOrCreate(['name' => 'view import class characteristic']); + Permission::updateOrCreate(['name' => 'view export class characteristic']); + Permission::updateOrCreate(['name' => 'view import class characteristic serial']); + Permission::updateOrCreate(['name' => 'view import temp class characteristic']); Permission::updateOrCreate(['name' => 'view export temp class characteristic']); + Permission::updateOrCreate(['name' => 'view import item characteristics']); + Permission::updateOrCreate(['name' => 'view export item characteristics']); + Permission::updateOrCreate(['name' => 'view import temp stop characteristics']); Permission::updateOrCreate(['name' => 'view export temp stop characteristics']); From dc27b8e45da95ce095f274d0a2c036b3de152103 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 23 Sep 2026 15:19:25 +0530 Subject: [PATCH 2/2] Rename mrp column to zmm_mrp migration, model, resource, importer and exporter pages --- .../Exports/ItemCharacteristicExporter.php | 7 +- .../Imports/ItemCharacteristicImporter.php | 11 +- .../Resources/ItemCharacteristicResource.php | 1855 +++++++++-------- app/Models/ItemCharacteristic.php | 2 +- ...umn_name_in_item_characteristics_table.php | 28 + 5 files changed, 969 insertions(+), 934 deletions(-) create mode 100644 database/migrations/2026_09_23_144608_rename_zmm_mrp_column_name_in_item_characteristics_table.php diff --git a/app/Filament/Exports/ItemCharacteristicExporter.php b/app/Filament/Exports/ItemCharacteristicExporter.php index 4204c48..a9dacdb 100644 --- a/app/Filament/Exports/ItemCharacteristicExporter.php +++ b/app/Filament/Exports/ItemCharacteristicExporter.php @@ -14,6 +14,7 @@ class ItemCharacteristicExporter extends Exporter public static function getColumns(): array { static $rowNumber = 0; + return [ ExportColumn::make('no') ->label('NO') @@ -289,6 +290,8 @@ class ItemCharacteristicExporter extends Exporter ->label('ZMM OPERATING TEMPERATURE'), ExportColumn::make('zmm_axial_force') ->label('ZMM AXIAL FORCE'), + ExportColumn::make('zmm_mrp') + ->label('ZMM MRP'), ExportColumn::make('zmm_1') ->label('ZMM 1') ->enabledByDefault(false), @@ -350,10 +353,10 @@ class ItemCharacteristicExporter extends Exporter public static function getCompletedNotificationBody(Export $export): string { - $body = 'Your item characteristic export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.'; + $body = 'Your item characteristic export has completed and '.number_format($export->successful_rows).' '.str('row')->plural($export->successful_rows).' exported.'; if ($failedRowsCount = $export->getFailedRowsCount()) { - $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.'; + $body .= ' '.number_format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' failed to export.'; } return $body; diff --git a/app/Filament/Imports/ItemCharacteristicImporter.php b/app/Filament/Imports/ItemCharacteristicImporter.php index 9f254d1..8b4b43c 100644 --- a/app/Filament/Imports/ItemCharacteristicImporter.php +++ b/app/Filament/Imports/ItemCharacteristicImporter.php @@ -556,7 +556,10 @@ class ItemCharacteristicImporter extends Importer ->label('ZMM AXIAL FORCE') ->exampleHeader('ZMM AXIAL FORCE') ->example(''), - ImportColumn::make('mrp'), + ImportColumn::make('zmm_mrp') + ->label('ZMM MRP') + ->exampleHeader('ZMM MRP') + ->example(''), ImportColumn::make('zmm_1'), ImportColumn::make('zmm_2'), ImportColumn::make('zmm_3'), @@ -584,15 +587,15 @@ class ItemCharacteristicImporter extends Importer // 'email' => $this->data['email'], // ]); - return new ItemCharacteristic(); + return new ItemCharacteristic; } public static function getCompletedNotificationBody(Import $import): string { - $body = 'Your item characteristic import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; + $body = 'Your item characteristic 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; diff --git a/app/Filament/Resources/ItemCharacteristicResource.php b/app/Filament/Resources/ItemCharacteristicResource.php index 8a45521..b817b10 100644 --- a/app/Filament/Resources/ItemCharacteristicResource.php +++ b/app/Filament/Resources/ItemCharacteristicResource.php @@ -5,21 +5,20 @@ namespace App\Filament\Resources; use App\Filament\Exports\ItemCharacteristicExporter; use App\Filament\Imports\ItemCharacteristicImporter; use App\Filament\Resources\ItemCharacteristicResource\Pages; -use App\Filament\Resources\ItemCharacteristicResource\RelationManagers; use App\Models\Item; use App\Models\ItemCharacteristic; use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; +use Filament\Forms\Components\Section; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; +use Filament\Tables\Actions\ExportAction; +use Filament\Tables\Actions\ImportAction; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; -use Filament\Tables\Actions\ExportAction; -use Filament\Tables\Actions\ImportAction; -use Filament\Forms\Components\Section; class ItemCharacteristicResource extends Resource { @@ -35,925 +34,927 @@ class ItemCharacteristicResource extends Resource ->schema([ Section::make('') ->schema([ - Forms\Components\Select::make('plant_id') - ->label('Plant') - ->reactive() - ->relationship('plant', 'name') - ->options(function (callable $get) { - $userHas = Filament::auth()->user()->plant_id; - return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); - }) - ->required(), - Forms\Components\Select::make('item_id') - ->label('Item Code') - //->relationship('item', 'id') - ->reactive() - ->searchable() - ->options(function (callable $get) { - $plantId = $get('plant_id'); - if (empty($plantId)) { - return []; - } - return Item::where('plant_id', $plantId)->pluck('code', 'id'); - }) - ->required(), - Forms\Components\TextInput::make('class') - ->label('CLASS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zz1_cn_bill_ord') - ->label('ZZ1 CN BILL ORD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_amps') - ->label('ZMM AMPS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_brand') - ->label('ZMM BRAND') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_degreeofprotection') - ->label('ZMM DEGREE OF PROTECTION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_delivery') - ->label('ZMM DELIVERY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_dir_rot') - ->label('ZMM DIRECTION ROTATION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_discharge') - ->label('ZMM DISCHARGE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_discharge_max') - ->label('ZMM DISCHARGE MAX') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_discharge_min') - ->label('ZMM DISCHARGE MIN') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_duty') - ->label('ZMM DUTY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_eff_motor') - ->label('ZMM EFF MOTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_eff_pump') - ->label('ZMM EFF PUMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_frequency') - ->label('ZMM FREQUENCY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_head') - ->label('ZMM HEAD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_heading') - ->label('ZMM HEADING') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_head_max') - ->label('ZMM HEAD MAX') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_head_minimum') - ->label('ZMM HEAD MINIMUM') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_idx_eff_mtr') - ->label('ZMM IDX EFF MTR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_idx_eff_pump') - ->label('ZMM IDX EFF PUMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_kvacode') - ->label('ZMM KVACODE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_maxambtemp') - ->label('ZMM MAX AMB TEMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_mincoolingflow') - ->label('ZMM MIN COOLING FLOW') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motorseries') - ->label('ZMM MOTOR SERIES') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motor_model') - ->label('ZMM MOTOR MODEL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_outlet') - ->label('ZMM OUTLET') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_phase') - ->label('ZMM PHASE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pressure') - ->label('ZMM PRESSURE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pumpflowtype') - ->label('ZMM PUMP FLOW TYPE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pumpseries') - ->label('ZMM PUMP SERIES') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pump_model') - ->label('ZMM PUMP MODEL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_ratedpower') - ->label('ZMM RATED POWER') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_region') - ->label('ZMM REGION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_servicefactor') - ->label('ZMM SERVICE FACTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_servicefactormaximumamps') - ->label('ZMM SERVICE FACTOR MAXIMUM AMPS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_speed') - ->label('ZMM SPEED') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_suction') - ->label('ZMM SUCTION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_suctionxdelivery') - ->label('ZMM SUCTION X DELIVERY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_supplysource') - ->label('ZMM SUPPLY SOURCE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_temperature') - ->label('ZMM TEMPERATURE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_thrustload') - ->label('ZMM THRUST LOAD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_volts') - ->label('ZMM VOLTS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_wire') - ->label('ZMM WIRE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_package') - ->label('ZMM PACKAGE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pvarrayrating') - ->label('ZMM PV ARRAY RATING') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isi') - ->label('ZMM ISI') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isimotor') - ->label('ZMM ISI MOTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isipump') - ->label('ZMM ISI PUMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isipumpset') - ->label('ZMM ISI PUMP SET') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pumpset_model') - ->label('ZMM PUMP SET MODEL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_stages') - ->label('ZMM STAGES') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_headrange') - ->label('ZMM HEAD RANGE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_overall_efficiency') - ->label('ZMM OVERALL EFFICIENCY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_connection') - ->label('ZMM CONNECTION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_min_bore_size') - ->label('ZMM MIN BORE SIZE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isireference') - ->label('ZMM ISI REFERENCE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_category') - ->label('ZMM CATEGORY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_submergence') - ->label('ZMM SUBMERGENCE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_capacitorstart') - ->label('ZMM CAPACITOR START') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_capacitorrun') - ->label('ZMM CAPACITOR RUN') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_inch') - ->label('ZMM INCH') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motor_type') - ->label('ZMM MOTOR TYPE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_dismantle_direction') - ->label('ZMM DISMANTLE DIRECTION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_eff_ovrall') - ->label('ZMM OVERALL EFFICIENCY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_bodymoc') - ->label('ZMM BODY MOC') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_rotormoc') - ->label('ZMM ROTOR MOC') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_dlwl') - ->label('ZMM DLWL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_inputpower') - ->label('ZMM INPUT POWER') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_imp_od') - ->label('ZMM IMP OD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_ambtemp') - ->label('ZMM AMBIENT TEMPERATURE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_de') - ->label('ZMM DE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_dischargerange') - ->label('ZMM DISCHARGE RANGE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_efficiency_class') - ->label('ZMM EFFICIENCY CLASS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_framesize') - ->label('ZMM FRAME SIZE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_impellerdiameter') - ->label('ZMM IMPELLER DIAMETER') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_insulationclass') - ->label('ZMM INSULATION CLASS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_maxflow') - ->label('ZMM MAX FLOW') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_minhead') - ->label('ZMM MIN HEAD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_mtrlofconst') - ->label('ZMM MOTOR LOAD CONSTANT') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_nde') - ->label('ZMM NDE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_powerfactor') - ->label('ZMM POWER FACTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_tagno') - ->label('ZMM TAGNO') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_year') - ->label('ZMM YEAR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_laser_name') - ->label('ZMM LASER NAME') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_beenote') - ->label('ZMM BEE NOTE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_beenumber') - ->label('ZMM BEE NUMBER') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_beestar') - ->label('ZMM BEE STAR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_logo_ce') - ->label('ZMM LOGO CE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_codeclass') - ->label('ZMM CODE CLASS') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_colour') - ->label('ZMM COLOUR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_logo_cp') - ->label('ZMM LOGO CP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grade') - ->label('ZMM GRADE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grwt_pset') - ->label('ZMM GRWT PSET') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grwt_cable') - ->label('ZMM GRWT CABLE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grwt_motor') - ->label('ZMM GRWT MOTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grwt_pf') - ->label('ZMM GRWT PF') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_grwt_pump') - ->label('ZMM GRWT PUMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isivalve') - ->label('ZMM ISI VALVE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_isi_wc') - ->label('ZMM ISI WC') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_labelperiod') - ->label('ZMM LABEL PERIOD') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_length') - ->label('ZMM LENGTH') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_license_cml_no') - ->label('ZMM LICENSE CML NO') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_mfgmonyr') - ->label('ZMM MFG MON YR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_modelyear') - ->label('ZMM MODEL YEAR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motoridentification') - ->label('ZMM MOTOR IDENTIFICATION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_newt_pset') - ->label('ZMM NEWT PSET') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_newt_cable') - ->label('ZMM NEWT CABLE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_newt_motor') - ->label('ZMM NEWT MOTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_newt_pf') - ->label('ZMM NEWT PF') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_newt_pump') - ->label('ZMM NEWT PUMP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_logo_nsf') - ->label('ZMM LOGO NSF') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_logo_eac') - ->label('ZMM LOGO EAC') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_packtype') - ->label('ZMM PACK TYPE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_panel') - ->label('ZMM PANEL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_performance_factor') - ->label('ZMM PERFORMANCE FACTOR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_pumpidentification') - ->label('ZMM PUMP IDENTIFICATION') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_psettype') - ->label('ZMM PSET TYPE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_size') - ->label('ZMM SIZE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_eff_ttl') - ->label('ZMM EFF TTL') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_type') - ->label('ZMM TYPE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_usp') - ->label('ZMM USP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_operating_range') - ->label('ZMM OPERATING RANGE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_intake_air') - ->label('ZMM INTAKE AIR') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_oxygen_transfer_rate') - ->label('ZMM OXYGEN TRANSFER RATE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_air_inlet_pipesize') - ->label('ZMM AIR INLET PIPESIZE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_sump_depth') - ->label('ZMM SUMP DEPTH') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_poles') - ->label('ZMM POLES') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motor_heading') - ->label('ZMM MOTOR HEADING') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_motor_speed') - ->label('ZMM MOTOR SPEED') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zqmm_qty') - ->label('ZQMM QTY') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_operating_temperature') - ->label('ZMM OPERATING TEMPERATURE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_axial_force') - ->label('ZMM AXIAL FORCE') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('mrp') - ->label('MRP') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_1') - ->label('ZMM 1') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_2') - ->label('ZMM 2') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_3') - ->label('ZMM 3') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_4') - ->label('ZMM 4') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_5') - ->label('ZMM 5') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_6') - ->label('ZMM 6') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_7') - ->label('ZMM 7') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_8') - ->label('ZMM 8') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_9') - ->label('ZMM 9') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_10') - ->label('ZMM 10') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_11') - ->label('ZMM 11') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_12') - ->label('ZMM 12') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_13') - ->label('ZMM 13') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_14') - ->label('ZMM 14') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\TextInput::make('zmm_15') - ->label('ZMM 15') - ->reactive() - ->afterStateUpdated(function (callable $set) { - $set('updated_by', Filament::auth()->user()?->name); - }), - Forms\Components\Hidden::make('created_by') - ->label('Created By') - ->default(Filament::auth()->user()?->name), - Forms\Components\Hidden::make('updated_by') - ->label('Updated By') - ->default(Filament::auth()->user()?->name), - ]) - ->columns(3), - ]); + Forms\Components\Select::make('plant_id') + ->label('Plant') + ->reactive() + ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) + ->required(), + Forms\Components\Select::make('item_id') + ->label('Item Code') + // ->relationship('item', 'id') + ->reactive() + ->searchable() + ->options(function (callable $get) { + $plantId = $get('plant_id'); + if (empty($plantId)) { + return []; + } + + return Item::where('plant_id', $plantId)->pluck('code', 'id'); + }) + ->required(), + Forms\Components\TextInput::make('class') + ->label('CLASS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zz1_cn_bill_ord') + ->label('ZZ1 CN BILL ORD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_amps') + ->label('ZMM AMPS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_brand') + ->label('ZMM BRAND') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_degreeofprotection') + ->label('ZMM DEGREE OF PROTECTION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_delivery') + ->label('ZMM DELIVERY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_dir_rot') + ->label('ZMM DIRECTION ROTATION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_discharge') + ->label('ZMM DISCHARGE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_discharge_max') + ->label('ZMM DISCHARGE MAX') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_discharge_min') + ->label('ZMM DISCHARGE MIN') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_duty') + ->label('ZMM DUTY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_eff_motor') + ->label('ZMM EFF MOTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_eff_pump') + ->label('ZMM EFF PUMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_frequency') + ->label('ZMM FREQUENCY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_head') + ->label('ZMM HEAD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_heading') + ->label('ZMM HEADING') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_head_max') + ->label('ZMM HEAD MAX') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_head_minimum') + ->label('ZMM HEAD MINIMUM') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_idx_eff_mtr') + ->label('ZMM IDX EFF MTR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_idx_eff_pump') + ->label('ZMM IDX EFF PUMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_kvacode') + ->label('ZMM KVACODE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_maxambtemp') + ->label('ZMM MAX AMB TEMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_mincoolingflow') + ->label('ZMM MIN COOLING FLOW') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motorseries') + ->label('ZMM MOTOR SERIES') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motor_model') + ->label('ZMM MOTOR MODEL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_outlet') + ->label('ZMM OUTLET') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_phase') + ->label('ZMM PHASE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pressure') + ->label('ZMM PRESSURE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pumpflowtype') + ->label('ZMM PUMP FLOW TYPE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pumpseries') + ->label('ZMM PUMP SERIES') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pump_model') + ->label('ZMM PUMP MODEL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_ratedpower') + ->label('ZMM RATED POWER') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_region') + ->label('ZMM REGION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_servicefactor') + ->label('ZMM SERVICE FACTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_servicefactormaximumamps') + ->label('ZMM SERVICE FACTOR MAXIMUM AMPS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_speed') + ->label('ZMM SPEED') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_suction') + ->label('ZMM SUCTION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_suctionxdelivery') + ->label('ZMM SUCTION X DELIVERY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_supplysource') + ->label('ZMM SUPPLY SOURCE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_temperature') + ->label('ZMM TEMPERATURE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_thrustload') + ->label('ZMM THRUST LOAD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_volts') + ->label('ZMM VOLTS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_wire') + ->label('ZMM WIRE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_package') + ->label('ZMM PACKAGE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pvarrayrating') + ->label('ZMM PV ARRAY RATING') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isi') + ->label('ZMM ISI') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isimotor') + ->label('ZMM ISI MOTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isipump') + ->label('ZMM ISI PUMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isipumpset') + ->label('ZMM ISI PUMP SET') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pumpset_model') + ->label('ZMM PUMP SET MODEL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_stages') + ->label('ZMM STAGES') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_headrange') + ->label('ZMM HEAD RANGE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_overall_efficiency') + ->label('ZMM OVERALL EFFICIENCY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_connection') + ->label('ZMM CONNECTION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_min_bore_size') + ->label('ZMM MIN BORE SIZE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isireference') + ->label('ZMM ISI REFERENCE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_category') + ->label('ZMM CATEGORY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_submergence') + ->label('ZMM SUBMERGENCE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_capacitorstart') + ->label('ZMM CAPACITOR START') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_capacitorrun') + ->label('ZMM CAPACITOR RUN') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_inch') + ->label('ZMM INCH') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motor_type') + ->label('ZMM MOTOR TYPE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_dismantle_direction') + ->label('ZMM DISMANTLE DIRECTION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_eff_ovrall') + ->label('ZMM OVERALL EFFICIENCY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_bodymoc') + ->label('ZMM BODY MOC') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_rotormoc') + ->label('ZMM ROTOR MOC') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_dlwl') + ->label('ZMM DLWL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_inputpower') + ->label('ZMM INPUT POWER') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_imp_od') + ->label('ZMM IMP OD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_ambtemp') + ->label('ZMM AMBIENT TEMPERATURE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_de') + ->label('ZMM DE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_dischargerange') + ->label('ZMM DISCHARGE RANGE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_efficiency_class') + ->label('ZMM EFFICIENCY CLASS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_framesize') + ->label('ZMM FRAME SIZE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_impellerdiameter') + ->label('ZMM IMPELLER DIAMETER') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_insulationclass') + ->label('ZMM INSULATION CLASS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_maxflow') + ->label('ZMM MAX FLOW') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_minhead') + ->label('ZMM MIN HEAD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_mtrlofconst') + ->label('ZMM MOTOR LOAD CONSTANT') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_nde') + ->label('ZMM NDE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_powerfactor') + ->label('ZMM POWER FACTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_tagno') + ->label('ZMM TAGNO') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_year') + ->label('ZMM YEAR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_laser_name') + ->label('ZMM LASER NAME') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_beenote') + ->label('ZMM BEE NOTE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_beenumber') + ->label('ZMM BEE NUMBER') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_beestar') + ->label('ZMM BEE STAR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_logo_ce') + ->label('ZMM LOGO CE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_codeclass') + ->label('ZMM CODE CLASS') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_colour') + ->label('ZMM COLOUR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_logo_cp') + ->label('ZMM LOGO CP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grade') + ->label('ZMM GRADE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grwt_pset') + ->label('ZMM GRWT PSET') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grwt_cable') + ->label('ZMM GRWT CABLE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grwt_motor') + ->label('ZMM GRWT MOTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grwt_pf') + ->label('ZMM GRWT PF') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_grwt_pump') + ->label('ZMM GRWT PUMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isivalve') + ->label('ZMM ISI VALVE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_isi_wc') + ->label('ZMM ISI WC') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_labelperiod') + ->label('ZMM LABEL PERIOD') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_length') + ->label('ZMM LENGTH') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_license_cml_no') + ->label('ZMM LICENSE CML NO') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_mfgmonyr') + ->label('ZMM MFG MON YR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_modelyear') + ->label('ZMM MODEL YEAR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motoridentification') + ->label('ZMM MOTOR IDENTIFICATION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_newt_pset') + ->label('ZMM NEWT PSET') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_newt_cable') + ->label('ZMM NEWT CABLE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_newt_motor') + ->label('ZMM NEWT MOTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_newt_pf') + ->label('ZMM NEWT PF') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_newt_pump') + ->label('ZMM NEWT PUMP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_logo_nsf') + ->label('ZMM LOGO NSF') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_logo_eac') + ->label('ZMM LOGO EAC') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_packtype') + ->label('ZMM PACK TYPE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_panel') + ->label('ZMM PANEL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_performance_factor') + ->label('ZMM PERFORMANCE FACTOR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_pumpidentification') + ->label('ZMM PUMP IDENTIFICATION') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_psettype') + ->label('ZMM PSET TYPE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_size') + ->label('ZMM SIZE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_eff_ttl') + ->label('ZMM EFF TTL') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_type') + ->label('ZMM TYPE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_usp') + ->label('ZMM USP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_operating_range') + ->label('ZMM OPERATING RANGE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_intake_air') + ->label('ZMM INTAKE AIR') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_oxygen_transfer_rate') + ->label('ZMM OXYGEN TRANSFER RATE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_air_inlet_pipesize') + ->label('ZMM AIR INLET PIPESIZE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_sump_depth') + ->label('ZMM SUMP DEPTH') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_poles') + ->label('ZMM POLES') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motor_heading') + ->label('ZMM MOTOR HEADING') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_motor_speed') + ->label('ZMM MOTOR SPEED') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zqmm_qty') + ->label('ZQMM QTY') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_operating_temperature') + ->label('ZMM OPERATING TEMPERATURE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_axial_force') + ->label('ZMM AXIAL FORCE') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_mrp') + ->label('ZMM MRP') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_1') + ->label('ZMM 1') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_2') + ->label('ZMM 2') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_3') + ->label('ZMM 3') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_4') + ->label('ZMM 4') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_5') + ->label('ZMM 5') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_6') + ->label('ZMM 6') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_7') + ->label('ZMM 7') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_8') + ->label('ZMM 8') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_9') + ->label('ZMM 9') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_10') + ->label('ZMM 10') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_11') + ->label('ZMM 11') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_12') + ->label('ZMM 12') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_13') + ->label('ZMM 13') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_14') + ->label('ZMM 14') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\TextInput::make('zmm_15') + ->label('ZMM 15') + ->reactive() + ->afterStateUpdated(function (callable $set) { + $set('updated_by', Filament::auth()->user()?->name); + }), + Forms\Components\Hidden::make('created_by') + ->label('Created By') + ->default(Filament::auth()->user()?->name), + Forms\Components\Hidden::make('updated_by') + ->label('Updated By') + ->default(Filament::auth()->user()?->name), + ]) + ->columns(3), + ]); } public static function table(Table $table): Table @@ -1509,8 +1510,8 @@ class ItemCharacteristicResource extends Resource ->label('ZMM AXIAL FORCE') ->alignCenter() ->sortable(), - Tables\Columns\TextColumn::make('mrp') - ->label('MRP') + Tables\Columns\TextColumn::make('zmm_mrp') + ->label('ZMM MRP') ->alignCenter() ->sortable(), Tables\Columns\TextColumn::make('zmm_1') @@ -1614,14 +1615,14 @@ class ItemCharacteristicResource extends Resource ->label('Import Item Characteristics') ->color('warning') ->importer(ItemCharacteristicImporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view import item characteristics'); }), ExportAction::make() ->label('Export Item Characteristics') ->color('warning') ->exporter(ItemCharacteristicExporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view export item characteristics'); }), ]); diff --git a/app/Models/ItemCharacteristic.php b/app/Models/ItemCharacteristic.php index e15df77..08a0c42 100644 --- a/app/Models/ItemCharacteristic.php +++ b/app/Models/ItemCharacteristic.php @@ -145,7 +145,7 @@ class ItemCharacteristic extends Model 'zmm_logo_eac', 'zmm_operating_temperature', 'zmm_axial_force', - 'mrp', + 'zmm_mrp', 'zmm_1', 'zmm_2', 'zmm_3', diff --git a/database/migrations/2026_09_23_144608_rename_zmm_mrp_column_name_in_item_characteristics_table.php b/database/migrations/2026_09_23_144608_rename_zmm_mrp_column_name_in_item_characteristics_table.php new file mode 100644 index 0000000..46ecfc8 --- /dev/null +++ b/database/migrations/2026_09_23_144608_rename_zmm_mrp_column_name_in_item_characteristics_table.php @@ -0,0 +1,28 @@ +renameColumn('mrp', 'zmm_mrp'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // Schema::table('item_characteristics', function (Blueprint $table) { + // // + // }); + } +};