feat(feat): add price and adjust logic

This commit is contained in:
Yoga Pangestu 2026-02-09 11:39:21 +07:00
parent f165af78be
commit bd86ff2159
3 changed files with 23 additions and 0 deletions

View File

@ -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()

View File

@ -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);

View File

@ -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();