1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00

Feature: Add "amount type" configuration column for CSV imports (#1947)

* Rough draft

* Schema conflict update

* Implement signage

* Update system tests

* Lint fixes
This commit is contained in:
Zach Gollwitzer 2025-04-18 10:48:10 -04:00 committed by GitHub
parent 8cf077f28d
commit c88fe2e3b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 366 additions and 83 deletions

View file

@ -0,0 +1,20 @@
class AddSignageTypeToImports < ActiveRecord::Migration[7.2]
def change
change_column_default :imports, :date_col_label, from: "date", to: nil
change_column_default :imports, :amount_col_label, from: "amount", to: nil
change_column_default :imports, :name_col_label, from: "name", to: nil
change_column_default :imports, :category_col_label, from: "category", to: nil
change_column_default :imports, :tags_col_label, from: "tags", to: nil
change_column_default :imports, :account_col_label, from: "account", to: nil
change_column_default :imports, :qty_col_label, from: "qty", to: nil
change_column_default :imports, :ticker_col_label, from: "ticker", to: nil
change_column_default :imports, :price_col_label, from: "price", to: nil
change_column_default :imports, :entity_type_col_label, from: "entity_type", to: nil
change_column_default :imports, :notes_col_label, from: "notes", to: nil
change_column_default :imports, :currency_col_label, from: "currency", to: nil
# User can select "custom", then assign "debit" or "credit" (or custom value) to determine inflow/outflow of txn
add_column :imports, :amount_type_strategy, :string, default: "signed_amount"
add_column :imports, :amount_type_inflow_value, :string
end
end

26
db/schema.rb generated
View file

@ -299,23 +299,25 @@ ActiveRecord::Schema[7.2].define(version: 2025_04_13_141446) do
t.uuid "family_id", null: false
t.uuid "account_id"
t.string "type", null: false
t.string "date_col_label", default: "date"
t.string "amount_col_label", default: "amount"
t.string "name_col_label", default: "name"
t.string "category_col_label", default: "category"
t.string "tags_col_label", default: "tags"
t.string "account_col_label", default: "account"
t.string "qty_col_label", default: "qty"
t.string "ticker_col_label", default: "ticker"
t.string "price_col_label", default: "price"
t.string "entity_type_col_label", default: "type"
t.string "notes_col_label", default: "notes"
t.string "currency_col_label", default: "currency"
t.string "date_col_label"
t.string "amount_col_label"
t.string "name_col_label"
t.string "category_col_label"
t.string "tags_col_label"
t.string "account_col_label"
t.string "qty_col_label"
t.string "ticker_col_label"
t.string "price_col_label"
t.string "entity_type_col_label"
t.string "notes_col_label"
t.string "currency_col_label"
t.string "date_format", default: "%m/%d/%Y"
t.string "signage_convention", default: "inflows_positive"
t.string "error"
t.string "number_format"
t.string "exchange_operating_mic_col_label"
t.string "amount_type_strategy", default: "signed_amount"
t.string "amount_type_inflow_value"
t.index ["family_id"], name: "index_imports_on_family_id"
end