Browse Source

createbatch/import_csv: adapt to new import format

master
Gerdriaan Mulder 6 years ago
parent
commit
58d43f1ff8
  1. 14
      cmd/createbatch/import_csv.go

14
cmd/createbatch/import_csv.go

@ -10,14 +10,15 @@ import (
)
// FieldsPerBatchLine are the expected number of fields in each CSV line.
const FieldsPerBatchLine = 9
const FieldsPerBatchLine = 11
// ImportIndex keeps track of what column corresponds to what data.
type ImportIndex int
// These are our numbered input fields
const (
ImportName ImportIndex = iota
ImportCustomerId ImportIndex = iota
ImportName
ImportAddr1
ImportAddr2
ImportCountry
@ -26,6 +27,7 @@ const (
ImportSignatureDate
ImportAmount
ImportInfo
ImportInfoLength
)
func ImportCSV(fn string) ([]pain.DrctDbtTxInf, error) {
@ -45,7 +47,7 @@ func ImportCSV(fn string) ([]pain.DrctDbtTxInf, error) {
ret := make([]pain.DrctDbtTxInf, len(all))
for i, line := range all {
if line[0] == "name" {
if line[ImportCustomerId] == "customer_id" {
// Header line
continue
}
@ -57,10 +59,16 @@ func ImportCSV(fn string) ([]pain.DrctDbtTxInf, error) {
if err != nil {
return nil, fmt.Errorf("error importing line %d, cannot parse amount: %v", i, err)
}
if amount == 0.0 {
continue
}
info := line[ImportInfo]
if info == "" {
info = EMPTY_INFO
}
if len(info) > MAXLEN_INFO {
return nil, fmt.Errorf("error: info field larger (%d) than allowed (%d)", len(info), MAXLEN_INFO)
}
ret[i] = pain.NewDirectDebitTransaction(dbtr, dbtrAcct, mandateInfo, amount, info, i)
}

Loading…
Cancel
Save