TimesheetStats.ktCollects timesheet entries and computes aggregate statistics: total hours, planned personnel days vs. actual, cost summaries, and AI time savings. Uses Kotlin's collection operations for efficient data processing.
Receives a filtered list of TimesheetDO entities, groups them by relevant dimensions (user, task, project), computes per-group sums, and returns a structured TimesheetStats result object.
Separated from the DAO and export logic to keep statistical computation independently testable and reusable across dashboards, reports, and Excel exports.
| Commit | What changed |
|---|---|
868d6abb75 | 2025 -> 2026 |
63081666f6 | Source file headers: 2024-> 2025. |
b6092df092 | Copyright 2023 -> 2024 |
ab45d51fa4 | Copyright 2001-2022 -> 2001-2023. |
5f7ef41b8c | Copyright 2021 -> 2022 |
ceb63e8a1b | Source code header: (C) 2001-2021. |
0e8ed158b6 | TimesheetStats supports now rounding modes. Migrated to Kotlin. |