aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-01-01 11:46:15 +0100
committerMartin Polden <mpolden@mpolden.no>2021-01-01 11:46:15 +0100
commit08f544ceab0a8008cbf70f5ebe9d669a45190a0c (patch)
treeb00e29ddd3406470d78d9715e7c7bbb052571097
parent6c566179b25da781478bb66154a8203cc210309b (diff)
Handle unicode space
-rw-r--r--record/komplett/komplett.go9
-rw-r--r--record/komplett/komplett_test.go1
-rw-r--r--record/komplett/testdata/test.json15
3 files changed, 22 insertions, 3 deletions
diff --git a/record/komplett/komplett.go b/record/komplett/komplett.go
index b12b151..edf0e22 100644
--- a/record/komplett/komplett.go
+++ b/record/komplett/komplett.go
@@ -14,9 +14,10 @@ const (
decimalSeparator = "."
thousandSeparator = " "
timeLayout = "02.01.2006"
- withdrawalPrefix = "kr -"
)
+var withdrawalPrefixes = []string{"kr -", "kr\u00a0-"}
+
// Reader implements a reader for Komplett-encoded (JSON) records.
type Reader struct {
rd io.Reader
@@ -87,8 +88,10 @@ func (r *Reader) Read() ([]record.Record, error) {
amount = jr.Amount
// New format does not indicate whether transaction amount is positive or negative, so we guess
// based on the formatted field.
- if strings.HasPrefix(jr.FormattedAmount, withdrawalPrefix) {
- amount = -amount
+ for _, withdrawalPrefix := range withdrawalPrefixes {
+ if strings.HasPrefix(jr.FormattedAmount, withdrawalPrefix) {
+ amount = -amount
+ }
}
}
rs = append(rs, record.Record{
diff --git a/record/komplett/komplett_test.go b/record/komplett/komplett_test.go
index 6141b8b..2ba3d92 100644
--- a/record/komplett/komplett_test.go
+++ b/record/komplett/komplett_test.go
@@ -78,6 +78,7 @@ func TestRead(t *testing.T) {
}{
{date(2019, 10, 30), "Varekjøp", -299000},
{date(2019, 10, 30), "Uttak av bonus", 6000},
+ {date(2020, 12, 14), "Varekjøp", -9900},
}
if len(rs) != len(tests) {
t.Fatalf("want %d records, got %d", len(tests), len(rs))
diff --git a/record/komplett/testdata/test.json b/record/komplett/testdata/test.json
index 9f9e577..f9864f7 100644
--- a/record/komplett/testdata/test.json
+++ b/record/komplett/testdata/test.json
@@ -28,5 +28,20 @@
"FormattedAmount": "kr 60,00",
"FormattedPostingDate": "30.10.2019",
"FormattedDefermentExpiryDate": null
+ },
+ {
+ "TransactionId": null,
+ "TransactionRef": null,
+ "DisplayDescription": "Varekjøp",
+ "EventNarrative": "",
+ "DestinationAccountNumber": null,
+ "Amount": 99.0,
+ "PostingDate": "/Date(1607900400000)/",
+ "CanDefer": false,
+ "IsDeferred": false,
+ "DefermentPeriod": null,
+ "FormattedAmount": "kr -99,00",
+ "FormattedPostingDate": "14.12.2020",
+ "FormattedDefermentExpiryDate": null
}
]