module EntriesHelper # Berechnet Kilometerpauschale für eine Entry anhand der gespeicherten MileageRate # entry: muss attribute `distance_km` und `date` haben def kilometrergeld_for(entry) rate = MileageRate.for_year(entry.date.year) if rate (entry.distance_km.to_f * rate).round(2) else # Fallback: z. B. Standardrate 0.42 (entry.distance_km.to_f * 0.05).round(2) end end # Für Summen: sum_meilen ist Summe der km oder Array von entries def total_km_cost_for_year(user, year) rate = MileageRate.for_year(year) || 0.42 total_km = user.entries .where("EXTRACT(YEAR FROM date) = ?", year) .sum(:distance_km).to_f (total_km * rate).round(2) end end