diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-01-01 10:16:43 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-01-01 10:30:14 +0100 |
commit | 8fa1cf07a8523747665052eef450d487a023b80e (patch) | |
tree | 072306636ab130406dc7437cd3d647e7f8ba7de6 | |
parent | cd9290dc595a2c10e6e6b427c617773c988ce0db (diff) |
bulder: Include more details in text field
-rw-r--r-- | record/bulder/builder_test.go | 8 | ||||
-rw-r--r-- | record/bulder/bulder.go | 19 |
2 files changed, 21 insertions, 6 deletions
diff --git a/record/bulder/builder_test.go b/record/bulder/builder_test.go index 45fea01..2fa30e9 100644 --- a/record/bulder/builder_test.go +++ b/record/bulder/builder_test.go @@ -12,8 +12,8 @@ func date(year int, month time.Month, day int) time.Time { func TestRead(t *testing.T) { in := `Dato;Inn på konto;Ut fra konto;Balanse;Til konto;Til kontonummer;Fra konto;Fra kontonummer;Type;Tekst/KID;Hovedkategori;Underkategori -2021-11-10;2000,00;;2000,00;min konto;mitt kontonr;annen konto;annet kontonr;;Gave;; -2021-11-15;;-1000,00;1000,00;annen konto;annet kontonr;min konto;mitt kontonr;;Butikk 1;; +2021-11-10;2000,00;;2000,00;min konto;mitt kontonr;annen konto;annet kontonr;Betaling;Gave;; +2021-11-15;;-1000,00;1000,00;annen konto;annet kontonr;min konto;mitt kontonr;Betaling;Butikk 1;Mat og drikke;Dagligvarer ` r := NewReader(strings.NewReader(in)) rs, err := r.Read() @@ -27,8 +27,8 @@ func TestRead(t *testing.T) { amount int64 balance int64 }{ - {date(2021, 11, 10), "Gave", 200000, 200000}, - {date(2021, 11, 15), "Butikk 1", -100000, 100000}, + {date(2021, 11, 10), "Betaling,Gave", 200000, 200000}, + {date(2021, 11, 15), "Betaling,Butikk 1,Mat og drikke,Dagligvarer", -100000, 100000}, } if len(rs) != len(tests) { t.Fatalf("want %d records, got %d", len(tests), len(rs)) diff --git a/record/bulder/bulder.go b/record/bulder/bulder.go index 815f3eb..3021b52 100644 --- a/record/bulder/bulder.go +++ b/record/bulder/bulder.go @@ -66,8 +66,23 @@ func (r *Reader) Read() ([]record.Record, error) { return nil, fmt.Errorf("invalid balance on line %d: %q: %w", line, balanceValue, err) } } - text := csvRecord[9] - rs = append(rs, record.Record{Time: t, Text: text, Amount: amount, Balance: balance}) + var text strings.Builder + paymentType := csvRecord[8] + paymentText := csvRecord[9] + text.WriteString(paymentType) + text.WriteString(",") + text.WriteString(paymentText) + category := csvRecord[10] + subCategory := csvRecord[11] + if category != "" { + text.WriteString(",") + text.WriteString(category) + } + if subCategory != "" { + text.WriteString(",") + text.WriteString(subCategory) + } + rs = append(rs, record.Record{Time: t, Text: text.String(), Amount: amount, Balance: balance}) } return rs, nil } |