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