diff --git a/app/Filament/Clusters/Settings/Resources/CurrencyRates/CurrencyRateResource.php b/app/Filament/Clusters/Settings/Resources/CurrencyRates/CurrencyRateResource.php new file mode 100644 index 0000000..458fe5d --- /dev/null +++ b/app/Filament/Clusters/Settings/Resources/CurrencyRates/CurrencyRateResource.php @@ -0,0 +1,70 @@ + ListCurrencyRates::route('/'), + 'create' => CreateCurrencyRate::route('/create'), + 'edit' => EditCurrencyRate::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Clusters/Settings/Resources/CurrencyRates/Pages/CreateCurrencyRate.php b/app/Filament/Clusters/Settings/Resources/CurrencyRates/Pages/CreateCurrencyRate.php new file mode 100644 index 0000000..e377986 --- /dev/null +++ b/app/Filament/Clusters/Settings/Resources/CurrencyRates/Pages/CreateCurrencyRate.php @@ -0,0 +1,11 @@ +components([ + Select::make('currency_from') + ->label(__('Currency from')) + ->native(false) + ->searchable() + ->options(CurrencyRate::currencies()) + ->rules('required') + ->belowLabel('1 möçberi'), + + Select::make('currency_to') + ->label(__('Currency to')) + ->native(false) + ->searchable() + ->options(CurrencyRate::currencies()) + ->rules('required') + ->belowLabel('1 möçberi'), + + TextInput::make('value') + ->label(__('Currency value')) + ->required() + ->numeric() + ->belowLabel('Bitin däl sanlary "." bilen ýazmaly'), + ]); + } +} diff --git a/app/Filament/Clusters/Settings/Resources/CurrencyRates/Tables/CurrencyRatesTable.php b/app/Filament/Clusters/Settings/Resources/CurrencyRates/Tables/CurrencyRatesTable.php new file mode 100644 index 0000000..05124df --- /dev/null +++ b/app/Filament/Clusters/Settings/Resources/CurrencyRates/Tables/CurrencyRatesTable.php @@ -0,0 +1,47 @@ +columns([ + TextColumn::make('currency_from') + ->label(__('Currency from')) + ->searchable(), + TextColumn::make('currency_to') + ->label(__('Currency to')) + ->searchable(), + TextColumn::make('value') + ->label(__('Currency value')) + ->searchable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/app/Filament/Clusters/Settings/SettingsCluster.php b/app/Filament/Clusters/Settings/SettingsCluster.php index afd87a0..f6e00de 100644 --- a/app/Filament/Clusters/Settings/SettingsCluster.php +++ b/app/Filament/Clusters/Settings/SettingsCluster.php @@ -9,6 +9,8 @@ use Filament\Support\Icons\Heroicon; class SettingsCluster extends Cluster { + protected static ?int $navigationSort = 100; + protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedCog8Tooth; protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::End; diff --git a/app/Modules/CurrencyRate/Models/CurrencyRate.php b/app/Modules/CurrencyRate/Models/CurrencyRate.php index baca9b8..49d0521 100644 --- a/app/Modules/CurrencyRate/Models/CurrencyRate.php +++ b/app/Modules/CurrencyRate/Models/CurrencyRate.php @@ -2,7 +2,8 @@ namespace App\Modules\CurrencyRate\Models; -use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property int $id @@ -14,6 +15,20 @@ use Illuminate\Database\Eloquent\Model; */ class CurrencyRate extends Model { + /** + * The table associated with the model. + */ + protected $table = 'currency_rates'; + + /** + * Get the user's first name. + */ + protected function name(): Attribute + { + return Attribute::make( + get: fn () => $this->currency_from . '-' . $this->currency_to, + ); + } /** * Currencies * diff --git a/lang/tk.json b/lang/tk.json index cc5f268..ee28588 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -705,5 +705,9 @@ "Name, Surname, Patronic name": "Ady, Familiýasy, Atasynyň ady", "Deposit account": "Goýum hasaby", "Files": "Faýllar", - "Payment type": "Töleg görnüşi" + "Payment type": "Töleg görnüşi", + "Currency from": "Walýuta girişi", + "Currency to": "Walýuta çykýan", + "Currency value": "Kursy", + "Currency rates": "Walýuta kurslary" }