r16969 - gnucash/branches/2.2/src/import-export/qif-import - [r16950] For bug 123312: This QIF importer patch provides a somewhat smarter default
Andreas Köhler
andi5 at cvs.gnucash.org
Thu Feb 28 17:08:27 EST 2008
Author: andi5
Date: 2008-02-28 17:08:27 -0500 (Thu, 28 Feb 2008)
New Revision: 16969
Trac: http://svn.gnucash.org/trac/changeset/16969
Modified:
gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm
Log:
[r16950] 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
Committed by cedayiv.
Modified: gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm
===================================================================
--- gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm 2008-02-28 22:08:18 UTC (rev 16968)
+++ gnucash/branches/2.2/src/import-export/qif-import/qif-dialog-utils.scm 2008-02-28 22:08:27 UTC (rev 16969)
@@ -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