Browse Source

fix sort

main
Christoph Marzell 1 week ago
parent
commit
3cfdd880bf
  1. 11
      app/models/entry.rb

11
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

Loading…
Cancel
Save