AUDIT: r16950 - gnucash/trunk/src/import-export/qif-import - For bug 123312: This QIF importer patch provides a somewhat smarter default

Charles Day cedayiv at cvs.gnucash.org
Fri Feb 22 13:25:36 EST 2008


Author: cedayiv
Date: 2008-02-22 13:25:35 -0500 (Fri, 22 Feb 2008)
New Revision: 16950
Trac: http://svn.gnucash.org/trac/changeset/16950

Modified:
   gnucash/trunk/src/import-export/qif-import/qif-dialog-utils.scm
Log:
For bug 123312: This QIF importer patch provides a somewhat smarter default
namespace for the commodities druid pages if a ticker symbol is included in
the QIF data:
-NYSE for symbols of 1-3 characters with an optional .X or .XX suffix
-NASDAQ for symbols of 4 characters
-FUND for symbols of 5 or more characters
BP


Modified: gnucash/trunk/src/import-export/qif-import/qif-dialog-utils.scm
===================================================================
--- gnucash/trunk/src/import-export/qif-import/qif-dialog-utils.scm	2008-02-21 21:09:39 UTC (rev 16949)
+++ gnucash/trunk/src/import-export/qif-import/qif-dialog-utils.scm	2008-02-22 18:25:35 UTC (rev 16950)
@@ -578,6 +578,38 @@
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;  qif-dialog:default-namespace
+;;
+;;  For a given commodity symbol, return a default namespace.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(define (qif-dialog:default-namespace s)
+  (if (string? s)
+      (let ((l (string-length s))
+            (d (string-index s #\.)))
+        (cond
+          ;; Guess NYSE for symbols of 1-3 characters.
+          ((< l 4)
+           GNC_COMMODITY_NS_NYSE)
+
+          ;; Guess NYSE for symbols of 1-3 characters
+          ;; followed by a dot and 1-2 characters.
+          ((and d
+                (< l 7)
+                (< 0 d 4)
+                (<= 2 (- l d) 3))
+           GNC_COMMODITY_NS_NYSE)
+
+          ;; Guess NASDAQ for symbols of 4 characters.
+          ((= l 4)
+           GNC_COMMODITY_NS_NASDAQ)
+
+          ;; Otherwise it's probably a fund.
+          (else
+           GNC_COMMODITY_NS_MUTUAL)))
+      GNC_COMMODITY_NS_MUTUAL))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  qif-import:update-stock-hash
 ;;
 ;;  make new commodities for each new stock in acct-hash that isn't
@@ -619,15 +651,21 @@
                    
                    ;; we know nothing about this security.. we need to 
                    ;; ask about it
-                   (let ((ticker-symbol (qif-ticker-map:lookup-ticker ticker-map stock-name)))
+                   (let ((ticker-symbol
+                          (qif-ticker-map:lookup-ticker ticker-map
+                                                        stock-name))
+                         (namespace GNC_COMMODITY_NS_MUTUAL))
+
                      (if (not ticker-symbol)
-			 (set! ticker-symbol stock-name))
+			 (set! ticker-symbol stock-name)
+                         (set! namespace
+                           (qif-dialog:default-namespace ticker-symbol)))
                      (set! names (cons stock-name names))
                      (hash-set! 
                       stock-hash stock-name 
                       (gnc-commodity-new book
 					    stock-name
-                                            GNC_COMMODITY_NS_NYSE
+                                            namespace
                                             ticker-symbol
                                             ""
                                             100000))))))



More information about the gnucash-changes mailing list