diff --git a/app/Filament/Resources/Master/Feeds/FeedResource.php b/app/Filament/Resources/Master/Feeds/FeedResource.php index 98828aa..8b705c7 100644 --- a/app/Filament/Resources/Master/Feeds/FeedResource.php +++ b/app/Filament/Resources/Master/Feeds/FeedResource.php @@ -19,6 +19,7 @@ use Filament\Schemas\Schema; use Filament\Support\Enums\Width; use Filament\Support\Icons\Heroicon; +use Filament\Support\RawJs; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Filters\TrashedFilter; @@ -69,6 +70,17 @@ public static function form(Schema $schema): Schema ->required() ->native(false) ->default(FeedStatus::AVAILABLE), + + TextInput::make('price') + ->label('Harga') + ->placeholder('1,000,000') + ->autocomplete(false) + ->autofocus() + ->required() + ->mask(RawJs::make('$money($input)')) + ->prefix('Rp') + ->helperText('Harga per satuan yang dipilih.') + ->dehydrateStateUsing(fn ($state) => str_replace(',', '', $state)), ]) ->columns(1); } @@ -88,6 +100,10 @@ public static function table(Table $table): Table ->suffix(fn (Feed $record) => ' '.$record->unit->alias) ->sortable(), + TextColumn::make('price') + ->label('Harga') + ->money('IDR', decimalPlaces: 0), + TextColumn::make('status') ->label('Status') ->badge() diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 7be5b05..cd103ac 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -18,6 +18,7 @@ protected function casts(): array { return [ 'stock' => 'decimal:2', + 'price' => 'integer', 'status' => FeedStatus::class, ]; } @@ -27,6 +28,11 @@ public function unit(): BelongsTo return $this->belongsTo(Unit::class); } + public function purchaseItems(): HasMany + { + return $this->hasMany(FeedPurchaseItem::class); + } + public function purchases(): HasMany { return $this->hasMany(FeedPurchase::class); diff --git a/database/migrations/2026_02_09_024536_create_feeds_table.php b/database/migrations/2026_02_09_024536_create_feeds_table.php index 07978bf..e7c4d03 100644 --- a/database/migrations/2026_02_09_024536_create_feeds_table.php +++ b/database/migrations/2026_02_09_024536_create_feeds_table.php @@ -17,6 +17,7 @@ public function up(): void $table->string('name', 50); $table->foreignId('unit_id')->constrained()->cascadeOnDelete(); $table->decimal('stock', 15, 2)->default(0); + $table->unsignedInteger('price'); $table->enum('status', FeedStatus::cases())->default(FeedStatus::AVAILABLE->value)->comment(FeedStatus::comment()); $table->timestamp('created_at')->useCurrent(); $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();