feat: Refactor egg price selection options and add success notifications for record creation and updates

This commit is contained in:
Yoga Pangestu 2026-02-24 16:59:38 +07:00
parent ba0781024f
commit 7967758491
11 changed files with 60 additions and 11 deletions

View File

@ -2,8 +2,8 @@
namespace App\Filament\Resources\DelayedGoods\Pages; namespace App\Filament\Resources\DelayedGoods\Pages;
use App\Filament\Actions\Cheerful\CreateAction;
use App\Filament\Resources\DelayedGoods\DelayedGoodResource; use App\Filament\Resources\DelayedGoods\DelayedGoodResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ManageRecords; use Filament\Resources\Pages\ManageRecords;
use Filament\Support\Enums\Width; use Filament\Support\Enums\Width;

View File

@ -31,9 +31,15 @@ public static function configure(Schema $schema): Schema
->schema([ ->schema([
Select::make('egg_price_id') Select::make('egg_price_id')
->label('Harga Telur') ->label('Harga Telur')
->options(EggPrice::query()->with('unit')->get()->mapWithKeys(function ($item) { ->options(
return [$item->id => $item->name.' ('.($item->unit?->alias ?? '-').')']; EggPrice::query()
})) ->with('unit')
->orderBy('name')
->get()
->mapWithKeys(function ($item) {
return [$item->id => $item->name.' ('.($item->unit?->alias ?? '-').')'];
})
)
->searchable() ->searchable()
->preload() ->preload()
->native(false) ->native(false)

View File

@ -6,6 +6,7 @@
use App\Filament\Resources\Manage\EggCollections\EggCollectionResource; use App\Filament\Resources\Manage\EggCollections\EggCollectionResource;
use App\Filament\Resources\Manage\EggCollections\Traits\HasEggs; use App\Filament\Resources\Manage\EggCollections\Traits\HasEggs;
use App\Models\EggCollectionItem; use App\Models\EggCollectionItem;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord; use Filament\Resources\Pages\CreateRecord;
class CreateEggCollection extends CreateRecord class CreateEggCollection extends CreateRecord
@ -55,4 +56,12 @@ protected function afterCreate(): void
$this->eggs = []; $this->eggs = [];
} }
protected function getCreatedNotification(): ?Notification
{
return Notification::make()
->title('Data Berhasil Disimpan')
->body('Data baru telah berhasil ditambahkan dan disimpan oleh sistem.')
->success();
}
} }

View File

@ -6,6 +6,7 @@
use App\Filament\Resources\Manage\EggCollections\EggCollectionResource; use App\Filament\Resources\Manage\EggCollections\EggCollectionResource;
use App\Filament\Resources\Manage\EggCollections\Traits\HasEggs; use App\Filament\Resources\Manage\EggCollections\Traits\HasEggs;
use App\Models\EggCollectionItem; use App\Models\EggCollectionItem;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord; use Filament\Resources\Pages\EditRecord;
class EditEggCollection extends EditRecord class EditEggCollection extends EditRecord
@ -64,4 +65,12 @@ protected function afterSave(): void
]); ]);
} }
} }
protected function getSavedNotification(): ?Notification
{
return Notification::make()
->title('Perubahan Berhasil Disimpan')
->body('Perubahan pada data telah berhasil disimpan dan diperbarui di sistem.')
->success();
}
} }

View File

@ -2,8 +2,8 @@
namespace App\Filament\Resources\Manage\EggCollections\Pages; namespace App\Filament\Resources\Manage\EggCollections\Pages;
use App\Filament\Actions\Cheerful\CreateAction;
use App\Filament\Resources\Manage\EggCollections\EggCollectionResource; use App\Filament\Resources\Manage\EggCollections\EggCollectionResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
class ListEggCollections extends ListRecords class ListEggCollections extends ListRecords

View File

@ -6,6 +6,7 @@
use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource; use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource;
use App\Filament\Resources\Manage\FeedPurchases\Traits\HasCart; use App\Filament\Resources\Manage\FeedPurchases\Traits\HasCart;
use App\Models\FeedPurchaseItem; use App\Models\FeedPurchaseItem;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord; use Filament\Resources\Pages\CreateRecord;
use Livewire\Attributes\On; use Livewire\Attributes\On;
@ -70,4 +71,12 @@ protected function afterCreate(): void
$this->record->updateFeedStock(); $this->record->updateFeedStock();
} }
protected function getCreatedNotification(): ?Notification
{
return Notification::make()
->title('Data Berhasil Disimpan')
->body('Data baru telah berhasil ditambahkan dan disimpan oleh sistem.')
->success();
}
} }

View File

@ -6,6 +6,7 @@
use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource; use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource;
use App\Filament\Resources\Manage\FeedPurchases\Traits\HasCart; use App\Filament\Resources\Manage\FeedPurchases\Traits\HasCart;
use App\Models\FeedPurchaseItem; use App\Models\FeedPurchaseItem;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord; use Filament\Resources\Pages\EditRecord;
use Livewire\Attributes\On; use Livewire\Attributes\On;
@ -62,4 +63,12 @@ protected function mutateFormDataBeforeSave(array $data): array
return $data; return $data;
} }
protected function getSavedNotification(): ?Notification
{
return Notification::make()
->title('Perubahan Berhasil Disimpan')
->body('Perubahan pada data telah berhasil disimpan dan diperbarui di sistem.')
->success();
}
} }

View File

@ -2,8 +2,8 @@
namespace App\Filament\Resources\Manage\FeedPurchases\Pages; namespace App\Filament\Resources\Manage\FeedPurchases\Pages;
use App\Filament\Actions\Cheerful\CreateAction;
use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource; use App\Filament\Resources\Manage\FeedPurchases\FeedPurchaseResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
class ListFeedPurchases extends ListRecords class ListFeedPurchases extends ListRecords

View File

@ -67,9 +67,15 @@ public static function form(Schema $schema): Schema
->schema([ ->schema([
Select::make('egg_price_id') Select::make('egg_price_id')
->label('Harga Telur') ->label('Harga Telur')
->options(EggPrice::query()->with('unit')->get()->mapWithKeys(function ($item) { ->options(
return [$item->id => $item->name.' ('.($item->unit?->alias ?? '-').')']; EggPrice::query()
})) ->with('unit')
->orderBy('name')
->get()
->mapWithKeys(function ($item) {
return [$item->id => $item->name.' ('.($item->unit?->alias ?? '-').')'];
})
)
->searchable() ->searchable()
->preload() ->preload()
->native(false) ->native(false)
@ -122,6 +128,7 @@ public static function form(Schema $schema): Schema
->label('Jumlah Telur') ->label('Jumlah Telur')
->placeholder('0') ->placeholder('0')
->autocomplete(false) ->autocomplete(false)
->helperText('Jumlah per satuan.')
->required() ->required()
->live() ->live()
->afterStateUpdated(function ($state, callable $get, callable $set) use ($recalculateTotal): void { ->afterStateUpdated(function ($state, callable $get, callable $set) use ($recalculateTotal): void {

View File

@ -2,8 +2,8 @@
namespace App\Filament\Resources\Manage\Orders\Pages; namespace App\Filament\Resources\Manage\Orders\Pages;
use App\Filament\Actions\Cheerful\CreateAction;
use App\Filament\Resources\Manage\Orders\OrderResource; use App\Filament\Resources\Manage\Orders\OrderResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ManageRecords; use Filament\Resources\Pages\ManageRecords;
use Filament\Support\Enums\Width; use Filament\Support\Enums\Width;

View File

@ -2,8 +2,8 @@
namespace App\Filament\Resources\Master\EggPrices\Pages; namespace App\Filament\Resources\Master\EggPrices\Pages;
use App\Filament\Actions\Cheerful\CreateAction;
use App\Filament\Resources\Master\EggPrices\EggPriceResource; use App\Filament\Resources\Master\EggPrices\EggPriceResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ManageRecords; use Filament\Resources\Pages\ManageRecords;
use Filament\Support\Enums\Width; use Filament\Support\Enums\Width;