diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7549b6b5..424ed539 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -154,7 +154,7 @@ module ApplicationHelper def totals_by_currency(collection:, money_method:, separator: " | ", negate: false) collection.group_by(&:currency) - .transform_values { |item| negate ? item.sum(&money_method) * -1 : item.sum(&money_method) } + .transform_values { |item| calculate_total(item, money_method, negate) } .map { |_currency, money| format_money(money) } .join(separator) end @@ -166,4 +166,12 @@ module ApplicationHelper cookies[:admin] == "true" end + + private + + def calculate_total(item, money_method, negate) + items = item.reject { |i| i.respond_to?(:entryable) && i.entryable.transfer? } + total = items.sum(&money_method) + negate ? -total : total + end end diff --git a/app/views/account/entries/_entry_group.html.erb b/app/views/account/entries/_entry_group.html.erb index 4006b070..beec5893 100644 --- a/app/views/account/entries/_entry_group.html.erb +++ b/app/views/account/entries/_entry_group.html.erb @@ -17,7 +17,9 @@ <% if totals %> - <%= totals_by_currency(collection: entries, money_method: :amount_money, negate: true) %> +