Andrew Wallo 4 maanden geleden
bovenliggende
commit
4b3d4146d5

+ 1
- 9
app/Casts/JournalEntryCast.php Bestand weergeven

@@ -26,14 +26,6 @@ class JournalEntryCast implements CastsAttributes
26 26
      */
27 27
     public function set(Model $model, string $key, mixed $value, array $attributes): int
28 28
     {
29
-        $currency_code = CurrencyAccessor::getDefaultCurrency();
30
-
31
-        if (is_numeric($value)) {
32
-            $value = (string) $value;
33
-        } elseif (! is_string($value)) {
34
-            throw new UnexpectedValueException('Expected string or numeric value for money cast');
35
-        }
36
-
37
-        return CurrencyConverter::prepareForAccessor($value, $currency_code);
29
+        return (int) $value;
38 30
     }
39 31
 }

+ 1
- 9
app/Casts/MoneyCast.php Bestand weergeven

@@ -26,14 +26,6 @@ class MoneyCast implements CastsAttributes
26 26
      */
27 27
     public function set(Model $model, string $key, mixed $value, array $attributes): int
28 28
     {
29
-        $currency_code = $attributes['currency_code'] ?? CurrencyAccessor::getDefaultCurrency();
30
-
31
-        if (is_numeric($value)) {
32
-            $value = (string) $value;
33
-        } elseif (! is_string($value)) {
34
-            throw new UnexpectedValueException('Expected string or numeric value for money cast');
35
-        }
36
-
37
-        return CurrencyConverter::prepareForAccessor($value, $currency_code);
29
+        return (int) $value;
38 30
     }
39 31
 }

+ 1
- 15
app/Casts/TransactionAmountCast.php Bestand weergeven

@@ -60,21 +60,7 @@ class TransactionAmountCast implements CastsAttributes
60 60
      */
61 61
     public function set(Model $model, string $key, mixed $value, array $attributes): int
62 62
     {
63
-        $bankAccountId = $attributes['bank_account_id'] ?? null;
64
-
65
-        if ($bankAccountId !== null && ! isset(self::$currencyCache[$bankAccountId])) {
66
-            $this->loadMissingBankAccounts([$bankAccountId]);
67
-        }
68
-
69
-        $currencyCode = $this->getCurrencyCodeFromBankAccountId($bankAccountId);
70
-
71
-        if (is_numeric($value)) {
72
-            $value = (string) $value;
73
-        } elseif (! is_string($value)) {
74
-            throw new UnexpectedValueException('Expected string or numeric value for money cast');
75
-        }
76
-
77
-        return CurrencyConverter::prepareForAccessor($value, $currencyCode);
63
+        return (int) $value;
78 64
     }
79 65
 
80 66
     /**

+ 18
- 24
app/Concerns/HasTransactionAction.php Bestand weergeven

@@ -9,12 +9,12 @@ use App\Models\Accounting\JournalEntry;
9 9
 use App\Models\Accounting\Transaction;
10 10
 use App\Models\Banking\BankAccount;
11 11
 use App\Utilities\Currency\CurrencyAccessor;
12
-use App\Utilities\Currency\CurrencyConverter;
13 12
 use Awcodes\TableRepeater\Header;
14 13
 use Closure;
15 14
 use Filament\Forms;
16 15
 use Filament\Forms\Components\Actions\Action as FormAction;
17 16
 use Filament\Forms\Form;
17
+use Filament\Support\RawJs;
18 18
 use Illuminate\Contracts\View\View;
19 19
 use Illuminate\Support\Str;
20 20
 
@@ -91,17 +91,6 @@ trait HasTransactionAction
91 91
                     ->options(fn (?Transaction $transaction) => Transaction::getBankAccountOptions(currentBankAccountId: $transaction?->bank_account_id))
92 92
                     ->live()
93 93
                     ->searchable()
94
-                    ->afterStateUpdated(function (Forms\Set $set, $state, $old, Forms\Get $get) {
95
-                        $amount = CurrencyConverter::convertAndSet(
96
-                            BankAccount::find($state)->account->currency_code,
97
-                            BankAccount::find($old)->account->currency_code ?? CurrencyAccessor::getDefaultCurrency(),
98
-                            $get('amount')
99
-                        );
100
-
101
-                        if ($amount !== null) {
102
-                            $set('amount', $amount);
103
-                        }
104
-                    })
105 94
                     ->required(),
106 95
                 Forms\Components\Select::make('type')
107 96
                     ->label('Type')
@@ -144,17 +133,6 @@ trait HasTransactionAction
144 133
                     ->options(fn (Forms\Get $get, ?Transaction $transaction) => Transaction::getBankAccountOptions(excludedAccountId: $get('account_id'), currentBankAccountId: $transaction?->bank_account_id))
145 134
                     ->live()
146 135
                     ->searchable()
147
-                    ->afterStateUpdated(function (Forms\Set $set, $state, $old, Forms\Get $get) {
148
-                        $amount = CurrencyConverter::convertAndSet(
149
-                            BankAccount::find($state)->account->currency_code,
150
-                            BankAccount::find($old)->account->currency_code ?? CurrencyAccessor::getDefaultCurrency(),
151
-                            $get('amount')
152
-                        );
153
-
154
-                        if ($amount !== null) {
155
-                            $set('amount', $amount);
156
-                        }
157
-                    })
158 136
                     ->required(),
159 137
                 Forms\Components\Select::make('type')
160 138
                     ->label('Type')
@@ -350,7 +328,23 @@ trait HasTransactionAction
350 328
             Forms\Components\TextInput::make('amount')
351 329
                 ->label('Amount')
352 330
                 ->live()
353
-                ->mask(moneyMask(CurrencyAccessor::getDefaultCurrency()))
331
+                ->mask(RawJs::make('$money($input)'))
332
+                ->dehydrateStateUsing(function (?string $state): ?int {
333
+                    if (blank($state)) {
334
+                        return null;
335
+                    }
336
+
337
+                    // Remove thousand separators
338
+                    $cleaned = str_replace(',', '', $state);
339
+
340
+                    // If no decimal point, assume it's whole dollars (add .00)
341
+                    if (! str_contains($cleaned, '.')) {
342
+                        $cleaned .= '.00';
343
+                    }
344
+
345
+                    // Convert to float then to cents (integer)
346
+                    return (int) round((float) $cleaned * 100);
347
+                })
354 348
                 ->afterStateUpdated(function (Forms\Get $get, Forms\Set $set, ?string $state, ?string $old) {
355 349
                     $this->updateJournalEntryAmount(JournalEntryType::parse($get('type')), $state, $old);
356 350
                 })

+ 4
- 4
app/Concerns/ManagesLineItems.php Bestand weergeven

@@ -97,10 +97,10 @@ trait ManagesLineItems
97 97
         $grandTotalCents = $subtotalCents + $taxTotalCents - $discountTotalCents;
98 98
 
99 99
         return [
100
-            'subtotal' => CurrencyConverter::convertCentsToFormatSimple($subtotalCents, $currencyCode),
101
-            'tax_total' => CurrencyConverter::convertCentsToFormatSimple($taxTotalCents, $currencyCode),
102
-            'discount_total' => CurrencyConverter::convertCentsToFormatSimple($discountTotalCents, $currencyCode),
103
-            'total' => CurrencyConverter::convertCentsToFormatSimple($grandTotalCents, $currencyCode),
100
+            'subtotal' => $subtotalCents,
101
+            'tax_total' => $taxTotalCents,
102
+            'discount_total' => $discountTotalCents,
103
+            'total' => $grandTotalCents,
104 104
         ];
105 105
     }
106 106
 

+ 2
- 0
app/Filament/Company/Resources/Accounting/TransactionResource.php Bestand weergeven

@@ -7,6 +7,7 @@ use App\Filament\Company\Resources\Accounting\TransactionResource\Pages;
7 7
 use App\Filament\Forms\Components\DateRangeSelect;
8 8
 use App\Filament\Tables\Actions\EditTransactionAction;
9 9
 use App\Filament\Tables\Actions\ReplicateBulkAction;
10
+use App\Filament\Tables\Columns;
10 11
 use App\Models\Accounting\JournalEntry;
11 12
 use App\Models\Accounting\Transaction;
12 13
 use App\Models\Common\Client;
@@ -55,6 +56,7 @@ class TransactionResource extends Resource
55 56
                     });
56 57
             })
57 58
             ->columns([
59
+                Columns::id(),
58 60
                 Tables\Columns\TextColumn::make('posted_at')
59 61
                     ->label('Date')
60 62
                     ->sortable()

+ 1
- 1
app/Filament/Company/Resources/Sales/InvoiceResource.php Bestand weergeven

@@ -272,7 +272,7 @@ class InvoiceResource extends Resource
272 272
                                                 return;
273 273
                                             }
274 274
 
275
-                                            $unitPrice = CurrencyConverter::convertToFloat($offeringRecord->price, $get('../../currency_code') ?? CurrencyAccessor::getDefaultCurrency());
275
+                                            $unitPrice = CurrencyConverter::convertToFloat($offeringRecord->price, CurrencyAccessor::getDefaultCurrency());
276 276
 
277 277
                                             $set('description', $offeringRecord->description);
278 278
                                             $set('unit_price', $unitPrice);

+ 6
- 11
app/Models/Accounting/Invoice.php Bestand weergeven

@@ -332,7 +332,7 @@ class Invoice extends Document
332 332
         $requiresConversion = $invoiceCurrency !== $bankAccountCurrency;
333 333
 
334 334
         // Store the original payment amount in invoice currency before any conversion
335
-        $amountInInvoiceCurrencyCents = CurrencyConverter::convertToCents($data['amount'], $invoiceCurrency);
335
+        $amountInInvoiceCurrencyCents = $data['amount'];
336 336
 
337 337
         if ($requiresConversion) {
338 338
             $amountInBankCurrencyCents = CurrencyConverter::convertBalance(
@@ -340,12 +340,9 @@ class Invoice extends Document
340 340
                 $invoiceCurrency,
341 341
                 $bankAccountCurrency
342 342
             );
343
-            $formattedAmountForBankCurrency = CurrencyConverter::convertCentsToFormatSimple(
344
-                $amountInBankCurrencyCents,
345
-                $bankAccountCurrency
346
-            );
343
+            $formattedAmountForBankCurrency = $amountInBankCurrencyCents;
347 344
         } else {
348
-            $formattedAmountForBankCurrency = $data['amount']; // Already in simple format
345
+            $formattedAmountForBankCurrency = $amountInInvoiceCurrencyCents;
349 346
         }
350 347
 
351 348
         // Create transaction
@@ -451,7 +448,7 @@ class Invoice extends Document
451 448
                         'company_id' => $this->company_id,
452 449
                         'type' => JournalEntryType::Debit,
453 450
                         'account_id' => Account::getSalesDiscountAccount($this->company_id)->id,
454
-                        'amount' => CurrencyConverter::convertCentsToFormatSimple($lineItemDiscount),
451
+                        'amount' => $lineItemDiscount,
455 452
                         'description' => "{$lineItemDescription} (Proportional Discount)",
456 453
                     ]);
457 454
                 }
@@ -482,11 +479,9 @@ class Invoice extends Document
482 479
         return $amountCents;
483 480
     }
484 481
 
485
-    public function formatAmountToDefaultCurrency(int $amountCents): string
482
+    public function formatAmountToDefaultCurrency(int $amountCents): int
486 483
     {
487
-        $convertedCents = $this->convertAmountToDefaultCurrency($amountCents);
488
-
489
-        return CurrencyConverter::convertCentsToFormatSimple($convertedCents);
484
+        return $this->convertAmountToDefaultCurrency($amountCents);
490 485
     }
491 486
 
492 487
     // TODO: Potentially handle this another way

+ 1
- 1
app/Models/Accounting/Transaction.php Bestand weergeven

@@ -110,7 +110,7 @@ class Transaction extends Model
110 110
     public function updateAmountIfBalanced(): void
111 111
     {
112 112
         if ($this->journalEntries->areBalanced() && $this->journalEntries->sumDebits()->formatSimple() !== $this->getAttributeValue('amount')) {
113
-            $this->setAttribute('amount', $this->journalEntries->sumDebits()->formatSimple());
113
+            $this->setAttribute('amount', $this->journalEntries->sumDebits()->getAmount());
114 114
             $this->save();
115 115
         }
116 116
     }

+ 2
- 2
app/Observers/TransactionObserver.php Bestand weergeven

@@ -183,7 +183,7 @@ class TransactionObserver
183 183
         }
184 184
 
185 185
         $invoice->update([
186
-            'amount_paid' => CurrencyConverter::convertCentsToFormatSimple($totalPaidInInvoiceCurrencyCents, $invoiceCurrency),
186
+            'amount_paid' => $totalPaidInInvoiceCurrencyCents,
187 187
             'status' => $newStatus,
188 188
             'paid_at' => $paidAt,
189 189
         ]);
@@ -236,7 +236,7 @@ class TransactionObserver
236 236
         }
237 237
 
238 238
         $bill->update([
239
-            'amount_paid' => CurrencyConverter::convertCentsToFormatSimple($totalPaidInBillCurrencyCents, $billCurrency),
239
+            'amount_paid' => $totalPaidInBillCurrencyCents,
240 240
             'status' => $newStatus,
241 241
             'paid_at' => $paidAt,
242 242
         ]);

+ 17
- 4
app/Providers/MacroServiceProvider.php Bestand weergeven

@@ -20,6 +20,7 @@ use Filament\Forms\Components\Field;
20 20
 use Filament\Forms\Components\TextInput;
21 21
 use Filament\Infolists\Components\TextEntry;
22 22
 use Filament\Support\Enums\IconPosition;
23
+use Filament\Support\RawJs;
23 24
 use Filament\Tables\Columns\TextColumn;
24 25
 use Filament\Tables\Contracts\HasTable;
25 26
 use Illuminate\Contracts\Support\Htmlable;
@@ -64,11 +65,23 @@ class MacroServiceProvider extends ServiceProvider
64 65
                     });
65 66
             }
66 67
 
67
-            $this->mask(static function (TextInput $component) use ($currency) {
68
-                $currency = $component->evaluate($currency);
68
+            $this->mask(RawJs::make('$money($input)'))
69
+                ->dehydrateStateUsing(function (?string $state): ?int {
70
+                    if (blank($state)) {
71
+                        return null;
72
+                    }
69 73
 
70
-                return moneyMask($currency);
71
-            });
74
+                    // Remove thousand separators
75
+                    $cleaned = str_replace(',', '', $state);
76
+
77
+                    // If no decimal point, assume it's whole dollars (add .00)
78
+                    if (! str_contains($cleaned, '.')) {
79
+                        $cleaned .= '.00';
80
+                    }
81
+
82
+                    // Convert to float then to cents (integer)
83
+                    return (int) round((float) $cleaned * 100);
84
+                });
72 85
 
73 86
             return $this;
74 87
         });

+ 82
- 70
composer.lock Bestand weergeven

@@ -497,16 +497,16 @@
497 497
         },
498 498
         {
499 499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.343.13",
500
+            "version": "3.343.18",
501 501
             "source": {
502 502
                 "type": "git",
503 503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "eb50d111a09ef39675358e74801260ac129ee346"
504
+                "reference": "ae98d503173740cce23b30d2ba2737c49b0d9876"
505 505
             },
506 506
             "dist": {
507 507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/eb50d111a09ef39675358e74801260ac129ee346",
509
-                "reference": "eb50d111a09ef39675358e74801260ac129ee346",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ae98d503173740cce23b30d2ba2737c49b0d9876",
509
+                "reference": "ae98d503173740cce23b30d2ba2737c49b0d9876",
510 510
                 "shasum": ""
511 511
             },
512 512
             "require": {
@@ -588,9 +588,9 @@
588 588
             "support": {
589 589
                 "forum": "https://github.com/aws/aws-sdk-php/discussions",
590 590
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
591
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.343.13"
591
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.343.18"
592 592
             },
593
-            "time": "2025-05-16T18:24:39+00:00"
593
+            "time": "2025-05-23T18:08:18+00:00"
594 594
         },
595 595
         {
596 596
             "name": "aws/aws-sdk-php-laravel",
@@ -1799,16 +1799,16 @@
1799 1799
         },
1800 1800
         {
1801 1801
             "name": "filament/actions",
1802
-            "version": "v3.3.14",
1802
+            "version": "v3.3.16",
1803 1803
             "source": {
1804 1804
                 "type": "git",
1805 1805
                 "url": "https://github.com/filamentphp/actions.git",
1806
-                "reference": "08caa8dec43ebf4192dcd999cca786656a3dbc90"
1806
+                "reference": "66b509aa72fa882ce91218eb743684a9350bc3fb"
1807 1807
             },
1808 1808
             "dist": {
1809 1809
                 "type": "zip",
1810
-                "url": "https://api.github.com/repos/filamentphp/actions/zipball/08caa8dec43ebf4192dcd999cca786656a3dbc90",
1811
-                "reference": "08caa8dec43ebf4192dcd999cca786656a3dbc90",
1810
+                "url": "https://api.github.com/repos/filamentphp/actions/zipball/66b509aa72fa882ce91218eb743684a9350bc3fb",
1811
+                "reference": "66b509aa72fa882ce91218eb743684a9350bc3fb",
1812 1812
                 "shasum": ""
1813 1813
             },
1814 1814
             "require": {
@@ -1848,20 +1848,20 @@
1848 1848
                 "issues": "https://github.com/filamentphp/filament/issues",
1849 1849
                 "source": "https://github.com/filamentphp/filament"
1850 1850
             },
1851
-            "time": "2025-04-30T09:16:43+00:00"
1851
+            "time": "2025-05-19T07:25:24+00:00"
1852 1852
         },
1853 1853
         {
1854 1854
             "name": "filament/filament",
1855
-            "version": "v3.3.14",
1855
+            "version": "v3.3.16",
1856 1856
             "source": {
1857 1857
                 "type": "git",
1858 1858
                 "url": "https://github.com/filamentphp/panels.git",
1859
-                "reference": "2c4783bdd973967cc2dbc2dc518c70b04839ace3"
1859
+                "reference": "ed0a0109e6b2663247fcd73076c95c918bc5b412"
1860 1860
             },
1861 1861
             "dist": {
1862 1862
                 "type": "zip",
1863
-                "url": "https://api.github.com/repos/filamentphp/panels/zipball/2c4783bdd973967cc2dbc2dc518c70b04839ace3",
1864
-                "reference": "2c4783bdd973967cc2dbc2dc518c70b04839ace3",
1863
+                "url": "https://api.github.com/repos/filamentphp/panels/zipball/ed0a0109e6b2663247fcd73076c95c918bc5b412",
1864
+                "reference": "ed0a0109e6b2663247fcd73076c95c918bc5b412",
1865 1865
                 "shasum": ""
1866 1866
             },
1867 1867
             "require": {
@@ -1913,20 +1913,20 @@
1913 1913
                 "issues": "https://github.com/filamentphp/filament/issues",
1914 1914
                 "source": "https://github.com/filamentphp/filament"
1915 1915
             },
1916
-            "time": "2025-04-30T09:16:38+00:00"
1916
+            "time": "2025-05-21T08:45:13+00:00"
1917 1917
         },
1918 1918
         {
1919 1919
             "name": "filament/forms",
1920
-            "version": "v3.3.14",
1920
+            "version": "v3.3.16",
1921 1921
             "source": {
1922 1922
                 "type": "git",
1923 1923
                 "url": "https://github.com/filamentphp/forms.git",
1924
-                "reference": "22e62dc2b4c68018e9846aadf7e8c5310d0e38cf"
1924
+                "reference": "eeb18e482b1addc5fe88d57f59d6b91cb71957ff"
1925 1925
             },
1926 1926
             "dist": {
1927 1927
                 "type": "zip",
1928
-                "url": "https://api.github.com/repos/filamentphp/forms/zipball/22e62dc2b4c68018e9846aadf7e8c5310d0e38cf",
1929
-                "reference": "22e62dc2b4c68018e9846aadf7e8c5310d0e38cf",
1928
+                "url": "https://api.github.com/repos/filamentphp/forms/zipball/eeb18e482b1addc5fe88d57f59d6b91cb71957ff",
1929
+                "reference": "eeb18e482b1addc5fe88d57f59d6b91cb71957ff",
1930 1930
                 "shasum": ""
1931 1931
             },
1932 1932
             "require": {
@@ -1969,11 +1969,11 @@
1969 1969
                 "issues": "https://github.com/filamentphp/filament/issues",
1970 1970
                 "source": "https://github.com/filamentphp/filament"
1971 1971
             },
1972
-            "time": "2025-04-30T09:16:39+00:00"
1972
+            "time": "2025-05-21T08:45:29+00:00"
1973 1973
         },
1974 1974
         {
1975 1975
             "name": "filament/infolists",
1976
-            "version": "v3.3.14",
1976
+            "version": "v3.3.16",
1977 1977
             "source": {
1978 1978
                 "type": "git",
1979 1979
                 "url": "https://github.com/filamentphp/infolists.git",
@@ -2024,16 +2024,16 @@
2024 2024
         },
2025 2025
         {
2026 2026
             "name": "filament/notifications",
2027
-            "version": "v3.3.14",
2027
+            "version": "v3.3.16",
2028 2028
             "source": {
2029 2029
                 "type": "git",
2030 2030
                 "url": "https://github.com/filamentphp/notifications.git",
2031
-                "reference": "edf7960621b2181b4c2fc040b0712fbd5dd036ef"
2031
+                "reference": "356f50e24798a6f06522bfa5123c6ffd054171d3"
2032 2032
             },
2033 2033
             "dist": {
2034 2034
                 "type": "zip",
2035
-                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/edf7960621b2181b4c2fc040b0712fbd5dd036ef",
2036
-                "reference": "edf7960621b2181b4c2fc040b0712fbd5dd036ef",
2035
+                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/356f50e24798a6f06522bfa5123c6ffd054171d3",
2036
+                "reference": "356f50e24798a6f06522bfa5123c6ffd054171d3",
2037 2037
                 "shasum": ""
2038 2038
             },
2039 2039
             "require": {
@@ -2072,20 +2072,20 @@
2072 2072
                 "issues": "https://github.com/filamentphp/filament/issues",
2073 2073
                 "source": "https://github.com/filamentphp/filament"
2074 2074
             },
2075
-            "time": "2025-04-23T06:39:49+00:00"
2075
+            "time": "2025-05-21T08:44:14+00:00"
2076 2076
         },
2077 2077
         {
2078 2078
             "name": "filament/support",
2079
-            "version": "v3.3.14",
2079
+            "version": "v3.3.16",
2080 2080
             "source": {
2081 2081
                 "type": "git",
2082 2082
                 "url": "https://github.com/filamentphp/support.git",
2083
-                "reference": "0ab49fdb2bc937257d6f8e1f7b97a03216a43656"
2083
+                "reference": "537663fa2c5057aa236a189255b623b5124d32d8"
2084 2084
             },
2085 2085
             "dist": {
2086 2086
                 "type": "zip",
2087
-                "url": "https://api.github.com/repos/filamentphp/support/zipball/0ab49fdb2bc937257d6f8e1f7b97a03216a43656",
2088
-                "reference": "0ab49fdb2bc937257d6f8e1f7b97a03216a43656",
2087
+                "url": "https://api.github.com/repos/filamentphp/support/zipball/537663fa2c5057aa236a189255b623b5124d32d8",
2088
+                "reference": "537663fa2c5057aa236a189255b623b5124d32d8",
2089 2089
                 "shasum": ""
2090 2090
             },
2091 2091
             "require": {
@@ -2131,20 +2131,20 @@
2131 2131
                 "issues": "https://github.com/filamentphp/filament/issues",
2132 2132
                 "source": "https://github.com/filamentphp/filament"
2133 2133
             },
2134
-            "time": "2025-04-30T09:16:34+00:00"
2134
+            "time": "2025-05-21T08:45:20+00:00"
2135 2135
         },
2136 2136
         {
2137 2137
             "name": "filament/tables",
2138
-            "version": "v3.3.14",
2138
+            "version": "v3.3.16",
2139 2139
             "source": {
2140 2140
                 "type": "git",
2141 2141
                 "url": "https://github.com/filamentphp/tables.git",
2142
-                "reference": "bb5fad7306c39fdbb08d97982073114ac465bf92"
2142
+                "reference": "64806e3c13caeabb23a8668a7aaf1efc8395df96"
2143 2143
             },
2144 2144
             "dist": {
2145 2145
                 "type": "zip",
2146
-                "url": "https://api.github.com/repos/filamentphp/tables/zipball/bb5fad7306c39fdbb08d97982073114ac465bf92",
2147
-                "reference": "bb5fad7306c39fdbb08d97982073114ac465bf92",
2146
+                "url": "https://api.github.com/repos/filamentphp/tables/zipball/64806e3c13caeabb23a8668a7aaf1efc8395df96",
2147
+                "reference": "64806e3c13caeabb23a8668a7aaf1efc8395df96",
2148 2148
                 "shasum": ""
2149 2149
             },
2150 2150
             "require": {
@@ -2183,11 +2183,11 @@
2183 2183
                 "issues": "https://github.com/filamentphp/filament/issues",
2184 2184
                 "source": "https://github.com/filamentphp/filament"
2185 2185
             },
2186
-            "time": "2025-04-30T09:16:33+00:00"
2186
+            "time": "2025-05-19T07:26:42+00:00"
2187 2187
         },
2188 2188
         {
2189 2189
             "name": "filament/widgets",
2190
-            "version": "v3.3.14",
2190
+            "version": "v3.3.16",
2191 2191
             "source": {
2192 2192
                 "type": "git",
2193 2193
                 "url": "https://github.com/filamentphp/widgets.git",
@@ -2987,16 +2987,16 @@
2987 2987
         },
2988 2988
         {
2989 2989
             "name": "kirschbaum-development/eloquent-power-joins",
2990
-            "version": "4.2.3",
2990
+            "version": "4.2.4",
2991 2991
             "source": {
2992 2992
                 "type": "git",
2993 2993
                 "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git",
2994
-                "reference": "d04e06b12e5e7864c303b8a8c6045bfcd4e2c641"
2994
+                "reference": "4a8012cef7abed8ac3633a180c69138a228b6c4c"
2995 2995
             },
2996 2996
             "dist": {
2997 2997
                 "type": "zip",
2998
-                "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/d04e06b12e5e7864c303b8a8c6045bfcd4e2c641",
2999
-                "reference": "d04e06b12e5e7864c303b8a8c6045bfcd4e2c641",
2998
+                "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/4a8012cef7abed8ac3633a180c69138a228b6c4c",
2999
+                "reference": "4a8012cef7abed8ac3633a180c69138a228b6c4c",
3000 3000
                 "shasum": ""
3001 3001
             },
3002 3002
             "require": {
@@ -3044,9 +3044,9 @@
3044 3044
             ],
3045 3045
             "support": {
3046 3046
                 "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues",
3047
-                "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.3"
3047
+                "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.4"
3048 3048
             },
3049
-            "time": "2025-04-01T14:41:56+00:00"
3049
+            "time": "2025-05-19T14:14:41+00:00"
3050 3050
         },
3051 3051
         {
3052 3052
             "name": "knplabs/knp-snappy",
@@ -3117,16 +3117,16 @@
3117 3117
         },
3118 3118
         {
3119 3119
             "name": "laravel/framework",
3120
-            "version": "v11.44.7",
3120
+            "version": "v11.45.0",
3121 3121
             "source": {
3122 3122
                 "type": "git",
3123 3123
                 "url": "https://github.com/laravel/framework.git",
3124
-                "reference": "00bc6ac91a6d577bf051c18ddaa638c0d221e1c7"
3124
+                "reference": "d0730deb427632004d24801be7ca1ed2c10fbc4e"
3125 3125
             },
3126 3126
             "dist": {
3127 3127
                 "type": "zip",
3128
-                "url": "https://api.github.com/repos/laravel/framework/zipball/00bc6ac91a6d577bf051c18ddaa638c0d221e1c7",
3129
-                "reference": "00bc6ac91a6d577bf051c18ddaa638c0d221e1c7",
3128
+                "url": "https://api.github.com/repos/laravel/framework/zipball/d0730deb427632004d24801be7ca1ed2c10fbc4e",
3129
+                "reference": "d0730deb427632004d24801be7ca1ed2c10fbc4e",
3130 3130
                 "shasum": ""
3131 3131
             },
3132 3132
             "require": {
@@ -3147,7 +3147,7 @@
3147 3147
                 "guzzlehttp/uri-template": "^1.0",
3148 3148
                 "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0",
3149 3149
                 "laravel/serializable-closure": "^1.3|^2.0",
3150
-                "league/commonmark": "^2.6",
3150
+                "league/commonmark": "^2.7",
3151 3151
                 "league/flysystem": "^3.25.1",
3152 3152
                 "league/flysystem-local": "^3.25.1",
3153 3153
                 "league/uri": "^7.5.1",
@@ -3234,7 +3234,7 @@
3234 3234
                 "league/flysystem-read-only": "^3.25.1",
3235 3235
                 "league/flysystem-sftp-v3": "^3.25.1",
3236 3236
                 "mockery/mockery": "^1.6.10",
3237
-                "orchestra/testbench-core": "^9.11.2",
3237
+                "orchestra/testbench-core": "^9.13.2",
3238 3238
                 "pda/pheanstalk": "^5.0.6",
3239 3239
                 "php-http/discovery": "^1.15",
3240 3240
                 "phpstan/phpstan": "^2.0",
@@ -3328,7 +3328,7 @@
3328 3328
                 "issues": "https://github.com/laravel/framework/issues",
3329 3329
                 "source": "https://github.com/laravel/framework"
3330 3330
             },
3331
-            "time": "2025-04-25T12:40:47+00:00"
3331
+            "time": "2025-05-20T15:15:58+00:00"
3332 3332
         },
3333 3333
         {
3334 3334
             "name": "laravel/prompts",
@@ -5207,16 +5207,16 @@
5207 5207
         },
5208 5208
         {
5209 5209
             "name": "openspout/openspout",
5210
-            "version": "v4.29.1",
5210
+            "version": "v4.30.0",
5211 5211
             "source": {
5212 5212
                 "type": "git",
5213 5213
                 "url": "https://github.com/openspout/openspout.git",
5214
-                "reference": "ec83106bc3922fe94c9d37976ba6b7259511c4c5"
5214
+                "reference": "df9b0f4d229c37c3caa5a9252a6ad8a94efb0fb5"
5215 5215
             },
5216 5216
             "dist": {
5217 5217
                 "type": "zip",
5218
-                "url": "https://api.github.com/repos/openspout/openspout/zipball/ec83106bc3922fe94c9d37976ba6b7259511c4c5",
5219
-                "reference": "ec83106bc3922fe94c9d37976ba6b7259511c4c5",
5218
+                "url": "https://api.github.com/repos/openspout/openspout/zipball/df9b0f4d229c37c3caa5a9252a6ad8a94efb0fb5",
5219
+                "reference": "df9b0f4d229c37c3caa5a9252a6ad8a94efb0fb5",
5220 5220
                 "shasum": ""
5221 5221
             },
5222 5222
             "require": {
@@ -5230,13 +5230,13 @@
5230 5230
             },
5231 5231
             "require-dev": {
5232 5232
                 "ext-zlib": "*",
5233
-                "friendsofphp/php-cs-fixer": "^3.71.0",
5233
+                "friendsofphp/php-cs-fixer": "^3.75.0",
5234 5234
                 "infection/infection": "^0.29.14",
5235
-                "phpbench/phpbench": "^1.4.0",
5236
-                "phpstan/phpstan": "^2.1.8",
5237
-                "phpstan/phpstan-phpunit": "^2.0.4",
5238
-                "phpstan/phpstan-strict-rules": "^2.0.3",
5239
-                "phpunit/phpunit": "^12.0.7"
5235
+                "phpbench/phpbench": "^1.4.1",
5236
+                "phpstan/phpstan": "^2.1.16",
5237
+                "phpstan/phpstan-phpunit": "^2.0.6",
5238
+                "phpstan/phpstan-strict-rules": "^2.0.4",
5239
+                "phpunit/phpunit": "^12.1.5"
5240 5240
             },
5241 5241
             "suggest": {
5242 5242
                 "ext-iconv": "To handle non UTF-8 CSV files (if \"php-mbstring\" is not already installed or is too limited)",
@@ -5284,7 +5284,7 @@
5284 5284
             ],
5285 5285
             "support": {
5286 5286
                 "issues": "https://github.com/openspout/openspout/issues",
5287
-                "source": "https://github.com/openspout/openspout/tree/v4.29.1"
5287
+                "source": "https://github.com/openspout/openspout/tree/v4.30.0"
5288 5288
             },
5289 5289
             "funding": [
5290 5290
                 {
@@ -5296,7 +5296,7 @@
5296 5296
                     "type": "github"
5297 5297
                 }
5298 5298
             ],
5299
-            "time": "2025-03-11T14:40:46+00:00"
5299
+            "time": "2025-05-20T12:33:06+00:00"
5300 5300
         },
5301 5301
         {
5302 5302
             "name": "paragonie/constant_time_encoding",
@@ -11893,23 +11893,23 @@
11893 11893
         },
11894 11894
         {
11895 11895
             "name": "sebastian/environment",
11896
-            "version": "7.2.0",
11896
+            "version": "7.2.1",
11897 11897
             "source": {
11898 11898
                 "type": "git",
11899 11899
                 "url": "https://github.com/sebastianbergmann/environment.git",
11900
-                "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5"
11900
+                "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4"
11901 11901
             },
11902 11902
             "dist": {
11903 11903
                 "type": "zip",
11904
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5",
11905
-                "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5",
11904
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4",
11905
+                "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4",
11906 11906
                 "shasum": ""
11907 11907
             },
11908 11908
             "require": {
11909 11909
                 "php": ">=8.2"
11910 11910
             },
11911 11911
             "require-dev": {
11912
-                "phpunit/phpunit": "^11.0"
11912
+                "phpunit/phpunit": "^11.3"
11913 11913
             },
11914 11914
             "suggest": {
11915 11915
                 "ext-posix": "*"
@@ -11945,15 +11945,27 @@
11945 11945
             "support": {
11946 11946
                 "issues": "https://github.com/sebastianbergmann/environment/issues",
11947 11947
                 "security": "https://github.com/sebastianbergmann/environment/security/policy",
11948
-                "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0"
11948
+                "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1"
11949 11949
             },
11950 11950
             "funding": [
11951 11951
                 {
11952 11952
                     "url": "https://github.com/sebastianbergmann",
11953 11953
                     "type": "github"
11954
+                },
11955
+                {
11956
+                    "url": "https://liberapay.com/sebastianbergmann",
11957
+                    "type": "liberapay"
11958
+                },
11959
+                {
11960
+                    "url": "https://thanks.dev/u/gh/sebastianbergmann",
11961
+                    "type": "thanks_dev"
11962
+                },
11963
+                {
11964
+                    "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
11965
+                    "type": "tidelift"
11954 11966
                 }
11955 11967
             ],
11956
-            "time": "2024-07-03T04:54:44+00:00"
11968
+            "time": "2025-05-21T11:55:47+00:00"
11957 11969
         },
11958 11970
         {
11959 11971
             "name": "sebastian/exporter",

Laden…
Annuleren
Opslaan