@use('Brick\Math\BigDecimal') @use('Brick\Money\Money') @use('Illuminate\Support\Carbon') @use('Carbon\CarbonInterval') @inject('colorService', 'App\Service\ColorService') Report @if($debug) @endif

Report

{{ $localization->formatDate($start->timezone($timezone)) }} - {{ $localization->formatDate($end->timezone($timezone)) }}

Duration
{{ $localization->formatInterval(CarbonInterval::seconds($aggregatedData['seconds'])) }}
@if($showBillableRate)
Total cost
{{ $localization->formatCurrency(Money::of(BigDecimal::ofUnscaledValue($aggregatedData['cost'], 2)->__toString(), $currency)) }}
@endif
@if($showBillableRate) @endif @foreach($aggregatedData['grouped_data'] as $group1Entry) @if($showBillableRate) @endif @endforeach @if($showBillableRate) @endif
{{ $group->description() }} DurationCost
@if($group->is(\App\Enums\TimeEntryAggregationType::Billable)) {{ $group1Entry['key'] === '1' ? 'Billable' : 'Non-billable' }} @else {{ $group1Entry['description'] ?? $group1Entry['key'] ?? 'No '.Str::lower($group->description()) }} @endif
{{ $localization->formatInterval(CarbonInterval::seconds($group1Entry['seconds'])) }} {{ $localization->formatCurrency(Money::of(BigDecimal::ofUnscaledValue($group1Entry['cost'], 2)->__toString(), $currency)) }}
Total {{ $localization->formatInterval(CarbonInterval::seconds($aggregatedData['seconds'])) }} {{ $localization->formatCurrency(Money::of(BigDecimal::ofUnscaledValue($aggregatedData['cost'], 2)->__toString(), $currency)) }}
@foreach($aggregatedData['grouped_data'] as $group1Entry)

@if($group->is(\App\Enums\TimeEntryAggregationType::Billable)) {{ $group1Entry['key'] === '1' ? 'Billable' : 'Non-billable' }} @else {{ $group->description() }}: {{ $group1Entry['description'] ?? $group1Entry['key'] ?? 'No '.Str::lower($group->description()) }} @endif

@if($showBillableRate) @endif @php $counter = 1; $totalDuration = 0; $totalCost = 0; @endphp @foreach($group1Entry['grouped_data'] as $group2Entry) @php $duration = CarbonInterval::seconds($group2Entry['seconds']); @endphp @if($showBillableRate) @endif @php $totalDuration += $group2Entry['seconds']; if ($showBillableRate) { $totalCost += $group2Entry['cost']; } @endphp @endforeach
{{ $subGroup->description() }} Duration Duration (h) Cost
@if($subGroup->is(\App\Enums\TimeEntryAggregationType::Billable)) {{ $group2Entry['key'] === '1' ? 'Billable' : 'Non-billable' }} @else {{ $group2Entry['description'] ?? $group2Entry['key'] ?? '-' }} @endif {{ $localization->formatInterval($duration) }} {{ $localization->formatNumber($duration->totalHours) }} {{ $localization->formatCurrency(Money::of(BigDecimal::ofUnscaledValue($group2Entry['cost'], 2)->__toString(), $currency)) }}
@endforeach