From bc9f171dd7cde9b3e424f69f4d33de5fd2282907 Mon Sep 17 00:00:00 2001 From: Derek Atkins Date: Tue, 4 Feb 2003 15:47:21 +0000 Subject: [PATCH] * src/import-export/qif-import/qif-file.scm: mark "splits" as negative to make sure the numbers are reflected appropriately. * src/import-export/qif-import/qif-objects.scm: add a neg? value to a qif-split; use this when converting the split-amount. Fixes bug #105179 git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7942 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 8 ++++++++ src/import-export/qif-import/qif-file.scm | 7 ++++++- src/import-export/qif-import/qif-objects.scm | 12 ++++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9bb8f8faf8..9a540bf0b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2003-02-04 Derek Atkins + + * src/import-export/qif-import/qif-file.scm: mark "splits" as negative + to make sure the numbers are reflected appropriately. + * src/import-export/qif-import/qif-objects.scm: add a neg? value to + a qif-split; use this when converting the split-amount. + Fixes bug #105179 + 2003-02-03 Derek Atkins * src/calculation/Makefile.am: need to add GUILE_INCS diff --git a/src/import-export/qif-import/qif-file.scm b/src/import-export/qif-import/qif-file.scm index 2d2e841332..52ea558bf5 100644 --- a/src/import-export/qif-import/qif-file.scm +++ b/src/import-export/qif-import/qif-file.scm @@ -174,6 +174,9 @@ (qif-split:set-category! default-split value))) ;; S : split category + ;; At this point we are ignoring the default-split + ;; completely! So, we need to reverse the current-split + ;; values! ((#\S) (set! current-split (make-qif-split)) (set! default-split #f) @@ -190,7 +193,9 @@ ;; $ : split amount (if there are splits) ((#\$) (if current-split - (qif-split:set-amount! current-split value))) + (begin + (qif-split:set-amount! current-split value) + (qif-split:set-neg! current-split #t)))) ;; ^ : end-of-record ((#\^) diff --git a/src/import-export/qif-import/qif-objects.scm b/src/import-export/qif-import/qif-objects.scm index 3ed95a27b3..4fff063857 100644 --- a/src/import-export/qif-import/qif-objects.scm +++ b/src/import-export/qif-import/qif-objects.scm @@ -82,7 +82,7 @@ (make-simple-class 'qif-split '(category class memo amount category-is-account? matching-cleared mark - miscx-category miscx-is-account? miscx-class))) + miscx-category miscx-is-account? miscx-class negative))) (define qif-split:category (simple-obj-getter 'category)) @@ -124,6 +124,12 @@ (define qif-split:set-amount! (simple-obj-setter 'amount)) +(define qif-split:neg? + (simple-obj-getter 'negative)) + +(define qif-split:set-neg! + (simple-obj-setter 'negative)) + (define qif-split:mark (simple-obj-getter 'mark)) @@ -163,6 +169,7 @@ (define (make-qif-split) (let ((self (make-simple-obj ))) (qif-split:set-category! self "") + (qif-split:set-neg! self #f) self)) @@ -288,7 +295,8 @@ (define (qif-xtn:set-split-amounts! self amounts) (map (lambda (split amount) - (qif-split:set-amount! split amount)) + (let ((neg? (qif-split:neg? split))) + (qif-split:set-amount! split (if neg? (gnc:numeric-neg amount) amount)))) (qif-xtn:splits self) amounts)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;