Tables\Columns\TextColumn::make('hours_used')
->getStateUsing(function (Client $record) {
return $record->timelogs()
->select(
DB::raw('DAY(timelogs.created_at), (CEIL(( SUM(timelogs.total_seconds) /3600) / 0.25) * 0.25) as billable' )
)
->whereBetween('timelogs.created_at', [$this->startDate, $this->endDate])
->groupBy(DB::raw('client_id, ticket_id, DAY(timelogs.created_at)'))->get()->sum('billable');
})
->summarize(Sum::make()->using(fn (Builder $query, Client $record): float => $query->sum(
$record->timelogs()->select(
DB::raw('DAY(timelogs.created_at), (CEIL(( SUM(timelogs.total_seconds) /3600) / 0.25) * 0.25) as billable' )
)
->whereBetween('timelogs.created_at', [$this->startDate, $this->endDate])
->groupBy(DB::raw('client_id, ticket_id, DAY(timelogs.created_at)'))->get()->sum('billable')
) )),
Tables\Columns\TextColumn::make('hours_used')
->getStateUsing(function (Client $record) {
return $record->timelogs()
->select(
DB::raw('DAY(timelogs.created_at), (CEIL(( SUM(timelogs.total_seconds) /3600) / 0.25) * 0.25) as billable' )
)
->whereBetween('timelogs.created_at', [$this->startDate, $this->endDate])
->groupBy(DB::raw('client_id, ticket_id, DAY(timelogs.created_at)'))->get()->sum('billable');
})
->summarize(Sum::make()->using(fn (Builder $query, Client $record): float => $query->sum(
$record->timelogs()->select(
DB::raw('DAY(timelogs.created_at), (CEIL(( SUM(timelogs.total_seconds) /3600) / 0.25) * 0.25) as billable' )
)
->whereBetween('timelogs.created_at', [$this->startDate, $this->endDate])
->groupBy(DB::raw('client_id, ticket_id, DAY(timelogs.created_at)'))->get()->sum('billable')
) )),