From 6a0f5b57a6b4c1b84db2d284de39ab80bff2426e Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 2 Jul 2025 15:59:15 +0530 Subject: [PATCH] Added pallet validation importer --- .../Imports/PalletValidationImporter.php | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 app/Filament/Imports/PalletValidationImporter.php diff --git a/app/Filament/Imports/PalletValidationImporter.php b/app/Filament/Imports/PalletValidationImporter.php new file mode 100644 index 0000000..d692dc5 --- /dev/null +++ b/app/Filament/Imports/PalletValidationImporter.php @@ -0,0 +1,98 @@ +requiredMapping() + ->label('Pallet Number') + ->example('EP-2505001'), + ImportColumn::make('serial_number') + ->requiredMapping() + ->example('12345678901234') + ->rules(['required']), + ImportColumn::make('pallet_status') + ->requiredMapping() + ->label('Pallet Status') + ->example('Completed'), + ImportColumn::make('locator_number') + ->requiredMapping() + ->label('Locator Number') + ->example('W05-D1B'), + ImportColumn::make('locator_quantity') + ->label('Locator Quantity') + ->requiredMapping() + ->numeric() + ->example(1) + ->rules(['required', 'integer']), + ImportColumn::make('plant') + ->requiredMapping() + ->exampleHeader('Plant Name') + ->example('Ransar Industries-I') + ->label('Plant Name') + ->relationship(resolveUsing: 'name') + ->rules(['required']), + ImportColumn::make('created_at') + ->label('Created At') + ->requiredMapping() + ->example('01-01-2025 08:00:00') + ->rules(['required']), + ImportColumn::make('updated_at') + ->label('Updated At') + ->requiredMapping() + ->example('01-01-2025 08:00:00') + ->rules(['required']), + ImportColumn::make('scanned_at') + ->label('Scanned At') + ->requiredMapping() + ->example('01-01-2025 08:00:00') + ->rules(['required']), + ImportColumn::make('created_by') + ->label('Created By') + ->requiredMapping() + ->example('Jothi') + ->rules(['required']), + ImportColumn::make('scanned_by') + ->label('Scanned By') + ->requiredMapping() + ->example('Jothi') + ->rules(['required']), + ImportColumn::make('updated_by') + ->label('Updated By') + ->example('Jothi') + ->requiredMapping(), + ]; + } + + public function resolveRecord(): ?PalletValidation + { + // return PalletValidation::firstOrNew([ + // // Update existing records, matching them by `$this->data['column_name']` + // 'email' => $this->data['email'], + // ]); + + return new PalletValidation(); + } + + public static function getCompletedNotificationBody(Import $import): string + { + $body = 'Your pallet validation import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; + + if ($failedRowsCount = $import->getFailedRowsCount()) { + $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to import.'; + } + + return $body; + } +}