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-currency
bank-transaction-date bank-transaction-date
bank-transaction-id bank-transaction-id
bank-transaction-message
) )
(import scheme (import scheme
@ -67,6 +68,6 @@
(cdr account))) (cdr account)))
;; Creates a new bank transaction. ;; 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) (caddr row)
"."))) ".")))
(currency (string->symbol (cadddr row))) (currency (string->symbol (cadddr row)))
(varsym (list-ref row 9))) (varsym (list-ref row 9))
(make-bank-transaction id date amount currency varsym))) (message (list-ref row 12)))
(make-bank-transaction id date amount currency varsym message)))
;; Loads Fio bank accound statement. ;; Loads Fio bank accound statement.
(define (bank-fio-parse fn) (define (bank-fio-parse fn)

View file

@ -53,9 +53,15 @@
(if (null? transactions) (if (null? transactions)
mb mb
(let* ((transaction (car transactions)) (let* ((transaction (car transactions))
(varsym-id (varsym-id0
(string->number (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 (loop (members-base-update mb
(lambda (mr) (lambda (mr)
(eq? (member-id mr) (eq? (member-id mr)

View file

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