Load messages and handle table string with single tab inside.

This commit is contained in:
Dominik Pantůček 2023-03-31 09:37:08 +02:00
parent 3edfe6c02a
commit b72f1900e6
4 changed files with 17 additions and 6 deletions

View file

@ -40,6 +40,7 @@
bank-transaction-currency
bank-transaction-date
bank-transaction-id
bank-transaction-message
)
(import scheme
@ -67,6 +68,6 @@
(cdr account)))
;; Creates a new bank transaction.
(define-record bank-transaction id date amount currency varsym)
(define-record bank-transaction id date amount currency varsym message)
)

View file

@ -48,8 +48,9 @@
(caddr row)
".")))
(currency (string->symbol (cadddr row)))
(varsym (list-ref row 9)))
(make-bank-transaction id date amount currency varsym)))
(varsym (list-ref row 9))
(message (list-ref row 12)))
(make-bank-transaction id date amount currency varsym message)))
;; Loads Fio bank accound statement.
(define (bank-fio-parse fn)

View file

@ -53,9 +53,15 @@
(if (null? transactions)
mb
(let* ((transaction (car transactions))
(varsym-id
(varsym-id0
(string->number
(bank-transaction-varsym transaction))))
(bank-transaction-varsym transaction)))
(varsym-id
(or varsym-id0
(string->number
(irregex-replace (irregex "[^0-9].*" 'u)
(bank-transaction-message transaction)
"")))))
(loop (members-base-update mb
(lambda (mr)
(eq? (member-id mr)

View file

@ -139,9 +139,12 @@
;; Normalizes cell line to required width and handles leading and
;; trailing tabs to allow for right and center alignment.
(define (table-normalize-cell-line line w)
(print "tncl " w " \"" line "\"")
(let* ((lst (string->list line))
(first-char (if (null? lst) #f (car lst)))
(last-char (if (null? lst) #f (car (reverse lst))))
(last-char (if (or (null? lst)
(null? (cdr lst)))
#f (car (reverse lst))))
(first-tab (eq? first-char #\tab))
(last-tab (eq? last-char #\tab))
(line0 (if first-tab (substring line 1) line))