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/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/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/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/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/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/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/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/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 @@
+renameColumn('mrp', 'zmm_mrp');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ // Schema::table('item_characteristics', function (Blueprint $table) {
+ // //
+ // });
+ }
+};
diff --git a/database/seeders/PermissionSeeder.php b/database/seeders/PermissionSeeder.php
index 1a10ec1..cbb2049 100644
--- a/database/seeders/PermissionSeeder.php
+++ b/database/seeders/PermissionSeeder.php
@@ -209,9 +209,16 @@ class PermissionSeeder extends Seeder
Permission::updateOrCreate(['name' => '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']);