QIF Import: Allow "R" or "r" for reconciled, and "C" or "c" for cleared.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17981 57a11ea4-9604-0410-9ed3-97b8803252fd
2.4
Charles Day 17 years ago
parent 573d809b4a
commit 1c8761d6d1

@ -365,7 +365,9 @@ The "C" line of specifies the cleared status. The second character
in the line, if present, may be any of:
* Cleared
C Cleared
X Reconciled
R Reconciled
? Budgeted
! Budgeted

@ -275,25 +275,29 @@
#f))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; parse-cleared-field : in a C (cleared) field in a QIF transaction,
;; * means cleared, x or X means reconciled, and ! or ? mean some
;; budget related stuff I don't understand.
;; parse-cleared-field : In a "C" (cleared status) QIF line,
;; * or C means cleared, X or R means reconciled, and ! or ?
;; mean some budget related stuff I don't understand.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (qif-parse:parse-cleared-field read-value errorproc errortype)
(if (and (string? read-value)
(> (string-length read-value) 0))
(not (string-null? read-value)))
(let ((secondchar (string-ref read-value 0)))
(cond ((eq? secondchar #\*)
'cleared)
((or (eq? secondchar #\x)
(eq? secondchar #\X))
'reconciled)
((or (eq? secondchar #\?)
(eq? secondchar #\!))
'budgeted)
(else
#f)))
(case secondchar
;; Reconciled is the most likely, especially for large imports,
;; so check that first. Also allow for lowercase.
((#\X #\x #\R #\r)
'reconciled)
((#\* #\C #\c)
'cleared)
((#\? #\!)
'budgeted)
(else
(errorproc errortype
(sprintf #f (_ "Unrecognized status '%s'. Defaulting to uncleared.")
read-value))
#f)))
#f))

Loading…
Cancel
Save