Commit graph

9 commits

Author SHA1 Message Date
d614d678af
chore: switch from h-float to min-int in timesheet
Some checks failed
Release / Build and Release (push) Successful in 6s
Continuous Integration / Lint, Check & Test (push) Failing after 56s
Continuous Integration / Build Package (push) Successful in 1m42s
2026-04-07 08:28:50 +02:00
a8c41ec833
refactor: use chrono for month names
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m20s
Continuous Integration / Build Package (push) Successful in 1m40s
2026-04-02 18:18:48 +02:00
d11a35c157
refactor(timesheet): use repeat() for separator lines and sort points before grouping
All checks were successful
Continuous Integration / Build Package (push) Successful in 25s
Continuous Integration / Lint, Check & Test (push) Successful in 41s
2026-04-02 17:07:36 +02:00
7bee32886f
feat(timesheet): sort months ascending so newest is at bottom 2026-04-02 17:06:28 +02:00
1a716f6d0e
feat(timesheet): add report generation logic
Implement the core report generation that:
- Loads .streamd.toml configuration
- Calculates expected hours based on periods and day types
- Calculates actual hours following day type rules:
  - Sick leave: max(expected, worked)
  - Vacation: expected + worked
  - Flex day: 0
  - Holiday: 0 expected
- Generates warnings for missing days, overlapping timecards,
  and work outside configured periods
- Calculates monthly and cumulative balances
- Sorts months in descending order
2026-04-02 16:22:26 +02:00
e0ba2cddf3
feat(timesheet): add overlap detection for timecards
Add find_overlapping_timecards function to detect overlapping time
ranges on the same day. This is used to generate warnings in the
timesheet report.
2026-04-02 16:22:25 +02:00
92ca364e55
feat(timesheet): add report data structures
Add DayReport, DayType, DayWarning, MonthReport, and TimesheetReport
structs for generating timesheet reports. These support:
- Day types (Regular, SickLeave, Vacation, Holiday, FlexDay, Weekend, Missing, OutsidePeriod)
- Warnings for missing days, overlapping timecards, and outside-period work
- Monthly and cumulative calculations
2026-04-02 16:22:24 +02:00
92c8e9712a
feat(timesheet): add configuration model with period validation
Add TimesheetConfig and Period structs for configuring timesheet
periods with expected working hours per week. Include RepositoryConfig
for loading .streamd.toml with timezone and timesheet configuration.

Validation ensures:
- No overlapping periods
- Valid date ranges (start <= end)

Also adds chrono-tz dependency for timezone support.
2026-04-02 16:22:21 +02:00
ed493cff29
refactor: rewrite in rust
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 1m38s
Continuous Integration / Build Package (push) Successful in 1m54s
2026-03-29 18:28:03 +02:00