aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-01-01 10:16:43 +0100
committerMartin Polden <mpolden@mpolden.no>2022-01-01 10:30:14 +0100
commit8fa1cf07a8523747665052eef450d487a023b80e (patch)
tree072306636ab130406dc7437cd3d647e7f8ba7de6
parentcd9290dc595a2c10e6e6b427c617773c988ce0db (diff)
bulder: Include more details in text field
-rw-r--r--record/bulder/builder_test.go8
-rw-r--r--record/bulder/bulder.go19
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
}