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

Josh Sled jsled at cvs.gnucash.org
Thu Jan 31 19:44:14 EST 2008


Author: jsled
Date: 2008-01-31 19:44:14 -0500 (Thu, 31 Jan 2008)
New Revision: 16906
Trac: http://svn.gnucash.org/trac/changeset/16906

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


Modified: gnucash/trunk/src/import-export/qif-import/qif-to-gnc.scm
===================================================================
--- gnucash/trunk/src/import-export/qif-import/qif-to-gnc.scm	2008-02-01 00:43:20 UTC (rev 16905)
+++ gnucash/trunk/src/import-export/qif-import/qif-to-gnc.scm	2008-02-01 00:44:14 UTC (rev 16906)
@@ -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