@extends('layouts.app') @section('title', '區間統計表') @push('styles') @endpush @section('content')
{{-- 控制區 --}}
{{-- 快捷按鈕 --}} 本月 上月 本季
@if(count($userStats) === 0)
此區間尚無工時記錄。
@else {{-- 類型篩選 --}}
@foreach(['all' => '全部', '開發' => '開發', '維護' => '維護', '保固' => '保固', '其他' => '其他'] as $val => $lbl) @endforeach
{{-- 矩陣表格 --}}
區間工時矩陣 — {{ $startDate }} ~ {{ $endDate }}
@foreach($userStats as $uid => $stat) @endforeach @php $MAIN_TYPES = ['開發','維護','保固']; @endphp @foreach($projectsByType as $type => $projects) @foreach($projects as $project) @php $rowTotal = $rowTotalMd = 0; foreach(array_keys($userStats) as $uid) { $rowTotal += $matrix[$project->id][$uid]['hours'] ?? 0; $rowTotalMd += $matrix[$project->id][$uid]['man_days'] ?? 0; } @endphp @foreach(array_keys($userStats) as $uid) @php $h = $matrix[$project->id][$uid]['hours'] ?? 0; $md = $matrix[$project->id][$uid]['man_days'] ?? 0; @endphp @endforeach @endforeach @endforeach {{-- 實際執行人天 --}} @foreach($userStats as $uid => $stat) @endforeach {{-- 應執行人天(區間標準) --}} @foreach($userStats as $uid => $stat) @endforeach {{-- 加班時數 --}} @foreach($userStats as $uid => $stat) @php $ot = max(0, $stat['total_hours'] - $rangeStandardHours); @endphp @endforeach
客戶 專案名稱 預計結案日 評估人天 {{ $stat['user']->name }}
{{ rtrim(rtrim(number_format($stat['total_hours'], 2), '0'), '.') }}小時
合計
{{ $type }}
{{ $project->client?->name ?? '—' }} {{ $project->name }} {{ $project->end_date ? \Carbon\Carbon::parse($project->end_date)->format('Y-m-d') : '—' }} @if(!is_null($estimatedManDays[$project->project_id] ?? null)) {{ $estimatedManDays[$project->project_id] }}天 @else @endif @if($h > 0) {{ number_format($h, 1) }}小時 @else @endif {{ $rowTotal > 0 ? number_format($rowTotal, 1).'小時' : '—' }}
實際執行人天 {{ number_format($stat['total_man_days'], 1) }}天({{ rtrim(rtrim(number_format($stat['total_hours'], 2), '0'), '.') }}小時) {{ number_format($totals['man_days'], 1) }}天({{ rtrim(rtrim(number_format($totals['hours'], 2), '0'), '.') }}小時)
應執行人天(區間標準){{ $rangeStandardDays }}天{{ number_format($rangeStandardHours, 1) }}小時
加班時數 {{ $ot > 0 ? number_format($ot, 1).'小時' : '—' }} @php $totalOt = max(0, $totals['hours'] - $rangeStandardHours * count($userStats)); @endphp {{ $totalOt > 0 ? number_format($totalOt, 1).'小時' : '—' }}
@endif
@endsection @push('scripts') @endpush