diff --git a/app/controllers/snaptrade_items_controller.rb b/app/controllers/snaptrade_items_controller.rb index dc01c21f3..e5d771b75 100644 --- a/app/controllers/snaptrade_items_controller.rb +++ b/app/controllers/snaptrade_items_controller.rb @@ -154,6 +154,14 @@ class SnaptradeItemsController < ApplicationController @snaptrade_item.sync_later end + # Existing unlinked, visible investment/crypto accounts that could be linked instead of creating duplicates + @linkable_accounts = Current.family.accounts + .visible + .where(accountable_type: %w[Investment Crypto]) + .left_joins(:account_providers) + .where(account_providers: { id: nil }) + .order(:name) + # Determine view state @syncing = @snaptrade_item.syncing? @waiting_for_sync = no_accounts && @syncing @@ -369,9 +377,10 @@ class SnaptradeItemsController < ApplicationController def link_existing_account account_id = params[:account_id] snaptrade_account_id = params[:snaptrade_account_id] + snaptrade_item_id = params[:snaptrade_item_id] account = Current.family.accounts.find_by(id: account_id) - snaptrade_item = Current.family.snaptrade_items.first + snaptrade_item = Current.family.snaptrade_items.find_by(id: snaptrade_item_id) snaptrade_account = snaptrade_item&.snaptrade_accounts&.find_by(id: snaptrade_account_id) if account && snaptrade_account diff --git a/app/views/snaptrade_items/setup_accounts.html.erb b/app/views/snaptrade_items/setup_accounts.html.erb index 9331c4854..4ef329562 100644 --- a/app/views/snaptrade_items/setup_accounts.html.erb +++ b/app/views/snaptrade_items/setup_accounts.html.erb @@ -138,6 +138,7 @@ <%= t("snaptrade_items.setup_accounts.sync_start_date_help", default: "Leave blank for all available history") %>
+ <% end %> @@ -160,40 +161,70 @@ <% end %> - <% if @linked_accounts.any? %> -- <%= t("snaptrade_items.setup_accounts.linked_to", default: "Linked to:") %> - <%= link_to snaptrade_account.current_account.name, account_path(snaptrade_account.current_account), class: "link" %> -
-