label('ID'), ExportColumn::make('no') ->label('NO') ->state(function ($record) use (&$rowNumber) { // Increment and return the row number return ++$rowNumber; }), ExportColumn::make('plan_quantity') ->label('PLAN QUANTITY'), ExportColumn::make('production_quantity') ->label('PRODUCTION QUANTITY'), ExportColumn::make('line.name') ->label('LINE NAME'), ExportColumn::make('shift.block.name') ->label('BLOCK NAME'), ExportColumn::make('shift.name') ->label('SHIFT NAME'), ExportColumn::make('plant.code') ->label('PLANT CODE'), ExportColumn::make('operator_id') ->label('OPERATOR ID'), 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 production plan 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; } }