r16917 - gnucash/branches/2.2/src/import-export/qif-import - [r16906] Bug#512497: use payee/memo mappings as well in the QIF import of investment transactions. Patch from Charles Day <cedayiv gmail com>.

Andreas Köhler andi5 at cvs.gnucash.org
Sat Feb 2 21:16:57 EST 2008


Author: andi5
Date: 2008-02-02 21:16:57 -0500 (Sat, 02 Feb 2008)
New Revision: 16917
Trac: http://svn.gnucash.org/trac/changeset/16917

Modified:
   gnucash/branches/2.2/src/import-export/qif-import/qif-to-gnc.scm
Log:
[r16906] Bug#512497: use payee/memo mappings as well in the QIF import of investment transactions.  Patch from Charles Day <cedayiv gmail com>.


Modified: gnucash/branches/2.2/src/import-export/qif-import/qif-to-gnc.scm
===================================================================
--- gnucash/branches/2.2/src/import-export/qif-import/qif-to-gnc.scm	2008-02-03 02:16:48 UTC (rev 16916)
+++ gnucash/branches/2.2/src/import-export/qif-import/qif-to-gnc.scm	2008-02-03 02:16:57 UTC (rev 16917)
@@ -584,18 +584,30 @@
           (set! qif-far-acct (cadr qif-accts))
           (set! qif-commission-acct (caddr qif-accts))
 
-          ;; translate the QIF account names into Gnucash accounts
+          ;; Translate the QIF account names into GnuCash accounts.
           (if (and qif-near-acct qif-far-acct)
               (begin 
+                ;; Determine the near account.
                 (set! near-acct-info 
                       (or (hash-ref qif-acct-map qif-near-acct)
                           (hash-ref qif-cat-map qif-near-acct)))
                 (set! near-acct-name (qif-map-entry:gnc-name near-acct-info))
                 (set! near-acct (hash-ref gnc-acct-hash near-acct-name))
                 
-                (set! far-acct-info
-                      (or (hash-ref qif-acct-map qif-far-acct)
-                          (hash-ref qif-cat-map qif-far-acct)))
+                ;; Determine the far account.
+                (if (or (not (string? qif-far-acct))
+                        (string=? qif-far-acct ""))
+                    ;; No far account name is specified, so try a
+                    ;; payee or memo mapping to get a default.
+                    (set! far-acct-info
+                          (or (hash-ref qif-memo-map (qif-xtn:payee qif-xtn))
+                              (hash-ref qif-memo-map
+                                        (qif-split:memo
+                                          (car (qif-xtn:splits qif-xtn)))))))
+                (if (not far-acct-info)
+                    (set! far-acct-info
+                          (or (hash-ref qif-acct-map qif-far-acct)
+                              (hash-ref qif-cat-map qif-far-acct))))
                 (set! far-acct-name (qif-map-entry:gnc-name far-acct-info))
                 (set! far-acct (hash-ref gnc-acct-hash far-acct-name))))
           



More information about the gnucash-changes mailing list