From 6c68f2baab729d3e45cc24da9022ba92b192cfd0 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Tue, 9 Dec 2025 13:30:53 +0530 Subject: [PATCH] Added characteristic value importer and exporter --- .../Exports/CharacteristicValueExporter.php | 44 +++++++++++++ .../Imports/CharacteristicValueImporter.php | 61 +++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 app/Filament/Exports/CharacteristicValueExporter.php create mode 100644 app/Filament/Imports/CharacteristicValueImporter.php diff --git a/app/Filament/Exports/CharacteristicValueExporter.php b/app/Filament/Exports/CharacteristicValueExporter.php new file mode 100644 index 0000000..1e153ee --- /dev/null +++ b/app/Filament/Exports/CharacteristicValueExporter.php @@ -0,0 +1,44 @@ +label('ID'), + ExportColumn::make('plant.name'), + ExportColumn::make('line.name'), + ExportColumn::make('item.id'), + ExportColumn::make('machine.name'), + ExportColumn::make('process_order'), + ExportColumn::make('coil_number'), + ExportColumn::make('status'), + ExportColumn::make('created_at'), + ExportColumn::make('updated_at'), + ExportColumn::make('created_by'), + ExportColumn::make('updated_by'), + ExportColumn::make('deleted_at'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your characteristic value 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.'; + } + + return $body; + } +} diff --git a/app/Filament/Imports/CharacteristicValueImporter.php b/app/Filament/Imports/CharacteristicValueImporter.php new file mode 100644 index 0000000..405888b --- /dev/null +++ b/app/Filament/Imports/CharacteristicValueImporter.php @@ -0,0 +1,61 @@ +requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('line') + ->requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('item') + ->requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('machine') + ->requiredMapping() + ->relationship() + ->rules(['required']), + ImportColumn::make('process_order'), + ImportColumn::make('coil_number'), + ImportColumn::make('status'), + ImportColumn::make('created_by'), + ImportColumn::make('updated_by'), + ]; + } + + public function resolveRecord(): ?CharacteristicValue + { + // return CharacteristicValue::firstOrNew([ + // // Update existing records, matching them by `$this->data['column_name']` + // 'email' => $this->data['email'], + // ]); + + return new CharacteristicValue(); + } + + public static function getCompletedNotificationBody(Import $import): string + { + $body = 'Your characteristic value 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; + } +}