Selaa lähdekoodia

Estimate exporter

3.x
Andrew Wallo 4 kuukautta sitten
vanhempi
commit
874968a61d
1 muutettua tiedostoa jossa 66 lisäystä ja 0 poistoa
  1. 66
    0
      app/Filament/Exports/Accounting/EstimateExporter.php

+ 66
- 0
app/Filament/Exports/Accounting/EstimateExporter.php Näytä tiedosto

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

Loading…
Peruuta
Tallenna