Andrew Wallo il y a 8 mois
Parent
révision
1cc608a80b

+ 44
- 42
app/Filament/Company/Pages/Accounting/Transactions.php Voir le fichier

@@ -389,49 +389,51 @@ class Transactions extends Page implements HasTable
389 389
                     ->disabled(fn (Transaction $transaction): bool => $transaction->isUncategorized())
390 390
                     ->action(fn (Transaction $transaction) => $transaction->update(['reviewed' => ! $transaction->reviewed])),
391 391
                 Tables\Actions\ActionGroup::make([
392
-                    Tables\Actions\EditAction::make('updateTransaction')
393
-                        ->label('Edit Transaction')
394
-                        ->modalHeading('Edit Transaction')
395
-                        ->modalWidth(MaxWidth::ThreeExtraLarge)
396
-                        ->form(fn (Form $form) => $this->transactionForm($form))
397
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isStandard()),
398
-                    Tables\Actions\EditAction::make('updateTransfer')
399
-                        ->label('Edit Transfer')
400
-                        ->modalHeading('Edit Transfer')
401
-                        ->modalWidth(MaxWidth::ThreeExtraLarge)
402
-                        ->form(fn (Form $form) => $this->transferForm($form))
403
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isTransfer()),
404
-                    Tables\Actions\EditAction::make('updateJournalTransaction')
405
-                        ->label('Edit Journal Transaction')
406
-                        ->modalHeading('Journal Entry')
407
-                        ->modalWidth(MaxWidth::Screen)
408
-                        ->form(fn (Form $form) => $this->journalTransactionForm($form))
409
-                        ->afterFormFilled(function (Transaction $transaction) {
410
-                            $debitAmounts = $transaction->journalEntries->sumDebits()->getAmount();
411
-                            $creditAmounts = $transaction->journalEntries->sumCredits()->getAmount();
412
-
413
-                            $this->setDebitAmount($debitAmounts);
414
-                            $this->setCreditAmount($creditAmounts);
415
-                        })
416
-                        ->modalSubmitAction(fn (Actions\StaticAction $action) => $action->disabled(! $this->isJournalEntryBalanced()))
417
-                        ->after(fn (Transaction $transaction) => $transaction->updateAmountIfBalanced())
418
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isJournal()),
392
+                    Tables\Actions\ActionGroup::make([
393
+                        Tables\Actions\EditAction::make('editTransaction')
394
+                            ->label('Edit Transaction')
395
+                            ->modalHeading('Edit Transaction')
396
+                            ->modalWidth(MaxWidth::ThreeExtraLarge)
397
+                            ->form(fn (Form $form) => $this->transactionForm($form))
398
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isStandard()),
399
+                        Tables\Actions\EditAction::make('editTransfer')
400
+                            ->label('Edit Transfer')
401
+                            ->modalHeading('Edit Transfer')
402
+                            ->modalWidth(MaxWidth::ThreeExtraLarge)
403
+                            ->form(fn (Form $form) => $this->transferForm($form))
404
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isTransfer()),
405
+                        Tables\Actions\EditAction::make('editJournalTransaction')
406
+                            ->label('Edit Journal Transaction')
407
+                            ->modalHeading('Journal Entry')
408
+                            ->modalWidth(MaxWidth::Screen)
409
+                            ->form(fn (Form $form) => $this->journalTransactionForm($form))
410
+                            ->afterFormFilled(function (Transaction $transaction) {
411
+                                $debitAmounts = $transaction->journalEntries->sumDebits()->getAmount();
412
+                                $creditAmounts = $transaction->journalEntries->sumCredits()->getAmount();
413
+
414
+                                $this->setDebitAmount($debitAmounts);
415
+                                $this->setCreditAmount($creditAmounts);
416
+                            })
417
+                            ->modalSubmitAction(fn (Actions\StaticAction $action) => $action->disabled(! $this->isJournalEntryBalanced()))
418
+                            ->after(fn (Transaction $transaction) => $transaction->updateAmountIfBalanced())
419
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isJournal()),
420
+                        Tables\Actions\ReplicateAction::make()
421
+                            ->excludeAttributes(['created_by', 'updated_by', 'created_at', 'updated_at'])
422
+                            ->modal(false)
423
+                            ->beforeReplicaSaved(static function (Transaction $replica) {
424
+                                $replica->description = '(Copy of) ' . $replica->description;
425
+                            })
426
+                            ->after(static function (Transaction $original, Transaction $replica) {
427
+                                $original->journalEntries->each(function (JournalEntry $entry) use ($replica) {
428
+                                    $entry->replicate([
429
+                                        'transaction_id',
430
+                                    ])->fill([
431
+                                        'transaction_id' => $replica->id,
432
+                                    ])->save();
433
+                                });
434
+                            }),
435
+                    ])->dropdown(false),
419 436
                     Tables\Actions\DeleteAction::make(),
420
-                    Tables\Actions\ReplicateAction::make()
421
-                        ->excludeAttributes(['created_by', 'updated_by', 'created_at', 'updated_at'])
422
-                        ->modal(false)
423
-                        ->beforeReplicaSaved(static function (Transaction $replica) {
424
-                            $replica->description = '(Copy of) ' . $replica->description;
425
-                        })
426
-                        ->after(static function (Transaction $original, Transaction $replica) {
427
-                            $original->journalEntries->each(function (JournalEntry $entry) use ($replica) {
428
-                                $entry->replicate([
429
-                                    'transaction_id',
430
-                                ])->fill([
431
-                                    'transaction_id' => $replica->id,
432
-                                ])->save();
433
-                            });
434
-                        }),
435 437
                 ]),
436 438
             ])
437 439
             ->bulkActions([

+ 77
- 75
app/Filament/Company/Resources/Purchases/BillResource.php Voir le fichier

@@ -294,83 +294,85 @@ class BillResource extends Resource
294 294
             ])
295 295
             ->actions([
296 296
                 Tables\Actions\ActionGroup::make([
297
-                    Tables\Actions\EditAction::make(),
298
-                    Tables\Actions\ViewAction::make(),
299
-                    Tables\Actions\DeleteAction::make(),
300
-                    Bill::getReplicateAction(Tables\Actions\ReplicateAction::class),
301
-                    Tables\Actions\Action::make('recordPayment')
302
-                        ->label('Record Payment')
303
-                        ->stickyModalHeader()
304
-                        ->stickyModalFooter()
305
-                        ->modalFooterActionsAlignment(Alignment::End)
306
-                        ->modalWidth(MaxWidth::TwoExtraLarge)
307
-                        ->icon('heroicon-o-credit-card')
308
-                        ->visible(function (Bill $record) {
309
-                            return $record->canRecordPayment();
310
-                        })
311
-                        ->mountUsing(function (Bill $record, Form $form) {
312
-                            $form->fill([
313
-                                'posted_at' => now(),
314
-                                'amount' => $record->amount_due,
315
-                            ]);
316
-                        })
317
-                        ->databaseTransaction()
318
-                        ->successNotificationTitle('Payment Recorded')
319
-                        ->form([
320
-                            Forms\Components\DatePicker::make('posted_at')
321
-                                ->label('Date'),
322
-                            Forms\Components\TextInput::make('amount')
323
-                                ->label('Amount')
324
-                                ->required()
325
-                                ->money(fn (Bill $record) => $record->currency_code)
326
-                                ->live(onBlur: true)
327
-                                ->helperText(function (Bill $record, $state) {
328
-                                    $billCurrency = $record->currency_code;
329
-                                    if (! CurrencyConverter::isValidAmount($state, $billCurrency)) {
330
-                                        return null;
331
-                                    }
332
-
333
-                                    $amountDue = $record->getRawOriginal('amount_due');
334
-                                    $amount = CurrencyConverter::convertToCents($state, $billCurrency);
335
-
336
-                                    if ($amount <= 0) {
337
-                                        return 'Please enter a valid positive amount';
338
-                                    }
339
-
340
-                                    $newAmountDue = $amountDue - $amount;
341
-
342
-                                    return match (true) {
343
-                                        $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $billCurrency),
344
-                                        $newAmountDue === 0 => 'Bill will be fully paid',
345
-                                        default => 'Amount exceeds bill total by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $billCurrency),
346
-                                    };
347
-                                })
348
-                                ->rules([
349
-                                    static fn (Bill $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
350
-                                        if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
351
-                                            $fail('Please enter a valid amount');
297
+                    Tables\Actions\ActionGroup::make([
298
+                        Tables\Actions\EditAction::make(),
299
+                        Tables\Actions\ViewAction::make(),
300
+                        Bill::getReplicateAction(Tables\Actions\ReplicateAction::class),
301
+                        Tables\Actions\Action::make('recordPayment')
302
+                            ->label('Record Payment')
303
+                            ->stickyModalHeader()
304
+                            ->stickyModalFooter()
305
+                            ->modalFooterActionsAlignment(Alignment::End)
306
+                            ->modalWidth(MaxWidth::TwoExtraLarge)
307
+                            ->icon('heroicon-o-credit-card')
308
+                            ->visible(function (Bill $record) {
309
+                                return $record->canRecordPayment();
310
+                            })
311
+                            ->mountUsing(function (Bill $record, Form $form) {
312
+                                $form->fill([
313
+                                    'posted_at' => now(),
314
+                                    'amount' => $record->amount_due,
315
+                                ]);
316
+                            })
317
+                            ->databaseTransaction()
318
+                            ->successNotificationTitle('Payment Recorded')
319
+                            ->form([
320
+                                Forms\Components\DatePicker::make('posted_at')
321
+                                    ->label('Date'),
322
+                                Forms\Components\TextInput::make('amount')
323
+                                    ->label('Amount')
324
+                                    ->required()
325
+                                    ->money(fn (Bill $record) => $record->currency_code)
326
+                                    ->live(onBlur: true)
327
+                                    ->helperText(function (Bill $record, $state) {
328
+                                        $billCurrency = $record->currency_code;
329
+                                        if (! CurrencyConverter::isValidAmount($state, $billCurrency)) {
330
+                                            return null;
352 331
                                         }
353
-                                    },
354
-                                ]),
355
-                            Forms\Components\Select::make('payment_method')
356
-                                ->label('Payment Method')
357
-                                ->required()
358
-                                ->options(PaymentMethod::class),
359
-                            Forms\Components\Select::make('bank_account_id')
360
-                                ->label('Account')
361
-                                ->required()
362
-                                ->options(BankAccount::query()
363
-                                    ->get()
364
-                                    ->pluck('account.name', 'id'))
365
-                                ->searchable(),
366
-                            Forms\Components\Textarea::make('notes')
367
-                                ->label('Notes'),
368
-                        ])
369
-                        ->action(function (Bill $record, Tables\Actions\Action $action, array $data) {
370
-                            $record->recordPayment($data);
371 332
 
372
-                            $action->success();
373
-                        }),
333
+                                        $amountDue = $record->getRawOriginal('amount_due');
334
+                                        $amount = CurrencyConverter::convertToCents($state, $billCurrency);
335
+
336
+                                        if ($amount <= 0) {
337
+                                            return 'Please enter a valid positive amount';
338
+                                        }
339
+
340
+                                        $newAmountDue = $amountDue - $amount;
341
+
342
+                                        return match (true) {
343
+                                            $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $billCurrency),
344
+                                            $newAmountDue === 0 => 'Bill will be fully paid',
345
+                                            default => 'Amount exceeds bill total by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $billCurrency),
346
+                                        };
347
+                                    })
348
+                                    ->rules([
349
+                                        static fn (Bill $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
350
+                                            if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
351
+                                                $fail('Please enter a valid amount');
352
+                                            }
353
+                                        },
354
+                                    ]),
355
+                                Forms\Components\Select::make('payment_method')
356
+                                    ->label('Payment Method')
357
+                                    ->required()
358
+                                    ->options(PaymentMethod::class),
359
+                                Forms\Components\Select::make('bank_account_id')
360
+                                    ->label('Account')
361
+                                    ->required()
362
+                                    ->options(BankAccount::query()
363
+                                        ->get()
364
+                                        ->pluck('account.name', 'id'))
365
+                                    ->searchable(),
366
+                                Forms\Components\Textarea::make('notes')
367
+                                    ->label('Notes'),
368
+                            ])
369
+                            ->action(function (Bill $record, Tables\Actions\Action $action, array $data) {
370
+                                $record->recordPayment($data);
371
+
372
+                                $action->success();
373
+                            }),
374
+                    ])->dropdown(false),
375
+                    Tables\Actions\DeleteAction::make(),
374 376
                 ]),
375 377
             ])
376 378
             ->bulkActions([

+ 6
- 2
app/Filament/Company/Resources/Purchases/BillResource/Pages/ViewBill.php Voir le fichier

@@ -25,10 +25,14 @@ class ViewBill extends ViewRecord
25 25
     protected function getHeaderActions(): array
26 26
     {
27 27
         return [
28
+            Actions\EditAction::make()
29
+                ->label('Edit Bill')
30
+                ->outlined(),
28 31
             Actions\ActionGroup::make([
29
-                Actions\EditAction::make(),
32
+                Actions\ActionGroup::make([
33
+                    Bill::getReplicateAction(),
34
+                ])->dropdown(false),
30 35
                 Actions\DeleteAction::make(),
31
-                Bill::getReplicateAction(),
32 36
             ])
33 37
                 ->label('Actions')
34 38
                 ->button()

+ 5
- 2
app/Filament/Company/Resources/Purchases/VendorResource.php Voir le fichier

@@ -212,8 +212,11 @@ class VendorResource extends Resource
212 212
             ])
213 213
             ->actions([
214 214
                 Tables\Actions\ActionGroup::make([
215
-                    Tables\Actions\EditAction::make(),
216
-                    Tables\Actions\ViewAction::make(),
215
+                    Tables\Actions\ActionGroup::make([
216
+                        Tables\Actions\EditAction::make(),
217
+                        Tables\Actions\ViewAction::make(),
218
+                    ])->dropdown(false),
219
+                    Tables\Actions\DeleteAction::make(),
217 220
                 ]),
218 221
             ])
219 222
             ->bulkActions([

+ 32
- 0
app/Filament/Company/Resources/Purchases/VendorResource/Pages/ViewVendor.php Voir le fichier

@@ -2,12 +2,19 @@
2 2
 
3 3
 namespace App\Filament\Company\Resources\Purchases\VendorResource\Pages;
4 4
 
5
+use App\Filament\Company\Resources\Purchases\BillResource\Pages\CreateBill;
5 6
 use App\Filament\Company\Resources\Purchases\VendorResource;
6 7
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers;
8
+use Filament\Actions\Action;
9
+use Filament\Actions\ActionGroup;
10
+use Filament\Actions\DeleteAction;
11
+use Filament\Actions\EditAction;
7 12
 use Filament\Infolists\Components\Section;
8 13
 use Filament\Infolists\Components\TextEntry;
9 14
 use Filament\Infolists\Infolist;
10 15
 use Filament\Resources\Pages\ViewRecord;
16
+use Filament\Support\Enums\IconPosition;
17
+use Filament\Support\Enums\IconSize;
11 18
 
12 19
 class ViewVendor extends ViewRecord
13 20
 {
@@ -25,6 +32,31 @@ class ViewVendor extends ViewRecord
25 32
         return $this->record->name;
26 33
     }
27 34
 
35
+    protected function getHeaderActions(): array
36
+    {
37
+        return [
38
+            EditAction::make()
39
+                ->label('Edit Vendor')
40
+                ->outlined(),
41
+            ActionGroup::make([
42
+                ActionGroup::make([
43
+                    Action::make('newBill')
44
+                        ->label('New Bill')
45
+                        ->icon('heroicon-m-document-plus')
46
+                        ->url(CreateBill::getUrl(['vendor' => $this->record->getKey()])),
47
+                ])->dropdown(false),
48
+                DeleteAction::make(),
49
+            ])
50
+                ->label('Actions')
51
+                ->button()
52
+                ->outlined()
53
+                ->dropdownPlacement('bottom-end')
54
+                ->icon('heroicon-c-chevron-down')
55
+                ->iconSize(IconSize::Small)
56
+                ->iconPosition(IconPosition::After),
57
+        ];
58
+    }
59
+
28 60
     protected function getHeaderWidgets(): array
29 61
     {
30 62
         return [

+ 5
- 2
app/Filament/Company/Resources/Sales/ClientResource.php Voir le fichier

@@ -304,8 +304,11 @@ class ClientResource extends Resource
304 304
             ])
305 305
             ->actions([
306 306
                 Tables\Actions\ActionGroup::make([
307
-                    Tables\Actions\EditAction::make(),
308
-                    Tables\Actions\ViewAction::make(),
307
+                    Tables\Actions\ActionGroup::make([
308
+                        Tables\Actions\EditAction::make(),
309
+                        Tables\Actions\ViewAction::make(),
310
+                    ])->dropdown(false),
311
+                    Tables\Actions\DeleteAction::make(),
309 312
                 ]),
310 313
             ])
311 314
             ->bulkActions([

+ 42
- 0
app/Filament/Company/Resources/Sales/ClientResource/Pages/ViewClient.php Voir le fichier

@@ -4,10 +4,19 @@ namespace App\Filament\Company\Resources\Sales\ClientResource\Pages;
4 4
 
5 5
 use App\Filament\Company\Resources\Sales\ClientResource;
6 6
 use App\Filament\Company\Resources\Sales\ClientResource\RelationManagers;
7
+use App\Filament\Company\Resources\Sales\EstimateResource\Pages\CreateEstimate;
8
+use App\Filament\Company\Resources\Sales\InvoiceResource\Pages\CreateInvoice;
9
+use App\Filament\Company\Resources\Sales\RecurringInvoiceResource\Pages\CreateRecurringInvoice;
10
+use Filament\Actions\Action;
11
+use Filament\Actions\ActionGroup;
12
+use Filament\Actions\DeleteAction;
13
+use Filament\Actions\EditAction;
7 14
 use Filament\Infolists\Components\Section;
8 15
 use Filament\Infolists\Components\TextEntry;
9 16
 use Filament\Infolists\Infolist;
10 17
 use Filament\Resources\Pages\ViewRecord;
18
+use Filament\Support\Enums\IconPosition;
19
+use Filament\Support\Enums\IconSize;
11 20
 use Illuminate\Contracts\Support\Htmlable;
12 21
 
13 22
 class ViewClient extends ViewRecord
@@ -28,6 +37,39 @@ class ViewClient extends ViewRecord
28 37
         return $this->record->name;
29 38
     }
30 39
 
40
+    protected function getHeaderActions(): array
41
+    {
42
+        return [
43
+            EditAction::make()
44
+                ->label('Edit Client')
45
+                ->outlined(),
46
+            ActionGroup::make([
47
+                ActionGroup::make([
48
+                    Action::make('newInvoice')
49
+                        ->label('New Invoice')
50
+                        ->icon('heroicon-m-document-plus')
51
+                        ->url(CreateInvoice::getUrl(['client' => $this->record->getKey()])),
52
+                    Action::make('newEstimate')
53
+                        ->label('New Estimate')
54
+                        ->icon('heroicon-m-document-duplicate')
55
+                        ->url(CreateEstimate::getUrl(['client' => $this->record->getKey()])),
56
+                    Action::make('newRecurringInvoice')
57
+                        ->label('New Recurring Invoice')
58
+                        ->icon('heroicon-m-arrow-path')
59
+                        ->url(CreateRecurringInvoice::getUrl(['client' => $this->record->getKey()])),
60
+                ])->dropdown(false),
61
+                DeleteAction::make(),
62
+            ])
63
+                ->label('Actions')
64
+                ->button()
65
+                ->outlined()
66
+                ->dropdownPlacement('bottom-end')
67
+                ->icon('heroicon-c-chevron-down')
68
+                ->iconSize(IconSize::Small)
69
+                ->iconPosition(IconPosition::After),
70
+        ];
71
+    }
72
+
31 73
     protected function getHeaderWidgets(): array
32 74
     {
33 75
         return [

+ 10
- 8
app/Filament/Company/Resources/Sales/EstimateResource.php Voir le fichier

@@ -329,15 +329,17 @@ class EstimateResource extends Resource
329 329
             ])
330 330
             ->actions([
331 331
                 Tables\Actions\ActionGroup::make([
332
-                    Tables\Actions\EditAction::make(),
333
-                    Tables\Actions\ViewAction::make(),
332
+                    Tables\Actions\ActionGroup::make([
333
+                        Tables\Actions\EditAction::make(),
334
+                        Tables\Actions\ViewAction::make(),
335
+                        Estimate::getReplicateAction(Tables\Actions\ReplicateAction::class),
336
+                        Estimate::getApproveDraftAction(Tables\Actions\Action::class),
337
+                        Estimate::getMarkAsSentAction(Tables\Actions\Action::class),
338
+                        Estimate::getMarkAsAcceptedAction(Tables\Actions\Action::class),
339
+                        Estimate::getMarkAsDeclinedAction(Tables\Actions\Action::class),
340
+                        Estimate::getConvertToInvoiceAction(Tables\Actions\Action::class),
341
+                    ])->dropdown(false),
334 342
                     Tables\Actions\DeleteAction::make(),
335
-                    Estimate::getReplicateAction(Tables\Actions\ReplicateAction::class),
336
-                    Estimate::getApproveDraftAction(Tables\Actions\Action::class),
337
-                    Estimate::getMarkAsSentAction(Tables\Actions\Action::class),
338
-                    Estimate::getMarkAsAcceptedAction(Tables\Actions\Action::class),
339
-                    Estimate::getMarkAsDeclinedAction(Tables\Actions\Action::class),
340
-                    Estimate::getConvertToInvoiceAction(Tables\Actions\Action::class),
341 343
                 ]),
342 344
             ])
343 345
             ->bulkActions([

+ 11
- 7
app/Filament/Company/Resources/Sales/EstimateResource/Pages/ViewEstimate.php Voir le fichier

@@ -34,15 +34,19 @@ class ViewEstimate extends ViewRecord
34 34
     protected function getHeaderActions(): array
35 35
     {
36 36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Estimate')
39
+                ->outlined(),
37 40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    Estimate::getApproveDraftAction(),
43
+                    Estimate::getMarkAsSentAction(),
44
+                    Estimate::getMarkAsAcceptedAction(),
45
+                    Estimate::getMarkAsDeclinedAction(),
46
+                    Estimate::getReplicateAction(),
47
+                    Estimate::getConvertToInvoiceAction(),
48
+                ])->dropdown(false),
39 49
                 Actions\DeleteAction::make(),
40
-                Estimate::getApproveDraftAction(),
41
-                Estimate::getMarkAsSentAction(),
42
-                Estimate::getMarkAsAcceptedAction(),
43
-                Estimate::getMarkAsDeclinedAction(),
44
-                Estimate::getReplicateAction(),
45
-                Estimate::getConvertToInvoiceAction(),
46 50
             ])
47 51
                 ->label('Actions')
48 52
                 ->button()

+ 86
- 84
app/Filament/Company/Resources/Sales/InvoiceResource.php Voir le fichier

@@ -395,92 +395,94 @@ class InvoiceResource extends Resource
395 395
             ])
396 396
             ->actions([
397 397
                 Tables\Actions\ActionGroup::make([
398
-                    Tables\Actions\EditAction::make()
399
-                        ->url(static fn (Invoice $record) => Pages\EditInvoice::getUrl(['record' => $record])),
400
-                    Tables\Actions\ViewAction::make()
401
-                        ->url(static fn (Invoice $record) => Pages\ViewInvoice::getUrl(['record' => $record])),
402
-                    Tables\Actions\DeleteAction::make(),
403
-                    Invoice::getReplicateAction(Tables\Actions\ReplicateAction::class),
404
-                    Invoice::getApproveDraftAction(Tables\Actions\Action::class),
405
-                    Invoice::getMarkAsSentAction(Tables\Actions\Action::class),
406
-                    Tables\Actions\Action::make('recordPayment')
407
-                        ->label(fn (Invoice $record) => $record->status === InvoiceStatus::Overpaid ? 'Refund Overpayment' : 'Record Payment')
408
-                        ->stickyModalHeader()
409
-                        ->stickyModalFooter()
410
-                        ->modalFooterActionsAlignment(Alignment::End)
411
-                        ->modalWidth(MaxWidth::TwoExtraLarge)
412
-                        ->icon('heroicon-o-credit-card')
413
-                        ->visible(function (Invoice $record) {
414
-                            return $record->canRecordPayment();
415
-                        })
416
-                        ->mountUsing(function (Invoice $record, Form $form) {
417
-                            $form->fill([
418
-                                'posted_at' => now(),
419
-                                'amount' => $record->status === InvoiceStatus::Overpaid ? ltrim($record->amount_due, '-') : $record->amount_due,
420
-                            ]);
421
-                        })
422
-                        ->databaseTransaction()
423
-                        ->successNotificationTitle('Payment Recorded')
424
-                        ->form([
425
-                            Forms\Components\DatePicker::make('posted_at')
426
-                                ->label('Date'),
427
-                            Forms\Components\TextInput::make('amount')
428
-                                ->label('Amount')
429
-                                ->required()
430
-                                ->money(fn (Invoice $record) => $record->currency_code)
431
-                                ->live(onBlur: true)
432
-                                ->helperText(function (Invoice $record, $state) {
433
-                                    $invoiceCurrency = $record->currency_code;
434
-                                    if (! CurrencyConverter::isValidAmount($state, $invoiceCurrency)) {
435
-                                        return null;
436
-                                    }
437
-
438
-                                    $amountDue = $record->getRawOriginal('amount_due');
439
-
440
-                                    $amount = CurrencyConverter::convertToCents($state, $invoiceCurrency);
441
-
442
-                                    if ($amount <= 0) {
443
-                                        return 'Please enter a valid positive amount';
444
-                                    }
445
-
446
-                                    if ($record->status === InvoiceStatus::Overpaid) {
447
-                                        $newAmountDue = $amountDue + $amount;
448
-                                    } else {
449
-                                        $newAmountDue = $amountDue - $amount;
450
-                                    }
451
-
452
-                                    return match (true) {
453
-                                        $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $invoiceCurrency),
454
-                                        $newAmountDue === 0 => 'Invoice will be fully paid',
455
-                                        default => 'Invoice will be overpaid by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $invoiceCurrency),
456
-                                    };
457
-                                })
458
-                                ->rules([
459
-                                    static fn (Invoice $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
460
-                                        if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
461
-                                            $fail('Please enter a valid amount');
398
+                    Tables\Actions\ActionGroup::make([
399
+                        Tables\Actions\EditAction::make()
400
+                            ->url(static fn (Invoice $record) => Pages\EditInvoice::getUrl(['record' => $record])),
401
+                        Tables\Actions\ViewAction::make()
402
+                            ->url(static fn (Invoice $record) => Pages\ViewInvoice::getUrl(['record' => $record])),
403
+                        Invoice::getReplicateAction(Tables\Actions\ReplicateAction::class),
404
+                        Invoice::getApproveDraftAction(Tables\Actions\Action::class),
405
+                        Invoice::getMarkAsSentAction(Tables\Actions\Action::class),
406
+                        Tables\Actions\Action::make('recordPayment')
407
+                            ->label(fn (Invoice $record) => $record->status === InvoiceStatus::Overpaid ? 'Refund Overpayment' : 'Record Payment')
408
+                            ->stickyModalHeader()
409
+                            ->stickyModalFooter()
410
+                            ->modalFooterActionsAlignment(Alignment::End)
411
+                            ->modalWidth(MaxWidth::TwoExtraLarge)
412
+                            ->icon('heroicon-o-credit-card')
413
+                            ->visible(function (Invoice $record) {
414
+                                return $record->canRecordPayment();
415
+                            })
416
+                            ->mountUsing(function (Invoice $record, Form $form) {
417
+                                $form->fill([
418
+                                    'posted_at' => now(),
419
+                                    'amount' => $record->status === InvoiceStatus::Overpaid ? ltrim($record->amount_due, '-') : $record->amount_due,
420
+                                ]);
421
+                            })
422
+                            ->databaseTransaction()
423
+                            ->successNotificationTitle('Payment Recorded')
424
+                            ->form([
425
+                                Forms\Components\DatePicker::make('posted_at')
426
+                                    ->label('Date'),
427
+                                Forms\Components\TextInput::make('amount')
428
+                                    ->label('Amount')
429
+                                    ->required()
430
+                                    ->money(fn (Invoice $record) => $record->currency_code)
431
+                                    ->live(onBlur: true)
432
+                                    ->helperText(function (Invoice $record, $state) {
433
+                                        $invoiceCurrency = $record->currency_code;
434
+                                        if (! CurrencyConverter::isValidAmount($state, $invoiceCurrency)) {
435
+                                            return null;
462 436
                                         }
463
-                                    },
464
-                                ]),
465
-                            Forms\Components\Select::make('payment_method')
466
-                                ->label('Payment Method')
467
-                                ->required()
468
-                                ->options(PaymentMethod::class),
469
-                            Forms\Components\Select::make('bank_account_id')
470
-                                ->label('Account')
471
-                                ->required()
472
-                                ->options(BankAccount::query()
473
-                                    ->get()
474
-                                    ->pluck('account.name', 'id'))
475
-                                ->searchable(),
476
-                            Forms\Components\Textarea::make('notes')
477
-                                ->label('Notes'),
478
-                        ])
479
-                        ->action(function (Invoice $record, Tables\Actions\Action $action, array $data) {
480
-                            $record->recordPayment($data);
481 437
 
482
-                            $action->success();
483
-                        }),
438
+                                        $amountDue = $record->getRawOriginal('amount_due');
439
+
440
+                                        $amount = CurrencyConverter::convertToCents($state, $invoiceCurrency);
441
+
442
+                                        if ($amount <= 0) {
443
+                                            return 'Please enter a valid positive amount';
444
+                                        }
445
+
446
+                                        if ($record->status === InvoiceStatus::Overpaid) {
447
+                                            $newAmountDue = $amountDue + $amount;
448
+                                        } else {
449
+                                            $newAmountDue = $amountDue - $amount;
450
+                                        }
451
+
452
+                                        return match (true) {
453
+                                            $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $invoiceCurrency),
454
+                                            $newAmountDue === 0 => 'Invoice will be fully paid',
455
+                                            default => 'Invoice will be overpaid by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $invoiceCurrency),
456
+                                        };
457
+                                    })
458
+                                    ->rules([
459
+                                        static fn (Invoice $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
460
+                                            if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
461
+                                                $fail('Please enter a valid amount');
462
+                                            }
463
+                                        },
464
+                                    ]),
465
+                                Forms\Components\Select::make('payment_method')
466
+                                    ->label('Payment Method')
467
+                                    ->required()
468
+                                    ->options(PaymentMethod::class),
469
+                                Forms\Components\Select::make('bank_account_id')
470
+                                    ->label('Account')
471
+                                    ->required()
472
+                                    ->options(BankAccount::query()
473
+                                        ->get()
474
+                                        ->pluck('account.name', 'id'))
475
+                                    ->searchable(),
476
+                                Forms\Components\Textarea::make('notes')
477
+                                    ->label('Notes'),
478
+                            ])
479
+                            ->action(function (Invoice $record, Tables\Actions\Action $action, array $data) {
480
+                                $record->recordPayment($data);
481
+
482
+                                $action->success();
483
+                            }),
484
+                    ])->dropdown(false),
485
+                    Tables\Actions\DeleteAction::make(),
484 486
                 ]),
485 487
             ])
486 488
             ->bulkActions([

+ 8
- 4
app/Filament/Company/Resources/Sales/InvoiceResource/Pages/ViewInvoice.php Voir le fichier

@@ -34,12 +34,16 @@ class ViewInvoice extends ViewRecord
34 34
     protected function getHeaderActions(): array
35 35
     {
36 36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Invoice')
39
+                ->outlined(),
37 40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    Invoice::getApproveDraftAction(),
43
+                    Invoice::getMarkAsSentAction(),
44
+                    Invoice::getReplicateAction(),
45
+                ])->dropdown(false),
39 46
                 Actions\DeleteAction::make(),
40
-                Invoice::getApproveDraftAction(),
41
-                Invoice::getMarkAsSentAction(),
42
-                Invoice::getReplicateAction(),
43 47
             ])
44 48
                 ->label('Actions')
45 49
                 ->button()

+ 5
- 3
app/Filament/Company/Resources/Sales/RecurringInvoiceResource.php Voir le fichier

@@ -325,10 +325,12 @@ class RecurringInvoiceResource extends Resource
325 325
             ])
326 326
             ->actions([
327 327
                 Tables\Actions\ActionGroup::make([
328
-                    Tables\Actions\EditAction::make(),
329
-                    Tables\Actions\ViewAction::make(),
328
+                    Tables\Actions\ActionGroup::make([
329
+                        Tables\Actions\EditAction::make(),
330
+                        Tables\Actions\ViewAction::make(),
331
+                        RecurringInvoice::getUpdateScheduleAction(Tables\Actions\Action::class),
332
+                    ])->dropdown(false),
330 333
                     Tables\Actions\DeleteAction::make(),
331
-                    RecurringInvoice::getUpdateScheduleAction(Tables\Actions\Action::class),
332 334
                 ]),
333 335
             ])
334 336
             ->bulkActions([

+ 7
- 3
app/Filament/Company/Resources/Sales/RecurringInvoiceResource/Pages/ViewRecurringInvoice.php Voir le fichier

@@ -34,11 +34,15 @@ class ViewRecurringInvoice extends ViewRecord
34 34
     protected function getHeaderActions(): array
35 35
     {
36 36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Recurring Invoice')
39
+                ->outlined(),
37 40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    RecurringInvoice::getUpdateScheduleAction(),
43
+                    RecurringInvoice::getApproveDraftAction(),
44
+                ])->dropdown(false),
39 45
                 Actions\DeleteAction::make(),
40
-                RecurringInvoice::getUpdateScheduleAction(),
41
-                RecurringInvoice::getApproveDraftAction(),
42 46
             ])
43 47
                 ->label('Actions')
44 48
                 ->button()

+ 5
- 5
app/Models/Accounting/Estimate.php Voir le fichier

@@ -263,7 +263,7 @@ class Estimate extends Document
263 263
     {
264 264
         return $action::make('approveDraft')
265 265
             ->label('Approve')
266
-            ->icon('heroicon-o-check-circle')
266
+            ->icon('heroicon-m-check-circle')
267 267
             ->visible(function (self $record) {
268 268
                 return $record->canBeApproved();
269 269
             })
@@ -280,7 +280,7 @@ class Estimate extends Document
280 280
     {
281 281
         return $action::make('markAsSent')
282 282
             ->label('Mark as Sent')
283
-            ->icon('heroicon-o-paper-airplane')
283
+            ->icon('heroicon-m-paper-airplane')
284 284
             ->visible(static function (self $record) {
285 285
                 return $record->canBeMarkedAsSent();
286 286
             })
@@ -351,7 +351,7 @@ class Estimate extends Document
351 351
     {
352 352
         return $action::make('markAsAccepted')
353 353
             ->label('Mark as Accepted')
354
-            ->icon('heroicon-o-check-badge')
354
+            ->icon('heroicon-m-check-badge')
355 355
             ->visible(static function (self $record) {
356 356
                 return $record->canBeMarkedAsAccepted();
357 357
             })
@@ -378,7 +378,7 @@ class Estimate extends Document
378 378
     {
379 379
         return $action::make('markAsDeclined')
380 380
             ->label('Mark as Declined')
381
-            ->icon('heroicon-o-x-circle')
381
+            ->icon('heroicon-m-x-circle')
382 382
             ->visible(static function (self $record) {
383 383
                 return $record->canBeMarkedAsDeclined();
384 384
             })
@@ -407,7 +407,7 @@ class Estimate extends Document
407 407
     {
408 408
         return $action::make('convertToInvoice')
409 409
             ->label('Convert to Invoice')
410
-            ->icon('heroicon-o-arrow-right-on-rectangle')
410
+            ->icon('heroicon-m-arrow-right-on-rectangle')
411 411
             ->visible(static function (self $record) {
412 412
                 return $record->canBeConverted();
413 413
             })

+ 2
- 2
app/Models/Accounting/Invoice.php Voir le fichier

@@ -465,7 +465,7 @@ class Invoice extends Document
465 465
     {
466 466
         return $action::make('approveDraft')
467 467
             ->label('Approve')
468
-            ->icon('heroicon-o-check-circle')
468
+            ->icon('heroicon-m-check-circle')
469 469
             ->visible(function (self $record) {
470 470
                 return $record->canBeApproved();
471 471
             })
@@ -482,7 +482,7 @@ class Invoice extends Document
482 482
     {
483 483
         return $action::make('markAsSent')
484 484
             ->label('Mark as Sent')
485
-            ->icon('heroicon-o-paper-airplane')
485
+            ->icon('heroicon-m-paper-airplane')
486 486
             ->visible(static function (self $record) {
487 487
                 return $record->canBeMarkedAsSent();
488 488
             })

+ 1
- 1
app/Models/Accounting/RecurringInvoice.php Voir le fichier

@@ -383,7 +383,7 @@ class RecurringInvoice extends Document
383 383
     {
384 384
         return $action::make('updateSchedule')
385 385
             ->label(fn (self $record) => $record->hasSchedule() ? 'Update Schedule' : 'Set Schedule')
386
-            ->icon('heroicon-o-calendar-date-range')
386
+            ->icon('heroicon-m-calendar-date-range')
387 387
             ->slideOver()
388 388
             ->successNotificationTitle('Schedule Updated')
389 389
             ->mountUsing(function (self $record, Form $form) {

+ 3
- 3
app/Services/ReportService.php Voir le fichier

@@ -263,9 +263,9 @@ class ReportService
263 263
             return [
264 264
                 'type' => 'transaction',
265 265
                 'action' => match ($transaction->type) {
266
-                    TransactionType::Journal => 'updateJournalTransaction',
267
-                    TransactionType::Transfer => 'updateTransfer',
268
-                    default => 'updateTransaction',
266
+                    TransactionType::Journal => 'editJournalTransaction',
267
+                    TransactionType::Transfer => 'editTransfer',
268
+                    default => 'editTransaction',
269 269
                 },
270 270
                 'id' => $transaction->id,
271 271
             ];

+ 103
- 101
composer.lock Voir le fichier

@@ -497,16 +497,16 @@
497 497
         },
498 498
         {
499 499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.337.3",
500
+            "version": "3.338.2",
501 501
             "source": {
502 502
                 "type": "git",
503 503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6"
504
+                "reference": "7a52364e053d74363f9976dfb4473bace5b7790e"
505 505
             },
506 506
             "dist": {
507 507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/06dfc8f76423b49aaa181debd25bbdc724c346d6",
509
-                "reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7a52364e053d74363f9976dfb4473bace5b7790e",
509
+                "reference": "7a52364e053d74363f9976dfb4473bace5b7790e",
510 510
                 "shasum": ""
511 511
             },
512 512
             "require": {
@@ -514,31 +514,31 @@
514 514
                 "ext-json": "*",
515 515
                 "ext-pcre": "*",
516 516
                 "ext-simplexml": "*",
517
-                "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
518
-                "guzzlehttp/promises": "^1.4.0 || ^2.0",
519
-                "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
520
-                "mtdowling/jmespath.php": "^2.6",
521
-                "php": ">=7.2.5",
522
-                "psr/http-message": "^1.0 || ^2.0"
517
+                "guzzlehttp/guzzle": "^7.4.5",
518
+                "guzzlehttp/promises": "^2.0",
519
+                "guzzlehttp/psr7": "^2.4.5",
520
+                "mtdowling/jmespath.php": "^2.8.0",
521
+                "php": ">=8.1",
522
+                "psr/http-message": "^2.0"
523 523
             },
524 524
             "require-dev": {
525 525
                 "andrewsville/php-token-reflection": "^1.4",
526 526
                 "aws/aws-php-sns-message-validator": "~1.0",
527 527
                 "behat/behat": "~3.0",
528
-                "composer/composer": "^1.10.22",
528
+                "composer/composer": "^2.7.8",
529 529
                 "dms/phpunit-arraysubset-asserts": "^0.4.0",
530 530
                 "doctrine/cache": "~1.4",
531 531
                 "ext-dom": "*",
532 532
                 "ext-openssl": "*",
533 533
                 "ext-pcntl": "*",
534 534
                 "ext-sockets": "*",
535
-                "nette/neon": "^2.3",
536 535
                 "paragonie/random_compat": ">= 2",
537 536
                 "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
538
-                "psr/cache": "^1.0 || ^2.0 || ^3.0",
539
-                "psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
540
-                "sebastian/comparator": "^1.2.3 || ^4.0",
541
-                "yoast/phpunit-polyfills": "^1.0"
537
+                "psr/cache": "^2.0 || ^3.0",
538
+                "psr/simple-cache": "^2.0 || ^3.0",
539
+                "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0",
540
+                "symfony/filesystem": "^v6.4.0 || ^v7.1.0",
541
+                "yoast/phpunit-polyfills": "^2.0"
542 542
             },
543 543
             "suggest": {
544 544
                 "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
@@ -587,11 +587,11 @@
587 587
                 "sdk"
588 588
             ],
589 589
             "support": {
590
-                "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
590
+                "forum": "https://github.com/aws/aws-sdk-php/discussions",
591 591
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
592
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.337.3"
592
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.338.2"
593 593
             },
594
-            "time": "2025-01-21T19:10:05+00:00"
594
+            "time": "2025-01-24T19:09:22+00:00"
595 595
         },
596 596
         {
597 597
             "name": "aws/aws-sdk-php-laravel",
@@ -1153,16 +1153,16 @@
1153 1153
         },
1154 1154
         {
1155 1155
             "name": "danharrin/livewire-rate-limiting",
1156
-            "version": "v2.0.0",
1156
+            "version": "v2.0.1",
1157 1157
             "source": {
1158 1158
                 "type": "git",
1159 1159
                 "url": "https://github.com/danharrin/livewire-rate-limiting.git",
1160
-                "reference": "0d9c1890174b3d1857dba6ce76de7c178fe20283"
1160
+                "reference": "18680be2b4d3d901d8e453560f77810145492b34"
1161 1161
             },
1162 1162
             "dist": {
1163 1163
                 "type": "zip",
1164
-                "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/0d9c1890174b3d1857dba6ce76de7c178fe20283",
1165
-                "reference": "0d9c1890174b3d1857dba6ce76de7c178fe20283",
1164
+                "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/18680be2b4d3d901d8e453560f77810145492b34",
1165
+                "reference": "18680be2b4d3d901d8e453560f77810145492b34",
1166 1166
                 "shasum": ""
1167 1167
             },
1168 1168
             "require": {
@@ -1203,7 +1203,7 @@
1203 1203
                     "type": "github"
1204 1204
                 }
1205 1205
             ],
1206
-            "time": "2024-11-24T16:57:47+00:00"
1206
+            "time": "2025-01-22T14:01:35+00:00"
1207 1207
         },
1208 1208
         {
1209 1209
             "name": "dflydev/dot-access-data",
@@ -1733,16 +1733,16 @@
1733 1733
         },
1734 1734
         {
1735 1735
             "name": "filament/actions",
1736
-            "version": "v3.2.133",
1736
+            "version": "v3.2.135",
1737 1737
             "source": {
1738 1738
                 "type": "git",
1739 1739
                 "url": "https://github.com/filamentphp/actions.git",
1740
-                "reference": "33464f1583217b5eb12364b617b27abe5315eb88"
1740
+                "reference": "dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff"
1741 1741
             },
1742 1742
             "dist": {
1743 1743
                 "type": "zip",
1744
-                "url": "https://api.github.com/repos/filamentphp/actions/zipball/33464f1583217b5eb12364b617b27abe5315eb88",
1745
-                "reference": "33464f1583217b5eb12364b617b27abe5315eb88",
1744
+                "url": "https://api.github.com/repos/filamentphp/actions/zipball/dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff",
1745
+                "reference": "dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff",
1746 1746
                 "shasum": ""
1747 1747
             },
1748 1748
             "require": {
@@ -1782,20 +1782,20 @@
1782 1782
                 "issues": "https://github.com/filamentphp/filament/issues",
1783 1783
                 "source": "https://github.com/filamentphp/filament"
1784 1784
             },
1785
-            "time": "2025-01-10T12:47:49+00:00"
1785
+            "time": "2025-01-24T09:27:43+00:00"
1786 1786
         },
1787 1787
         {
1788 1788
             "name": "filament/filament",
1789
-            "version": "v3.2.133",
1789
+            "version": "v3.2.135",
1790 1790
             "source": {
1791 1791
                 "type": "git",
1792 1792
                 "url": "https://github.com/filamentphp/panels.git",
1793
-                "reference": "74550888c1c79761218aece3c339ca0e0cc260e8"
1793
+                "reference": "bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb"
1794 1794
             },
1795 1795
             "dist": {
1796 1796
                 "type": "zip",
1797
-                "url": "https://api.github.com/repos/filamentphp/panels/zipball/74550888c1c79761218aece3c339ca0e0cc260e8",
1798
-                "reference": "74550888c1c79761218aece3c339ca0e0cc260e8",
1797
+                "url": "https://api.github.com/repos/filamentphp/panels/zipball/bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb",
1798
+                "reference": "bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb",
1799 1799
                 "shasum": ""
1800 1800
             },
1801 1801
             "require": {
@@ -1847,20 +1847,20 @@
1847 1847
                 "issues": "https://github.com/filamentphp/filament/issues",
1848 1848
                 "source": "https://github.com/filamentphp/filament"
1849 1849
             },
1850
-            "time": "2025-01-10T12:48:32+00:00"
1850
+            "time": "2025-01-24T09:27:52+00:00"
1851 1851
         },
1852 1852
         {
1853 1853
             "name": "filament/forms",
1854
-            "version": "v3.2.133",
1854
+            "version": "v3.2.135",
1855 1855
             "source": {
1856 1856
                 "type": "git",
1857 1857
                 "url": "https://github.com/filamentphp/forms.git",
1858
-                "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb"
1858
+                "reference": "e17618c921cd0300341a53d0eb2174c51e649565"
1859 1859
             },
1860 1860
             "dist": {
1861 1861
                 "type": "zip",
1862
-                "url": "https://api.github.com/repos/filamentphp/forms/zipball/20473c9eec7afa3ee618d2f86c7c449b3723d9fb",
1863
-                "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb",
1862
+                "url": "https://api.github.com/repos/filamentphp/forms/zipball/e17618c921cd0300341a53d0eb2174c51e649565",
1863
+                "reference": "e17618c921cd0300341a53d0eb2174c51e649565",
1864 1864
                 "shasum": ""
1865 1865
             },
1866 1866
             "require": {
@@ -1903,20 +1903,20 @@
1903 1903
                 "issues": "https://github.com/filamentphp/filament/issues",
1904 1904
                 "source": "https://github.com/filamentphp/filament"
1905 1905
             },
1906
-            "time": "2025-01-10T12:47:50+00:00"
1906
+            "time": "2025-01-24T09:27:50+00:00"
1907 1907
         },
1908 1908
         {
1909 1909
             "name": "filament/infolists",
1910
-            "version": "v3.2.133",
1910
+            "version": "v3.2.135",
1911 1911
             "source": {
1912 1912
                 "type": "git",
1913 1913
                 "url": "https://github.com/filamentphp/infolists.git",
1914
-                "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86"
1914
+                "reference": "3330966b87da7d2078b62556428c279a6e8ff17c"
1915 1915
             },
1916 1916
             "dist": {
1917 1917
                 "type": "zip",
1918
-                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/d3ee1eb508561f2b101c69cdb45c309539948d86",
1919
-                "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86",
1918
+                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/3330966b87da7d2078b62556428c279a6e8ff17c",
1919
+                "reference": "3330966b87da7d2078b62556428c279a6e8ff17c",
1920 1920
                 "shasum": ""
1921 1921
             },
1922 1922
             "require": {
@@ -1954,20 +1954,20 @@
1954 1954
                 "issues": "https://github.com/filamentphp/filament/issues",
1955 1955
                 "source": "https://github.com/filamentphp/filament"
1956 1956
             },
1957
-            "time": "2025-01-10T12:48:11+00:00"
1957
+            "time": "2025-01-24T09:27:49+00:00"
1958 1958
         },
1959 1959
         {
1960 1960
             "name": "filament/notifications",
1961
-            "version": "v3.2.133",
1961
+            "version": "v3.2.135",
1962 1962
             "source": {
1963 1963
                 "type": "git",
1964 1964
                 "url": "https://github.com/filamentphp/notifications.git",
1965
-                "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64"
1965
+                "reference": "e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe"
1966 1966
             },
1967 1967
             "dist": {
1968 1968
                 "type": "zip",
1969
-                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64",
1970
-                "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64",
1969
+                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe",
1970
+                "reference": "e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe",
1971 1971
                 "shasum": ""
1972 1972
             },
1973 1973
             "require": {
@@ -2006,20 +2006,20 @@
2006 2006
                 "issues": "https://github.com/filamentphp/filament/issues",
2007 2007
                 "source": "https://github.com/filamentphp/filament"
2008 2008
             },
2009
-            "time": "2025-01-10T12:48:23+00:00"
2009
+            "time": "2025-01-24T09:27:49+00:00"
2010 2010
         },
2011 2011
         {
2012 2012
             "name": "filament/support",
2013
-            "version": "v3.2.133",
2013
+            "version": "v3.2.135",
2014 2014
             "source": {
2015 2015
                 "type": "git",
2016 2016
                 "url": "https://github.com/filamentphp/support.git",
2017
-                "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee"
2017
+                "reference": "ca0ff1fa43d743e06de9c2f50ccea98e23785c7d"
2018 2018
             },
2019 2019
             "dist": {
2020 2020
                 "type": "zip",
2021
-                "url": "https://api.github.com/repos/filamentphp/support/zipball/38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee",
2022
-                "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee",
2021
+                "url": "https://api.github.com/repos/filamentphp/support/zipball/ca0ff1fa43d743e06de9c2f50ccea98e23785c7d",
2022
+                "reference": "ca0ff1fa43d743e06de9c2f50ccea98e23785c7d",
2023 2023
                 "shasum": ""
2024 2024
             },
2025 2025
             "require": {
@@ -2065,20 +2065,20 @@
2065 2065
                 "issues": "https://github.com/filamentphp/filament/issues",
2066 2066
                 "source": "https://github.com/filamentphp/filament"
2067 2067
             },
2068
-            "time": "2025-01-10T12:48:52+00:00"
2068
+            "time": "2025-01-24T09:28:01+00:00"
2069 2069
         },
2070 2070
         {
2071 2071
             "name": "filament/tables",
2072
-            "version": "v3.2.133",
2072
+            "version": "v3.2.135",
2073 2073
             "source": {
2074 2074
                 "type": "git",
2075 2075
                 "url": "https://github.com/filamentphp/tables.git",
2076
-                "reference": "6cbbea0bfd966ca2f26988c0fac4e02caebddf4a"
2076
+                "reference": "db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e"
2077 2077
             },
2078 2078
             "dist": {
2079 2079
                 "type": "zip",
2080
-                "url": "https://api.github.com/repos/filamentphp/tables/zipball/6cbbea0bfd966ca2f26988c0fac4e02caebddf4a",
2081
-                "reference": "6cbbea0bfd966ca2f26988c0fac4e02caebddf4a",
2080
+                "url": "https://api.github.com/repos/filamentphp/tables/zipball/db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e",
2081
+                "reference": "db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e",
2082 2082
                 "shasum": ""
2083 2083
             },
2084 2084
             "require": {
@@ -2117,11 +2117,11 @@
2117 2117
                 "issues": "https://github.com/filamentphp/filament/issues",
2118 2118
                 "source": "https://github.com/filamentphp/filament"
2119 2119
             },
2120
-            "time": "2025-01-10T12:48:48+00:00"
2120
+            "time": "2025-01-24T09:28:02+00:00"
2121 2121
         },
2122 2122
         {
2123 2123
             "name": "filament/widgets",
2124
-            "version": "v3.2.133",
2124
+            "version": "v3.2.135",
2125 2125
             "source": {
2126 2126
                 "type": "git",
2127 2127
                 "url": "https://github.com/filamentphp/widgets.git",
@@ -2165,16 +2165,16 @@
2165 2165
         },
2166 2166
         {
2167 2167
             "name": "firebase/php-jwt",
2168
-            "version": "v6.10.2",
2168
+            "version": "v6.11.0",
2169 2169
             "source": {
2170 2170
                 "type": "git",
2171 2171
                 "url": "https://github.com/firebase/php-jwt.git",
2172
-                "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b"
2172
+                "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712"
2173 2173
             },
2174 2174
             "dist": {
2175 2175
                 "type": "zip",
2176
-                "url": "https://api.github.com/repos/firebase/php-jwt/zipball/30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
2177
-                "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
2176
+                "url": "https://api.github.com/repos/firebase/php-jwt/zipball/8f718f4dfc9c5d5f0c994cdfd103921b43592712",
2177
+                "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712",
2178 2178
                 "shasum": ""
2179 2179
             },
2180 2180
             "require": {
@@ -2222,9 +2222,9 @@
2222 2222
             ],
2223 2223
             "support": {
2224 2224
                 "issues": "https://github.com/firebase/php-jwt/issues",
2225
-                "source": "https://github.com/firebase/php-jwt/tree/v6.10.2"
2225
+                "source": "https://github.com/firebase/php-jwt/tree/v6.11.0"
2226 2226
             },
2227
-            "time": "2024-11-24T11:22:49+00:00"
2227
+            "time": "2025-01-23T05:11:06+00:00"
2228 2228
         },
2229 2229
         {
2230 2230
             "name": "fruitcake/php-cors",
@@ -3051,16 +3051,16 @@
3051 3051
         },
3052 3052
         {
3053 3053
             "name": "laravel/framework",
3054
-            "version": "v11.39.0",
3054
+            "version": "v11.40.0",
3055 3055
             "source": {
3056 3056
                 "type": "git",
3057 3057
                 "url": "https://github.com/laravel/framework.git",
3058
-                "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f"
3058
+                "reference": "599a28196d284fee158cc10086fd56ac625ad7a3"
3059 3059
             },
3060 3060
             "dist": {
3061 3061
                 "type": "zip",
3062
-                "url": "https://api.github.com/repos/laravel/framework/zipball/996c96955f78e8a2b26a24c490a1721cfb14574f",
3063
-                "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f",
3062
+                "url": "https://api.github.com/repos/laravel/framework/zipball/599a28196d284fee158cc10086fd56ac625ad7a3",
3063
+                "reference": "599a28196d284fee158cc10086fd56ac625ad7a3",
3064 3064
                 "shasum": ""
3065 3065
             },
3066 3066
             "require": {
@@ -3086,7 +3086,7 @@
3086 3086
                 "league/flysystem-local": "^3.25.1",
3087 3087
                 "league/uri": "^7.5.1",
3088 3088
                 "monolog/monolog": "^3.0",
3089
-                "nesbot/carbon": "^2.72.2|^3.4",
3089
+                "nesbot/carbon": "^2.72.6|^3.8.4",
3090 3090
                 "nunomaduro/termwind": "^2.0",
3091 3091
                 "php": "^8.2",
3092 3092
                 "psr/container": "^1.1.1|^2.0.1",
@@ -3161,6 +3161,7 @@
3161 3161
                 "fakerphp/faker": "^1.24",
3162 3162
                 "guzzlehttp/promises": "^2.0.3",
3163 3163
                 "guzzlehttp/psr7": "^2.4",
3164
+                "laravel/pint": "^1.18",
3164 3165
                 "league/flysystem-aws-s3-v3": "^3.25.1",
3165 3166
                 "league/flysystem-ftp": "^3.25.1",
3166 3167
                 "league/flysystem-path-prefixing": "^3.25.1",
@@ -3261,7 +3262,7 @@
3261 3262
                 "issues": "https://github.com/laravel/framework/issues",
3262 3263
                 "source": "https://github.com/laravel/framework"
3263 3264
             },
3264
-            "time": "2025-01-21T15:02:43+00:00"
3265
+            "time": "2025-01-24T16:17:42+00:00"
3265 3266
         },
3266 3267
         {
3267 3268
             "name": "laravel/prompts",
@@ -6491,16 +6492,16 @@
6491 6492
         },
6492 6493
         {
6493 6494
             "name": "spatie/laravel-package-tools",
6494
-            "version": "1.18.2",
6495
+            "version": "1.18.3",
6495 6496
             "source": {
6496 6497
                 "type": "git",
6497 6498
                 "url": "https://github.com/spatie/laravel-package-tools.git",
6498
-                "reference": "d41c44a7eab604c3eb0cad93210612d4c1429c20"
6499
+                "reference": "ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78"
6499 6500
             },
6500 6501
             "dist": {
6501 6502
                 "type": "zip",
6502
-                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d41c44a7eab604c3eb0cad93210612d4c1429c20",
6503
-                "reference": "d41c44a7eab604c3eb0cad93210612d4c1429c20",
6503
+                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78",
6504
+                "reference": "ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78",
6504 6505
                 "shasum": ""
6505 6506
             },
6506 6507
             "require": {
@@ -6539,7 +6540,7 @@
6539 6540
             ],
6540 6541
             "support": {
6541 6542
                 "issues": "https://github.com/spatie/laravel-package-tools/issues",
6542
-                "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.2"
6543
+                "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.3"
6543 6544
             },
6544 6545
             "funding": [
6545 6546
                 {
@@ -6547,7 +6548,7 @@
6547 6548
                     "type": "github"
6548 6549
                 }
6549 6550
             ],
6550
-            "time": "2025-01-20T14:14:17+00:00"
6551
+            "time": "2025-01-22T08:51:18+00:00"
6551 6552
         },
6552 6553
         {
6553 6554
             "name": "squirephp/model",
@@ -9983,37 +9984,37 @@
9983 9984
         },
9984 9985
         {
9985 9986
             "name": "nunomaduro/collision",
9986
-            "version": "v8.5.0",
9987
+            "version": "v8.6.1",
9987 9988
             "source": {
9988 9989
                 "type": "git",
9989 9990
                 "url": "https://github.com/nunomaduro/collision.git",
9990
-                "reference": "f5c101b929c958e849a633283adff296ed5f38f5"
9991
+                "reference": "86f003c132143d5a2ab214e19933946409e0cae7"
9991 9992
             },
9992 9993
             "dist": {
9993 9994
                 "type": "zip",
9994
-                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5",
9995
-                "reference": "f5c101b929c958e849a633283adff296ed5f38f5",
9995
+                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/86f003c132143d5a2ab214e19933946409e0cae7",
9996
+                "reference": "86f003c132143d5a2ab214e19933946409e0cae7",
9996 9997
                 "shasum": ""
9997 9998
             },
9998 9999
             "require": {
9999 10000
                 "filp/whoops": "^2.16.0",
10000
-                "nunomaduro/termwind": "^2.1.0",
10001
+                "nunomaduro/termwind": "^2.3.0",
10001 10002
                 "php": "^8.2.0",
10002
-                "symfony/console": "^7.1.5"
10003
+                "symfony/console": "^7.2.1"
10003 10004
             },
10004 10005
             "conflict": {
10005
-                "laravel/framework": "<11.0.0 || >=12.0.0",
10006
-                "phpunit/phpunit": "<10.5.1 || >=12.0.0"
10006
+                "laravel/framework": "<11.39.1 || >=13.0.0",
10007
+                "phpunit/phpunit": "<11.5.3 || >=12.0.0"
10007 10008
             },
10008 10009
             "require-dev": {
10009
-                "larastan/larastan": "^2.9.8",
10010
-                "laravel/framework": "^11.28.0",
10011
-                "laravel/pint": "^1.18.1",
10012
-                "laravel/sail": "^1.36.0",
10013
-                "laravel/sanctum": "^4.0.3",
10010
+                "larastan/larastan": "^2.9.12",
10011
+                "laravel/framework": "^11.39.1",
10012
+                "laravel/pint": "^1.20.0",
10013
+                "laravel/sail": "^1.40.0",
10014
+                "laravel/sanctum": "^4.0.7",
10014 10015
                 "laravel/tinker": "^2.10.0",
10015
-                "orchestra/testbench-core": "^9.5.3",
10016
-                "pestphp/pest": "^2.36.0 || ^3.4.0",
10016
+                "orchestra/testbench-core": "^9.9.2",
10017
+                "pestphp/pest": "^3.7.3",
10017 10018
                 "sebastian/environment": "^6.1.0 || ^7.2.0"
10018 10019
             },
10019 10020
             "type": "library",
@@ -10051,6 +10052,7 @@
10051 10052
                 "cli",
10052 10053
                 "command-line",
10053 10054
                 "console",
10055
+                "dev",
10054 10056
                 "error",
10055 10057
                 "handling",
10056 10058
                 "laravel",
@@ -10076,25 +10078,25 @@
10076 10078
                     "type": "patreon"
10077 10079
                 }
10078 10080
             ],
10079
-            "time": "2024-10-15T16:06:32+00:00"
10081
+            "time": "2025-01-23T13:41:43+00:00"
10080 10082
         },
10081 10083
         {
10082 10084
             "name": "pestphp/pest",
10083
-            "version": "v3.7.2",
10085
+            "version": "v3.7.4",
10084 10086
             "source": {
10085 10087
                 "type": "git",
10086 10088
                 "url": "https://github.com/pestphp/pest.git",
10087
-                "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b"
10089
+                "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b"
10088 10090
             },
10089 10091
             "dist": {
10090 10092
                 "type": "zip",
10091
-                "url": "https://api.github.com/repos/pestphp/pest/zipball/709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
10092
-                "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
10093
+                "url": "https://api.github.com/repos/pestphp/pest/zipball/4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
10094
+                "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
10093 10095
                 "shasum": ""
10094 10096
             },
10095 10097
             "require": {
10096 10098
                 "brianium/paratest": "^7.7.0",
10097
-                "nunomaduro/collision": "^8.5.0",
10099
+                "nunomaduro/collision": "^8.6.1",
10098 10100
                 "nunomaduro/termwind": "^2.3.0",
10099 10101
                 "pestphp/pest-plugin": "^3.0.0",
10100 10102
                 "pestphp/pest-plugin-arch": "^3.0.0",
@@ -10176,7 +10178,7 @@
10176 10178
             ],
10177 10179
             "support": {
10178 10180
                 "issues": "https://github.com/pestphp/pest/issues",
10179
-                "source": "https://github.com/pestphp/pest/tree/v3.7.2"
10181
+                "source": "https://github.com/pestphp/pest/tree/v3.7.4"
10180 10182
             },
10181 10183
             "funding": [
10182 10184
                 {
@@ -10188,7 +10190,7 @@
10188 10190
                     "type": "github"
10189 10191
                 }
10190 10192
             ],
10191
-            "time": "2025-01-19T17:35:09+00:00"
10193
+            "time": "2025-01-23T14:03:29+00:00"
10192 10194
         },
10193 10195
         {
10194 10196
             "name": "pestphp/pest-plugin",

+ 82
- 82
package-lock.json Voir le fichier

@@ -575,9 +575,9 @@
575 575
             }
576 576
         },
577 577
         "node_modules/@rollup/rollup-android-arm-eabi": {
578
-            "version": "4.31.0",
579
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz",
580
-            "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==",
578
+            "version": "4.32.0",
579
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz",
580
+            "integrity": "sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==",
581 581
             "cpu": [
582 582
                 "arm"
583 583
             ],
@@ -589,9 +589,9 @@
589 589
             ]
590 590
         },
591 591
         "node_modules/@rollup/rollup-android-arm64": {
592
-            "version": "4.31.0",
593
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz",
594
-            "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==",
592
+            "version": "4.32.0",
593
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz",
594
+            "integrity": "sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==",
595 595
             "cpu": [
596 596
                 "arm64"
597 597
             ],
@@ -603,9 +603,9 @@
603 603
             ]
604 604
         },
605 605
         "node_modules/@rollup/rollup-darwin-arm64": {
606
-            "version": "4.31.0",
607
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz",
608
-            "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==",
606
+            "version": "4.32.0",
607
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz",
608
+            "integrity": "sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==",
609 609
             "cpu": [
610 610
                 "arm64"
611 611
             ],
@@ -617,9 +617,9 @@
617 617
             ]
618 618
         },
619 619
         "node_modules/@rollup/rollup-darwin-x64": {
620
-            "version": "4.31.0",
621
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz",
622
-            "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==",
620
+            "version": "4.32.0",
621
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz",
622
+            "integrity": "sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==",
623 623
             "cpu": [
624 624
                 "x64"
625 625
             ],
@@ -631,9 +631,9 @@
631 631
             ]
632 632
         },
633 633
         "node_modules/@rollup/rollup-freebsd-arm64": {
634
-            "version": "4.31.0",
635
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz",
636
-            "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==",
634
+            "version": "4.32.0",
635
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz",
636
+            "integrity": "sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==",
637 637
             "cpu": [
638 638
                 "arm64"
639 639
             ],
@@ -645,9 +645,9 @@
645 645
             ]
646 646
         },
647 647
         "node_modules/@rollup/rollup-freebsd-x64": {
648
-            "version": "4.31.0",
649
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz",
650
-            "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==",
648
+            "version": "4.32.0",
649
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz",
650
+            "integrity": "sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==",
651 651
             "cpu": [
652 652
                 "x64"
653 653
             ],
@@ -659,9 +659,9 @@
659 659
             ]
660 660
         },
661 661
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
662
-            "version": "4.31.0",
663
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz",
664
-            "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==",
662
+            "version": "4.32.0",
663
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz",
664
+            "integrity": "sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==",
665 665
             "cpu": [
666 666
                 "arm"
667 667
             ],
@@ -673,9 +673,9 @@
673 673
             ]
674 674
         },
675 675
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
676
-            "version": "4.31.0",
677
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz",
678
-            "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==",
676
+            "version": "4.32.0",
677
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz",
678
+            "integrity": "sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==",
679 679
             "cpu": [
680 680
                 "arm"
681 681
             ],
@@ -687,9 +687,9 @@
687 687
             ]
688 688
         },
689 689
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
690
-            "version": "4.31.0",
691
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz",
692
-            "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==",
690
+            "version": "4.32.0",
691
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz",
692
+            "integrity": "sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==",
693 693
             "cpu": [
694 694
                 "arm64"
695 695
             ],
@@ -701,9 +701,9 @@
701 701
             ]
702 702
         },
703 703
         "node_modules/@rollup/rollup-linux-arm64-musl": {
704
-            "version": "4.31.0",
705
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz",
706
-            "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==",
704
+            "version": "4.32.0",
705
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz",
706
+            "integrity": "sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==",
707 707
             "cpu": [
708 708
                 "arm64"
709 709
             ],
@@ -715,9 +715,9 @@
715 715
             ]
716 716
         },
717 717
         "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
718
-            "version": "4.31.0",
719
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz",
720
-            "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==",
718
+            "version": "4.32.0",
719
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz",
720
+            "integrity": "sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==",
721 721
             "cpu": [
722 722
                 "loong64"
723 723
             ],
@@ -729,9 +729,9 @@
729 729
             ]
730 730
         },
731 731
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
732
-            "version": "4.31.0",
733
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz",
734
-            "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==",
732
+            "version": "4.32.0",
733
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz",
734
+            "integrity": "sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==",
735 735
             "cpu": [
736 736
                 "ppc64"
737 737
             ],
@@ -743,9 +743,9 @@
743 743
             ]
744 744
         },
745 745
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
746
-            "version": "4.31.0",
747
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz",
748
-            "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==",
746
+            "version": "4.32.0",
747
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz",
748
+            "integrity": "sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==",
749 749
             "cpu": [
750 750
                 "riscv64"
751 751
             ],
@@ -757,9 +757,9 @@
757 757
             ]
758 758
         },
759 759
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
760
-            "version": "4.31.0",
761
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz",
762
-            "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==",
760
+            "version": "4.32.0",
761
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz",
762
+            "integrity": "sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==",
763 763
             "cpu": [
764 764
                 "s390x"
765 765
             ],
@@ -771,9 +771,9 @@
771 771
             ]
772 772
         },
773 773
         "node_modules/@rollup/rollup-linux-x64-gnu": {
774
-            "version": "4.31.0",
775
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz",
776
-            "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==",
774
+            "version": "4.32.0",
775
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz",
776
+            "integrity": "sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==",
777 777
             "cpu": [
778 778
                 "x64"
779 779
             ],
@@ -785,9 +785,9 @@
785 785
             ]
786 786
         },
787 787
         "node_modules/@rollup/rollup-linux-x64-musl": {
788
-            "version": "4.31.0",
789
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz",
790
-            "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==",
788
+            "version": "4.32.0",
789
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz",
790
+            "integrity": "sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==",
791 791
             "cpu": [
792 792
                 "x64"
793 793
             ],
@@ -799,9 +799,9 @@
799 799
             ]
800 800
         },
801 801
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
802
-            "version": "4.31.0",
803
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz",
804
-            "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==",
802
+            "version": "4.32.0",
803
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz",
804
+            "integrity": "sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==",
805 805
             "cpu": [
806 806
                 "arm64"
807 807
             ],
@@ -813,9 +813,9 @@
813 813
             ]
814 814
         },
815 815
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
816
-            "version": "4.31.0",
817
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz",
818
-            "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==",
816
+            "version": "4.32.0",
817
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz",
818
+            "integrity": "sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==",
819 819
             "cpu": [
820 820
                 "ia32"
821 821
             ],
@@ -827,9 +827,9 @@
827 827
             ]
828 828
         },
829 829
         "node_modules/@rollup/rollup-win32-x64-msvc": {
830
-            "version": "4.31.0",
831
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz",
832
-            "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==",
830
+            "version": "4.32.0",
831
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz",
832
+            "integrity": "sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==",
833 833
             "cpu": [
834 834
                 "x64"
835 835
             ],
@@ -1235,9 +1235,9 @@
1235 1235
             "license": "MIT"
1236 1236
         },
1237 1237
         "node_modules/electron-to-chromium": {
1238
-            "version": "1.5.84",
1239
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.84.tgz",
1240
-            "integrity": "sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==",
1238
+            "version": "1.5.88",
1239
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz",
1240
+            "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==",
1241 1241
             "dev": true,
1242 1242
             "license": "ISC"
1243 1243
         },
@@ -2242,9 +2242,9 @@
2242 2242
             }
2243 2243
         },
2244 2244
         "node_modules/rollup": {
2245
-            "version": "4.31.0",
2246
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz",
2247
-            "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==",
2245
+            "version": "4.32.0",
2246
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz",
2247
+            "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==",
2248 2248
             "dev": true,
2249 2249
             "license": "MIT",
2250 2250
             "dependencies": {
@@ -2258,25 +2258,25 @@
2258 2258
                 "npm": ">=8.0.0"
2259 2259
             },
2260 2260
             "optionalDependencies": {
2261
-                "@rollup/rollup-android-arm-eabi": "4.31.0",
2262
-                "@rollup/rollup-android-arm64": "4.31.0",
2263
-                "@rollup/rollup-darwin-arm64": "4.31.0",
2264
-                "@rollup/rollup-darwin-x64": "4.31.0",
2265
-                "@rollup/rollup-freebsd-arm64": "4.31.0",
2266
-                "@rollup/rollup-freebsd-x64": "4.31.0",
2267
-                "@rollup/rollup-linux-arm-gnueabihf": "4.31.0",
2268
-                "@rollup/rollup-linux-arm-musleabihf": "4.31.0",
2269
-                "@rollup/rollup-linux-arm64-gnu": "4.31.0",
2270
-                "@rollup/rollup-linux-arm64-musl": "4.31.0",
2271
-                "@rollup/rollup-linux-loongarch64-gnu": "4.31.0",
2272
-                "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0",
2273
-                "@rollup/rollup-linux-riscv64-gnu": "4.31.0",
2274
-                "@rollup/rollup-linux-s390x-gnu": "4.31.0",
2275
-                "@rollup/rollup-linux-x64-gnu": "4.31.0",
2276
-                "@rollup/rollup-linux-x64-musl": "4.31.0",
2277
-                "@rollup/rollup-win32-arm64-msvc": "4.31.0",
2278
-                "@rollup/rollup-win32-ia32-msvc": "4.31.0",
2279
-                "@rollup/rollup-win32-x64-msvc": "4.31.0",
2261
+                "@rollup/rollup-android-arm-eabi": "4.32.0",
2262
+                "@rollup/rollup-android-arm64": "4.32.0",
2263
+                "@rollup/rollup-darwin-arm64": "4.32.0",
2264
+                "@rollup/rollup-darwin-x64": "4.32.0",
2265
+                "@rollup/rollup-freebsd-arm64": "4.32.0",
2266
+                "@rollup/rollup-freebsd-x64": "4.32.0",
2267
+                "@rollup/rollup-linux-arm-gnueabihf": "4.32.0",
2268
+                "@rollup/rollup-linux-arm-musleabihf": "4.32.0",
2269
+                "@rollup/rollup-linux-arm64-gnu": "4.32.0",
2270
+                "@rollup/rollup-linux-arm64-musl": "4.32.0",
2271
+                "@rollup/rollup-linux-loongarch64-gnu": "4.32.0",
2272
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0",
2273
+                "@rollup/rollup-linux-riscv64-gnu": "4.32.0",
2274
+                "@rollup/rollup-linux-s390x-gnu": "4.32.0",
2275
+                "@rollup/rollup-linux-x64-gnu": "4.32.0",
2276
+                "@rollup/rollup-linux-x64-musl": "4.32.0",
2277
+                "@rollup/rollup-win32-arm64-msvc": "4.32.0",
2278
+                "@rollup/rollup-win32-ia32-msvc": "4.32.0",
2279
+                "@rollup/rollup-win32-x64-msvc": "4.32.0",
2280 2280
                 "fsevents": "~2.3.2"
2281 2281
             }
2282 2282
         },

+ 4
- 0
resources/css/filament/company/theme.css Voir le fichier

@@ -14,6 +14,10 @@
14 14
     @apply bg-platinum;
15 15
 }
16 16
 
17
+.fi-dropdown-panel {
18
+    @apply divide-gray-200/80;
19
+}
20
+
17 21
 .fi-badge {
18 22
     display: inline-flex;
19 23
 }

+ 6
- 6
tests/Feature/Accounting/TransactionTest.php Voir le fichier

@@ -345,7 +345,7 @@ it('can update a deposit or withdrawal transaction', function (TransactionType $
345 345
     $newDescription = 'Updated Description';
346 346
 
347 347
     livewire(Transactions::class)
348
-        ->mountTableAction('updateTransaction', $transaction)
348
+        ->mountTableAction('editTransaction', $transaction)
349 349
         ->assertTableActionDataSet([
350 350
             'type' => $transactionType->value,
351 351
             'description' => $transaction->description,
@@ -377,8 +377,8 @@ it('does not show Edit Transfer or Edit Journal Transaction for deposit or withd
377 377
         ->create();
378 378
 
379 379
     livewire(Transactions::class)
380
-        ->assertTableActionHidden('updateTransfer', $transaction)
381
-        ->assertTableActionHidden('updateJournalTransaction', $transaction);
380
+        ->assertTableActionHidden('editTransfer', $transaction)
381
+        ->assertTableActionHidden('editJournalTransaction', $transaction);
382 382
 })->with([
383 383
     TransactionType::Deposit,
384 384
     TransactionType::Withdrawal,
@@ -394,7 +394,7 @@ it('can update a transfer transaction', function () {
394 394
     $newDescription = 'Updated Transfer Description';
395 395
 
396 396
     livewire(Transactions::class)
397
-        ->mountTableAction('updateTransfer', $transaction)
397
+        ->mountTableAction('editTransfer', $transaction)
398 398
         ->assertTableActionDataSet([
399 399
             'type' => TransactionType::Transfer->value,
400 400
             'description' => $transaction->description,
@@ -421,8 +421,8 @@ it('does not show Edit Transaction or Edit Journal Transaction for transfer tran
421 421
         ->create();
422 422
 
423 423
     livewire(Transactions::class)
424
-        ->assertTableActionHidden('updateTransaction', $transaction)
425
-        ->assertTableActionHidden('updateJournalTransaction', $transaction);
424
+        ->assertTableActionHidden('editTransaction', $transaction)
425
+        ->assertTableActionHidden('editJournalTransaction', $transaction);
426 426
 });
427 427
 
428 428
 it('replicates a transaction with correct journal entries', function () {

Chargement…
Annuler
Enregistrer