WIP #98 Product Services Sum / Totals

This commit is contained in:
Nisse Lommerde 2025-02-11 22:11:53 -05:00
parent e45041566a
commit 2cfe8a466b

View File

@ -9,6 +9,7 @@
use Filament\Forms\Form; use Filament\Forms\Form;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Tables; use Filament\Tables;
use Filament\Tables\Columns\Summarizers\Sum;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
@ -49,35 +50,37 @@ public static function table(Table $table): Table
->label('Long Name') ->label('Long Name')
->extraHeaderAttributes(['class' => 'w-full']), ->extraHeaderAttributes(['class' => 'w-full']),
Tables\Columns\TextColumn::make('quantity') Tables\Columns\TextColumn::make('productServices.amount')
->alignRight() ->alignRight()
->getStateUsing(function (Table $table, Model $record) { ->getStateUsing(function (Table $table, Model $record) {
return $record->getQuantityAttribute( return $record->getQuantityAttribute(
$table->getFilter('created_at')->getState()['created_at'], $table->getFilter('created_at')->getState()['created_at'],
$table->getFilter('created_until')->getState()['created_until'] $table->getFilter('created_until')->getState()['created_until']
); );
}), })
->summarize(Sum::make('amount')->label('')),
Tables\Columns\TextColumn::make('amount') Tables\Columns\TextColumn::make('productServices.amount_price')
->alignRight() ->alignRight()
->money()
->getStateUsing(function (Table $table, Model $record) { ->getStateUsing(function (Table $table, Model $record) {
return $record->getAmountAttribute( return $record->getAmountAttribute(
$table->getFilter('created_at')->getState()['created_at'], $table->getFilter('created_at')->getState()['created_at'],
$table->getFilter('created_until')->getState()['created_until'] $table->getFilter('created_until')->getState()['created_until']
); );
}) })
->money('usd'), ->summarize(Sum::make('amount_price')->label('')->money()),
Tables\Columns\TextColumn::make('salesPercentage') Tables\Columns\TextColumn::make('salesPercentage')
->alignRight() ->alignRight()
->suffix('%')
->label('% sales')
->getStateUsing(function (Table $table, Model $record) { ->getStateUsing(function (Table $table, Model $record) {
return $record->getSalesPercentageAttribute( return $record->getSalesPercentageAttribute(
$table->getFilter('created_at')->getState()['created_at'], $table->getFilter('created_at')->getState()['created_at'],
$table->getFilter('created_until')->getState()['created_until'] $table->getFilter('created_until')->getState()['created_until']
); );
}) }),
->suffix('%')
->label('% sales'),
Tables\Columns\TextColumn::make('averagePrice') Tables\Columns\TextColumn::make('averagePrice')
->getStateUsing(function (Table $table, Model $record) { ->getStateUsing(function (Table $table, Model $record) {