From 86b6eeeb69d1516a1f018c23ac7cb00b398afb4f Mon Sep 17 00:00:00 2001 From: morre Date: Sat, 25 Jan 2025 21:10:29 +0100 Subject: [PATCH] fix: set availableFrom to next month for imports (#1125) --- internal/controllers/v4/import_test.go | 4 ++-- internal/importer/parser/ynab-import/parse.go | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/controllers/v4/import_test.go b/internal/controllers/v4/import_test.go index 244695be..289cf18c 100644 --- a/internal/controllers/v4/import_test.go +++ b/internal/controllers/v4/import_test.go @@ -223,9 +223,9 @@ func (suite *TestSuiteStandard) TestImportYnabImportPreviewAvailableFrom() { preview := suite.parseCSV(suite.T(), account.Data.ID, "available-from-test.csv") dates := []types.Month{ - types.NewMonth(2019, 2), - types.NewMonth(2019, 4), + types.NewMonth(2019, 3), types.NewMonth(2019, 5), + types.NewMonth(2019, 6), } for i, transaction := range preview.Data { diff --git a/internal/importer/parser/ynab-import/parse.go b/internal/importer/parser/ynab-import/parse.go index dc5b9078..907071cc 100644 --- a/internal/importer/parser/ynab-import/parse.go +++ b/internal/importer/parser/ynab-import/parse.go @@ -56,10 +56,13 @@ func Parse(f io.Reader, account models.Account) ([]importer.TransactionPreview, t := importer.TransactionPreview{ Transaction: models.Transaction{ - Date: date, - AvailableFrom: types.NewMonth(date.Year(), date.Month()), - ImportHash: helpers.Sha256String(strings.Join(record, ",")), - Note: record[headers["Memo"]], + Date: date, + ImportHash: helpers.Sha256String(strings.Join(record, ",")), + Note: record[headers["Memo"]], + + // AvailableFrom is only used for income transactions, for which it defaults to the month after the transaction. + // Since it is only used for income transactions, we can safely set it here. + AvailableFrom: types.NewMonth(date.Year(), date.Month()).AddDate(0, 1), }, }