Andrew Wallo 4 mesi fa
parent
commit
2f05bc0d7e
1 ha cambiato i file con 64 aggiunte e 0 eliminazioni
  1. 64
    0
      app/Filament/Exports/Accounting/BillExporter.php

+ 64
- 0
app/Filament/Exports/Accounting/BillExporter.php Vedi File

@@ -0,0 +1,64 @@
1
+<?php
2
+
3
+namespace App\Filament\Exports\Accounting;
4
+
5
+use App\Enums\Accounting\BillStatus;
6
+use App\Models\Accounting\Bill;
7
+use Filament\Actions\Exports\ExportColumn;
8
+use Filament\Actions\Exports\Exporter;
9
+use Filament\Actions\Exports\Models\Export;
10
+
11
+class BillExporter extends Exporter
12
+{
13
+    protected static ?string $model = Bill::class;
14
+
15
+    public static function getColumns(): array
16
+    {
17
+        return [
18
+            ExportColumn::make('bill_number'),
19
+            ExportColumn::make('date')
20
+                ->date(),
21
+            ExportColumn::make('due_date')
22
+                ->date(),
23
+            ExportColumn::make('vendor.name'),
24
+            ExportColumn::make('status')
25
+                ->formatStateUsing(function (?BillStatus $state) {
26
+                    return $state?->getLabel();
27
+                }),
28
+            ExportColumn::make('total')
29
+                ->money(),
30
+            ExportColumn::make('amount_paid')
31
+                ->money(),
32
+            ExportColumn::make('amount_due')
33
+                ->money(),
34
+            ExportColumn::make('subtotal')
35
+                ->money(),
36
+            ExportColumn::make('tax_total')
37
+                ->money(),
38
+            ExportColumn::make('discount_total')
39
+                ->money(),
40
+            ExportColumn::make('discount_rate'),
41
+            ExportColumn::make('currency_code'),
42
+            ExportColumn::make('order_number'),
43
+            ExportColumn::make('paid_at')
44
+                ->dateTime(),
45
+            ExportColumn::make('notes')
46
+                ->enabledByDefault(false),
47
+            ExportColumn::make('discount_method')
48
+                ->enabledByDefault(false),
49
+            ExportColumn::make('discount_computation')
50
+                ->enabledByDefault(false),
51
+        ];
52
+    }
53
+
54
+    public static function getCompletedNotificationBody(Export $export): string
55
+    {
56
+        $body = 'Your bill export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.';
57
+
58
+        if ($failedRowsCount = $export->getFailedRowsCount()) {
59
+            $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.';
60
+        }
61
+
62
+        return $body;
63
+    }
64
+}

Loading…
Annulla
Salva