Skip to content

Commit

Permalink
[modularise] (gnucash qif-import)
Browse files Browse the repository at this point in the history
  • Loading branch information
christopherlam committed Dec 8, 2020
1 parent 5bd65a6 commit 33dd169
Show file tree
Hide file tree
Showing 10 changed files with 295 additions and 67 deletions.
37 changes: 37 additions & 0 deletions gnucash/import-export/qif-imp/qif-dialog-utils.scm
Expand Up @@ -24,7 +24,44 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(define-module (gnucash qif-import qif-dialog-utils))

(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (srfi srfi-1))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash string))
(use-modules (gnucash app-utils))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-guess-map))

(export default-capital-return-acct)
(export default-cglong-acct)
(export default-cgmid-acct)
(export default-cgshort-acct)
(export default-commission-acct)
(export default-dividend-acct)
(export default-equity-account)
(export default-equity-holding)
(export default-interest-acct)
(export default-margin-interest-acct)
(export default-stock-acct)
(export default-unspec-acct)
(export qif-dialog:make-account-display)
(export qif-dialog:make-category-display)
(export qif-dialog:make-memo-display)
(export qif-dialog:qif-file-loaded?)
(export qif-dialog:unload-qif-file)
(export qif-import:any-new-accts?)
(export qif-import:get-account-name)
(export qif-import:update-security-hash)
(export qif-import:fix-from-acct)
(export qif-import:get-all-accts)
(export qif-import:refresh-match-selection)

(define (default-stock-acct brokerage security)
(string-append brokerage (gnc-get-account-separator-string) security))
Expand Down
19 changes: 19 additions & 0 deletions gnucash/import-export/qif-imp/qif-file.scm
Expand Up @@ -24,12 +24,31 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (gnucash qif-import qif-file))

(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash string))
(use-modules (gnucash app-utils))
(use-modules (ice-9 regex))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (ice-9 rdelim))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-utils))
(use-modules (gnucash qif-import qif-parse))
(use-modules (gnucash qif-import qif-dialog-utils))

(export qif-file:check-from-acct)
(export qif-file:parse-fields)
(export qif-file:parse-fields-results)
(export qif-file:read-file)
(export qif-file:reparse-dates)

(define qif-bad-numeric-rexp
(make-regexp "^\\.\\.\\."))
Expand Down
28 changes: 28 additions & 0 deletions gnucash/import-export/qif-imp/qif-guess-map.scm
Expand Up @@ -24,9 +24,37 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(define-module (gnucash qif-import qif-guess-map))

(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (gnucash utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash app-utils))
(use-modules (gnucash engine))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-dialog-utils))

(use-modules (srfi srfi-13))
(use-modules (ice-9 match))

(export GNC-ASSET-TYPE)
(export GNC-BANK-TYPE)
(export GNC-CASH-TYPE)
(export GNC-CCARD-TYPE)
(export GNC-EQUITY-TYPE)
(export GNC-EXPENSE-TYPE)
(export GNC-INCOME-TYPE)
(export GNC-LIABILITY-TYPE)
(export GNC-MUTUAL-TYPE)
(export GNC-PAYABLE-TYPE)
(export GNC-RECEIVABLE-TYPE)
(export GNC-STOCK-TYPE)
(export qif-import:guess-acct)
(export qif-import:load-map-prefs)
(export qif-import:save-map-prefs)

(define GNC-BANK-TYPE 0)
(define GNC-CASH-TYPE 1)
(define GNC-ASSET-TYPE 2)
Expand Down
75 changes: 11 additions & 64 deletions gnucash/import-export/qif-imp/qif-import.scm
Expand Up @@ -25,68 +25,15 @@


(define-module (gnucash qif-import))
(use-modules (gnucash utilities))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash gnome-utils))

;; We do this initialization here because src/gnome isn't a real module.
;; Note: Guile 2 needs to find the symbols from the extension at compile time already
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (sw_gnome))

(use-modules (ice-9 regex))
(use-modules (srfi srfi-1))

(debug-enable 'backtrace)

(load-from-path "gnucash/qif-import/qif-objects") ;; class definitions
(load-from-path "gnucash/qif-import/qif-parse") ;; string-to-value
(load-from-path "gnucash/qif-import/qif-utils")
(load-from-path "gnucash/qif-import/qif-file") ;; actual file reading
(load-from-path "gnucash/qif-import/qif-dialog-utils") ;; build displays
(load-from-path "gnucash/qif-import/qif-guess-map") ;; build acct mappings
(load-from-path "gnucash/qif-import/qif-to-gnc") ;; conv QIF xtns to GNC
(load-from-path "gnucash/qif-import/qif-merge-groups") ;; merge into user's acct

(export make-qif-file)
(export make-ticker-map)
(export qif-import:get-all-accts)
(export qif-import:fix-from-acct)
(export qif-import:any-new-accts?)
(export qif-import:update-security-hash)
(export qif-import:refresh-match-selection)
(export qif-import:save-map-prefs)
(export qif-import:load-map-prefs)
(export qif-import:qif-to-gnc)
(export qif-import:qif-to-gnc-undo)
(export qif-import:reset-cancel-pause)
(export qif-import:cancel)
(export qif-import:toggle-pause)

(export qif-map-entry:gnc-name)
(export qif-map-entry:set-gnc-name!)
(export qif-map-entry:clone)
(export qif-map-entry:qif-name)
(export qif-map-entry:new-acct?)

(export qif-file:read-file)
(export qif-file:parse-fields)
(export qif-file:parse-fields-results)
(export qif-file:check-from-acct)
(export qif-file:reparse-dates)
(export qif-file:check-from-acct)
(export qif-file:path-to-accountname)
(export qif-file:path)

(export qif-dialog:qif-file-loaded?)
(export qif-dialog:unload-qif-file)
(export qif-dialog:make-account-display)
(export qif-dialog:make-category-display)
(export qif-dialog:make-memo-display)

(export gnc:account-tree-find-duplicates)
(export gnc:account-tree-catenate-and-merge)
(export gnc:prune-matching-transactions)
(use-modules (gnucash core-utils))

(load-and-reexport (gnucash qif-import qif-dialog-utils)
(gnucash qif-import qif-file)
(gnucash qif-import qif-guess-map)
(gnucash qif-import qif-merge-groups)
(gnucash qif-import qif-objects)
(gnucash qif-import qif-parse)
(gnucash qif-import qif-to-gnc)
(gnucash qif-import qif-utils)
(gnucash string))
15 changes: 15 additions & 0 deletions gnucash/import-export/qif-imp/qif-merge-groups.scm
Expand Up @@ -23,6 +23,21 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (gnucash qif-import qif-merge-groups))

(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (srfi srfi-1))
(use-modules (gnucash qif-import qif-utils))

(export gnc:account-tree-catenate-and-merge)
(export gnc:account-tree-find-duplicates)
(export gnc:prune-matching-transactions)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; gnc:account-tree-find-duplicates
Expand Down
122 changes: 122 additions & 0 deletions gnucash/import-export/qif-imp/qif-objects.scm
Expand Up @@ -23,6 +23,128 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (gnucash qif-import qif-objects))

(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (srfi srfi-9))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash string))
(use-modules (gnucash qif-import qif-guess-map))
(use-modules (gnucash qif-import qif-parse))

(export <qif-map-entry>)
(export make-qif-acct)
(export make-qif-cat)
(export make-qif-class)
(export make-qif-file)
(export make-qif-map-entry)
(export make-qif-split)
(export make-qif-stock-symbol)
(export make-qif-xtn)
(export make-ticker-map)
(export qif-acct:budget)
(export qif-acct:description)
(export qif-acct:limit)
(export qif-acct:name)
(export qif-acct:set-budget!)
(export qif-acct:set-description!)
(export qif-acct:set-limit!)
(export qif-acct:set-name!)
(export qif-acct:set-type!)
(export qif-acct:type)
(export qif-cat:budget-amt)
(export qif-cat:description)
(export qif-cat:expense-cat)
(export qif-cat:name)
(export qif-cat:set-budget-amt!)
(export qif-cat:set-description!)
(export qif-cat:set-expense-cat!)
(export qif-cat:set-income-cat!)
(export qif-cat:set-name!)
(export qif-cat:set-tax-class!)
(export qif-cat:set-taxable!)
(export qif-cat:tax-class)
(export qif-class:set-description!)
(export qif-class:set-name!)
(export qif-file:accounts)
(export qif-file:add-account!)
(export qif-file:add-cat!)
(export qif-file:add-class!)
(export qif-file:add-xtn!)
(export qif-file:cats)
(export qif-file:path)
(export qif-file:path-to-accountname)
(export qif-file:set-path!)
(export qif-file:set-xtns!)
(export qif-file:xtns)
(export qif-map-entry:allowed-parent-types)
(export qif-map-entry:allowed-types)
(export qif-map-entry:clone)
(export qif-map-entry:description)
(export qif-map-entry:display?)
(export qif-map-entry:gnc-name)
(export qif-map-entry:new-acct?)
(export qif-map-entry:qif-name)
(export qif-map-entry:set-allowed-types!)
(export qif-map-entry:set-description!)
(export qif-map-entry:set-display?!)
(export qif-map-entry:set-gnc-name!)
(export qif-map-entry:set-new-acct?!)
(export qif-map-entry:set-qif-name!)
(export qif-split:amount)
(export qif-split:category)
(export qif-split:category-is-account?)
(export qif-split:mark)
(export qif-split:matching-cleared)
(export qif-split:memo)
(export qif-split:miscx-category)
(export qif-split:set-amount!)
(export qif-split:set-category!)
(export qif-split:set-category-is-account?!)
(export qif-split:set-category-private!)
(export qif-split:set-mark!)
(export qif-split:set-matching-cleared!)
(export qif-split:set-memo!)
(export qif-stock-symbol:set-name!)
(export qif-stock-symbol:set-symbol!)
(export qif-stock-symbol:set-type!)
(export qif-ticker-map:add-ticker!)
(export qif-ticker-map:lookup-symbol)
(export qif-ticker-map:lookup-type)
(export qif-xtn:action)
(export qif-xtn:address)
(export qif-xtn:cleared)
(export qif-xtn:commission)
(export qif-xtn:date)
(export qif-xtn:default-split)
(export qif-xtn:from-acct)
(export qif-xtn:mark)
(export qif-xtn:num-shares)
(export qif-xtn:number)
(export qif-xtn:payee)
(export qif-xtn:security-name)
(export qif-xtn:set-action!)
(export qif-xtn:set-address!)
(export qif-xtn:set-cleared!)
(export qif-xtn:set-commission!)
(export qif-xtn:set-date!)
(export qif-xtn:set-default-split!)
(export qif-xtn:set-from-acct!)
(export qif-xtn:set-mark!)
(export qif-xtn:set-num-shares!)
(export qif-xtn:set-number!)
(export qif-xtn:set-payee!)
(export qif-xtn:set-security-name!)
(export qif-xtn:set-share-price!)
(export qif-xtn:set-split-amounts!)
(export qif-xtn:set-splits!)
(export qif-xtn:share-price)
(export qif-xtn:split-amounts)
(export qif-xtn:splits)

(define (construct class)
(apply (record-constructor class)
Expand Down
27 changes: 27 additions & 0 deletions gnucash/import-export/qif-imp/qif-parse.scm
Expand Up @@ -23,8 +23,35 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (gnucash qif-import qif-parse))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))

(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash utilities))
(use-modules (gnucash engine))
(use-modules (gnucash qif-import qif-guess-map))
(use-modules (gnucash string))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (ice-9 regex))

(export qif-parse:check-date-format)
(export qif-parse:check-number-format)
(export qif-parse:check-number-formats)
(export qif-parse:parse-acct-type)
(export qif-parse:parse-action-field)
(export qif-parse:parse-bang-field)
(export qif-parse:parse-cleared-field)
(export qif-parse:parse-date/format)
(export qif-parse:parse-number/format)
(export qif-parse:parse-numbers/format)
(export qif-parse:print-date)
(export qif-parse:print-number)
(export qif-parse:print-numbers)
(export qif-split:parse-category)
(export qif-parse:fix-year)

(define regexp-enabled?
(defined? 'make-regexp))
Expand Down

0 comments on commit 33dd169

Please sign in to comment.