From 75212ea2b14bcdde9281c27beae436213ef9f0ab Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 31 May 2025 10:15:51 +0530 Subject: [PATCH] Added company, plant, block, shift, lineStop exporter --- app/Filament/Exports/BlockExporter.php | 51 +++++++++++++++++++ app/Filament/Exports/CompanyExporter.php | 49 ++++++++++++++++++ app/Filament/Exports/LineStopExporter.php | 51 +++++++++++++++++++ app/Filament/Exports/PlantExporter.php | 55 ++++++++++++++++++++ app/Filament/Exports/ShiftExporter.php | 61 +++++++++++++++++++++++ 5 files changed, 267 insertions(+) create mode 100644 app/Filament/Exports/BlockExporter.php create mode 100644 app/Filament/Exports/CompanyExporter.php create mode 100644 app/Filament/Exports/LineStopExporter.php create mode 100644 app/Filament/Exports/PlantExporter.php create mode 100644 app/Filament/Exports/ShiftExporter.php diff --git a/app/Filament/Exports/BlockExporter.php b/app/Filament/Exports/BlockExporter.php new file mode 100644 index 000000000..08bd1d0b2 --- /dev/null +++ b/app/Filament/Exports/BlockExporter.php @@ -0,0 +1,51 @@ +label('ID'), + ExportColumn::make('no') + ->label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('plant.name') + ->label('PLANT'), + ExportColumn::make('name') + ->label('NAME'), + ExportColumn::make('created_at') + ->label('CREATED AT'), + ExportColumn::make('updated_at') + ->label('UPDATED AT'), + ExportColumn::make('deleted_at') + ->enabledByDefault(false) + ->label('DELETED AT'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your block 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/Exports/CompanyExporter.php b/app/Filament/Exports/CompanyExporter.php new file mode 100644 index 000000000..ecbcbc660 --- /dev/null +++ b/app/Filament/Exports/CompanyExporter.php @@ -0,0 +1,49 @@ +label('ID'), + ExportColumn::make('no') + ->label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('name') + ->label('NAME'), + ExportColumn::make('created_at') + ->label('CREATED AT'), + ExportColumn::make('updated_at') + ->label('UPDATED AT'), + ExportColumn::make('deleted_at') + ->enabledByDefault(false) + ->label('DELETED AT'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your company 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/Exports/LineStopExporter.php b/app/Filament/Exports/LineStopExporter.php new file mode 100644 index 000000000..86d176ae3 --- /dev/null +++ b/app/Filament/Exports/LineStopExporter.php @@ -0,0 +1,51 @@ +label('ID'), + ExportColumn::make('no') + ->label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('code') + ->label('LINE STOP CODE'), + ExportColumn::make('reason') + ->label('LINE STOP REASON'), + ExportColumn::make('created_at') + ->label('CREATED AT'), + ExportColumn::make('updated_at') + ->label('UPDATED AT'), + ExportColumn::make('deleted_at') + ->enabledByDefault(false) + ->label('DELETED AT'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your line stop 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/Exports/PlantExporter.php b/app/Filament/Exports/PlantExporter.php new file mode 100644 index 000000000..19e1ffca2 --- /dev/null +++ b/app/Filament/Exports/PlantExporter.php @@ -0,0 +1,55 @@ +label('ID'), + ExportColumn::make('no') + ->label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('company.name') + ->label('COMPANY'), + ExportColumn::make('code') + ->label('CODE'), + ExportColumn::make('name') + ->label('NAME'), + ExportColumn::make('address') + ->label('ADDRESS'), + ExportColumn::make('created_at') + ->label('CREATED AT'), + ExportColumn::make('updated_at') + ->label('UPDATED AT'), + ExportColumn::make('deleted_at') + ->enabledByDefault(false) + ->label('DELETED AT'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your plant 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/Exports/ShiftExporter.php b/app/Filament/Exports/ShiftExporter.php new file mode 100644 index 000000000..61f3847c2 --- /dev/null +++ b/app/Filament/Exports/ShiftExporter.php @@ -0,0 +1,61 @@ +label('ID'), + ExportColumn::make('no') + ->label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + ExportColumn::make('block.name') + ->label('BLOCK'), + ExportColumn::make('plant.name') + ->label('PLANT'), + ExportColumn::make('name') + ->label('NAME'), + ExportColumn::make('start_time') + ->label('START TIME'), + ExportColumn::make('duration') + ->label('DURATION'), + ExportColumn::make('end_time') + ->label('END TIME'), + ExportColumn::make('created_at') + ->label('CREATED AT'), + ExportColumn::make('updated_at') + ->label('UPDATED AT'), + ExportColumn::make('deleted_at') + ->label('DELETED AT') + ->enabledByDefault(false), + ExportColumn::make('status') + ->label('STATUS'), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your shift 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; + } +}