|
|
@ -132,11 +132,20 @@ class EntriesController < ApplicationController |
|
|
else |
|
|
else |
|
|
relevant_entries = entries |
|
|
relevant_entries = entries |
|
|
end |
|
|
end |
|
|
|
|
|
first_entry_date = entries.first.date |
|
|
|
|
|
|
|
|
# Gruppiere nach Kalenderjahr + Woche |
|
|
|
|
|
active_weeks = relevant_entries.group_by { |e| [e.date.cwyear, e.date.cweek] }.keys.size |
|
|
|
|
|
|
|
|
if remaining == 0 && done_minutes > 0 |
|
|
|
|
|
# Wenn abgeschlossen → bis zum letzten Eintrag rechnen |
|
|
|
|
|
last_entry_date = entries.maximum(:date) |
|
|
|
|
|
total_days = (last_entry_date - first_entry_date).to_i |
|
|
|
|
|
else |
|
|
|
|
|
# Sonst bis heute rechnen |
|
|
|
|
|
total_days = (Date.today - first_entry_date).to_i |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
weeks = total_days / 7.0 |
|
|
|
|
|
weeks = 1 if weeks < 1 |
|
|
|
|
|
|
|
|
weeks = [active_weeks, 1].max |
|
|
|
|
|
actual_per_week = (done_minutes / 60.0) / weeks |
|
|
actual_per_week = (done_minutes / 60.0) / weeks |
|
|
|
|
|
|
|
|
@actual_hours_per_week[[typ, art]] = actual_per_week.round(2) |
|
|
@actual_hours_per_week[[typ, art]] = actual_per_week.round(2) |
|
|
|