diff --git a/app/models/budget.rb b/app/models/budget.rb index c5af34f7..2abfe2cf 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -10,7 +10,7 @@ class Budget < ApplicationRecord monetize :budgeted_spending, :expected_income, :allocated_spending, :actual_spending, :available_to_spend, :available_to_allocate, - :estimated_spending, :estimated_income, :actual_income + :estimated_spending, :estimated_income, :actual_income, :remaining_expected_income class << self def for_date(date) @@ -19,12 +19,13 @@ class Budget < ApplicationRecord def find_or_bootstrap(family, date: Date.current) Budget.transaction do - budget = Budget.find_or_create_by( + budget = Budget.find_or_create_by!( family: family, start_date: date.beginning_of_month, - end_date: date.end_of_month, - currency: family.currency - ) + end_date: date.end_of_month + ) do |b| + b.currency = family.currency + end budget.sync_budget_categories diff --git a/app/views/budget_categories/_budget_category_form.html.erb b/app/views/budget_categories/_budget_category_form.html.erb index 9b7a1cad..efd98dc9 100644 --- a/app/views/budget_categories/_budget_category_form.html.erb +++ b/app/views/budget_categories/_budget_category_form.html.erb @@ -8,7 +8,7 @@

<%= budget_category.category.name %>

-

<%= format_money(budget_category.category.avg_monthly_total, precision: 0) %>/m average

+

<%= format_money(Money.new(budget_category.category.avg_monthly_total, budget_category.currency), precision: 0) %>/m average

diff --git a/app/views/budget_categories/_uncategorized_budget_category_form.html.erb b/app/views/budget_categories/_uncategorized_budget_category_form.html.erb index da2b6997..4e586379 100644 --- a/app/views/budget_categories/_uncategorized_budget_category_form.html.erb +++ b/app/views/budget_categories/_uncategorized_budget_category_form.html.erb @@ -7,14 +7,14 @@

<%= budget_category.category.name %>

-

<%= format_money(budget_category.category.avg_monthly_total, precision: 0) %>/m average

+

<%= format_money(Money.new(budget_category.category.avg_monthly_total, budget_category.category.family.currency), precision: 0) %>/m average

$ - <%= text_field_tag :uncategorized, budget_category.budgeted_spending, autocomplete: "off", class: "form-field__input text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none", disabled: true %> + <%= text_field_tag :uncategorized, budget_category.budgeted_spending_money, autocomplete: "off", class: "form-field__input text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none", disabled: true %>
diff --git a/app/views/budgets/_budget_donut.html.erb b/app/views/budgets/_budget_donut.html.erb index 2dc2fd72..035389f7 100644 --- a/app/views/budgets/_budget_donut.html.erb +++ b/app/views/budgets/_budget_donut.html.erb @@ -9,7 +9,7 @@
"> - <%= format_money(budget.actual_spending) %> + <%= format_money(budget.actual_spending_money) %>
<%= link_to edit_budget_path(budget), class: "btn btn--secondary flex items-center gap-1 mt-2" do %> diff --git a/app/views/budgets/_budgeted_summary.html.erb b/app/views/budgets/_budgeted_summary.html.erb index a77f40b3..742d950c 100644 --- a/app/views/budgets/_budgeted_summary.html.erb +++ b/app/views/budgets/_budgeted_summary.html.erb @@ -22,9 +22,9 @@

<%= format_money(budget.actual_income_money) %> earned

<% if budget.remaining_expected_income.negative? %> - <%= format_money(budget.remaining_expected_income.abs) %> over + <%= format_money(budget.remaining_expected_income_money.abs) %> over <% else %> - <%= format_money(budget.remaining_expected_income) %> left + <%= format_money(budget.remaining_expected_income_money) %> left <% end %>

diff --git a/app/views/settings/preferences/show.html.erb b/app/views/settings/preferences/show.html.erb index 8b066503..7af910e2 100644 --- a/app/views/settings/preferences/show.html.erb +++ b/app/views/settings/preferences/show.html.erb @@ -12,8 +12,7 @@ <%= form.fields_for :family do |family_form| %> <%= family_form.select :currency, currencies_for_select.map { |currency| [ "#{currency.name} (#{currency.iso_code})", currency.iso_code ] }, - { label: t(".currency") }, - { data: { auto_submit_form_target: "auto" } } %> + { label: t(".currency") }, disabled: true %> <%= family_form.select :locale, language_options,