elegant code

This commit is contained in:
2025-11-02 21:09:13 +05:00
parent 92b067b939
commit e8595117ee
5 changed files with 85 additions and 46 deletions

View File

@@ -4,16 +4,13 @@ namespace App\Filament\Clusters\Cards\CardOrders\Tables;
use App\Modules\CardOrder\Filament\Actions\PayCardOrderAction;
use App\Modules\CardOrder\Models\CardOrder;
use App\Modules\CardOrder\Repositories\CardOrderRepository;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use App\Modules\Region\Repositories\RegionRepository;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ForceDeleteBulkAction;
use Filament\Actions\RestoreBulkAction;
use Filament\Notifications\Notification;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\TrashedFilter;

View File

@@ -5,17 +5,15 @@ namespace App\Filament\Clusters\Cards\Cards;
use App\Filament\Clusters\Cards\Cards\Pages\ManageCards;
use App\Filament\Clusters\Cards\CardsCluster;
use App\Modules\AppHelpers\Repositories\DateHelper;
use App\Modules\Card\Filament\Actions\CheckCardBalanceAction;
use App\Modules\Card\Filament\Actions\DownloadCardRequisteAction;
use App\Modules\Card\Filament\Actions\DownloadCardTransactionAction;
use App\Modules\Card\Models\Card;
use App\Modules\CardBalance\Repositories\CardBalanceRepository;
use App\Modules\CardRequisite\Repositories\CardRequisiteRepository;
use App\Modules\CardTransaction\Repositories\CardTransactionRepository;
use BackedEnum;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
@@ -24,9 +22,7 @@ use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Builder;
use Livewire\Component;
class CardResource extends Resource
{
@@ -127,42 +123,9 @@ class CardResource extends Resource
//
])
->recordActions([
Action::make('card_balance')
->label(__('Card balance'))
->icon('heroicon-o-credit-card')
->requiresConfirmation(false)
->modal()
->modalContent(fn (Card $record): View => CardBalanceRepository::make()->showCardBalance($record))
->modalFooterActions([]),
Action::make('card_transactions')
->label(__('Card transactions'))
->icon('heroicon-o-arrows-right-left')
->requiresConfirmation()
->modalIcon('heroicon-m-arrows-right-left')
->schema([
DatePicker::make('start_date')
->label(__('Start date'))
->native(false)
->required()
->beforeOrEqual('today'),
DatePicker::make('end_date')
->label(__('End date'))
->native(false)
->required()
->beforeOrEqual('today'),
])
->action(
fn (array $data, Card $record, Component $livewire) => CardTransactionRepository::make()->downloadCardTransaction($data, $record, $livewire)
),
Action::make('card_requisite')
->label(__('Card requisite'))
->icon('heroicon-o-document-text')
->requiresConfirmation()
->modalIcon('heroicon-o-document-text')
->action(fn (Card $record) => CardRequisiteRepository::make()->downloadCardRequisite($record)),
CheckCardBalanceAction::make(),
DownloadCardTransactionAction::make(),
DownloadCardRequisteAction::make(),
EditAction::make()
->label(''),

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Modules\Card\Filament\Actions;
use App\Modules\Card\Models\Card;
use App\Modules\CardBalance\Repositories\CardBalanceRepository;
use Filament\Actions\Action;
use Illuminate\Contracts\View\View;
class CheckCardBalanceAction
{
public static function make(): Action
{
return Action::make('card_balance')
->label(__('Card balance'))
->icon('heroicon-o-credit-card')
->requiresConfirmation(false)
->modal()
->modalContent(fn (Card $record): View => CardBalanceRepository::make()->showCardBalance($record))
->modalFooterActions([]);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Modules\Card\Filament\Actions;
use App\Modules\Card\Models\Card;
use App\Modules\CardRequisite\Repositories\CardRequisiteRepository;
use Filament\Actions\Action;
class DownloadCardRequisteAction
{
public static function make(): Action
{
return Action::make('card_requisite')
->label(__('Card requisite'))
->icon('heroicon-o-document-text')
->requiresConfirmation()
->modalIcon('heroicon-o-document-text')
->action(fn (Card $record) => CardRequisiteRepository::make()->downloadCardRequisite($record));
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Modules\Card\Filament\Actions;
use App\Modules\Card\Models\Card;
use App\Modules\CardTransaction\Repositories\CardTransactionRepository;
use Filament\Actions\Action;
use Filament\Forms\Components\DatePicker;
use Livewire\Component;
class DownloadCardTransactionAction
{
public static function make(): Action
{
return Action::make('card_transactions')
->label(__('Card transactions'))
->icon('heroicon-o-arrows-right-left')
->requiresConfirmation()
->modalIcon('heroicon-m-arrows-right-left')
->schema([
DatePicker::make('start_date')
->label(__('Start date'))
->native(false)
->required()
->beforeOrEqual('today'),
DatePicker::make('end_date')
->label(__('End date'))
->native(false)
->required()
->beforeOrEqual('today'),
])
->action(
fn (array $data, Card $record, Component $livewire) => CardTransactionRepository::make()->downloadCardTransaction($data, $record, $livewire)
);
}
}