diff --git a/app/models/entry.rb b/app/models/entry.rb index 9c6c91a..396e259 100644 --- a/app/models/entry.rb +++ b/app/models/entry.rb @@ -31,14 +31,13 @@ class Entry < ApplicationRecord def self.total_kilometer_cost_by_year(user) yearly_distances = where(user: user) .where.not(distance_km: nil) - .group("EXTRACT(YEAR FROM date)::int") + .group(Arel.sql("EXTRACT(YEAR FROM date)")) + .order(Arel.sql("EXTRACT(YEAR FROM date) DESC")) .sum(:distance_km) - # Für jedes Jahr die Pauschale holen und multiplizieren - yearly_distances.transform_keys(&:to_i).transform_values do |km_sum| - year = yearly_distances.key(km_sum).to_i - rate = MileageRate.find_by(year: year)&.rate_per_km || 0.42 - (km_sum * rate).round(2) + yearly_distances.each_with_object({}) do |(year, km_sum), result| + rate = MileageRate.find_by(year: year.to_i)&.rate_per_km || 0.42 + result[year.to_i] = (km_sum * rate).round(2) end end