diff --git a/app/Filament/Exports/AxnExporter.php b/app/Filament/Exports/AxnExporter.php new file mode 100644 index 0000000..43fbbb1 --- /dev/null +++ b/app/Filament/Exports/AxnExporter.php @@ -0,0 +1,63 @@ +label('NO') + ->state(function ($record) use (&$rowNumber) { + // Increment and return the row number + return ++$rowNumber; + }), + // ExportColumn::make('plant.code') + // ->label('PLANT CODE'), + // ExportColumn::make('invoice_number') + // ->label('INVOICE NUMBER'), + ExportColumn::make('year') + ->label('YEAR') + ->state(function ($record) { + return substr($record->serial_number, 0, 2); + }), + ExportColumn::make('month') + ->label('MONTH') + ->state(function ($record) { + return substr($record->serial_number, 2, 2); + }), + ExportColumn::make('vendor') + ->label('VENDOR NUMBER') + ->state(function ($record) { + return substr($record->serial_number, 4, 4); + }), + ExportColumn::make('serial_number') + ->label('SERIAL NUMBER') + ->state(function ($record) { + return substr($record->serial_number, 8); + }), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your axn 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/Resources/InvoiceValidationResource.php b/app/Filament/Resources/InvoiceValidationResource.php index bf829be..45ee80d 100644 --- a/app/Filament/Resources/InvoiceValidationResource.php +++ b/app/Filament/Resources/InvoiceValidationResource.php @@ -3,6 +3,7 @@ namespace App\Filament\Resources; use AlperenErsoy\FilamentExport\Actions\FilamentExportBulkAction; +use App\Filament\Exports\AxnExporter; use App\Filament\Exports\InvoiceValidationExporter; use App\Filament\Imports\InvoiceValidationImporter; use App\Filament\Resources\InvoiceValidationResource\Pages; @@ -1141,6 +1142,13 @@ class InvoiceValidationResource extends Resource ->visible(function () { return Filament::auth()->user()->can('view export invoice'); }), + ExportAction::make() + ->label('Export Axn') + ->color('warning') + ->exporter(AxnExporter::class) + ->visible(function () { + return Filament::auth()->user()->can('view export axn invoice'); + }), ]) ->filters([