2009-04-06 07:13:46 -05:00
|
|
|
;; This program is free software; you can redistribute it and/or
|
|
|
|
;; modify it under the terms of the GNU General Public License as
|
|
|
|
;; published by the Free Software Foundation; either version 2 of
|
|
|
|
;; the License, or (at your option) any later version.
|
|
|
|
;;
|
|
|
|
;; This program is distributed in the hope that it will be useful,
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
;;
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
|
|
;; along with this program; if not, contact:
|
|
|
|
;;
|
|
|
|
;; Free Software Foundation Voice: +1-617-542-5942
|
|
|
|
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
|
|
|
;; Boston, MA 02110-1301, USA gnu@gnu.org
|
2001-08-16 19:44:01 -05:00
|
|
|
|
|
|
|
(define-module (gnucash app-utils))
|
2006-10-15 14:02:05 -05:00
|
|
|
(use-modules (sw_app_utils))
|
2001-08-16 19:44:01 -05:00
|
|
|
(use-modules (srfi srfi-1))
|
2006-10-15 14:02:05 -05:00
|
|
|
(use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing.
|
2001-10-10 18:21:58 -05:00
|
|
|
(use-modules (gnucash gnc-module))
|
2011-03-21 10:10:30 -05:00
|
|
|
(use-modules (ice-9 syncase))
|
2001-08-16 19:44:01 -05:00
|
|
|
|
2012-12-18 05:33:58 -06:00
|
|
|
;; Guile 2 needs to find the symbols from the c module at compile time already
|
|
|
|
(cond-expand
|
|
|
|
(guile-2
|
|
|
|
(eval-when
|
|
|
|
(compile load eval)
|
|
|
|
(gnc:module-load "gnucash/engine" 0)))
|
|
|
|
(else
|
|
|
|
(gnc:module-load "gnucash/engine" 0)))
|
2001-08-16 19:44:01 -05:00
|
|
|
|
|
|
|
;; c-interface.scm
|
|
|
|
(export gnc:error->string)
|
|
|
|
(export gnc:make-string-database)
|
|
|
|
|
2005-11-01 21:32:36 -06:00
|
|
|
;; options.scm
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:make-option)
|
|
|
|
(export gnc:option-section)
|
|
|
|
(export gnc:option-name)
|
|
|
|
(export gnc:option-sort-tag)
|
|
|
|
(export gnc:option-type)
|
|
|
|
(export gnc:option-documentation)
|
|
|
|
(export gnc:option-getter)
|
|
|
|
(export gnc:option-setter)
|
|
|
|
(export gnc:option-default-getter)
|
|
|
|
(export gnc:option-generate-restore-form)
|
2002-07-07 15:52:40 -05:00
|
|
|
(export gnc:option-scm->kvp)
|
2011-01-10 15:39:40 -06:00
|
|
|
(export gnc:set-option-scm->kvp)
|
2002-07-07 15:52:40 -05:00
|
|
|
(export gnc:option-kvp->scm)
|
2011-01-10 15:39:40 -06:00
|
|
|
(export gnc:set-option-kvp->scm)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:option-value-validator)
|
|
|
|
(export gnc:option-data)
|
|
|
|
(export gnc:option-data-fns)
|
|
|
|
(export gnc:option-set-changed-callback)
|
|
|
|
(export gnc:option-strings-getter)
|
|
|
|
(export gnc:option-widget-changed-proc)
|
|
|
|
(export gnc:option-value)
|
|
|
|
(export gnc:option-set-value)
|
|
|
|
(export gnc:option-index-get-name)
|
|
|
|
(export gnc:option-index-get-description)
|
|
|
|
(export gnc:option-index-get-value)
|
|
|
|
(export gnc:option-value-get-index)
|
|
|
|
(export gnc:option-number-of-indices)
|
|
|
|
(export gnc:option-default-value)
|
|
|
|
(export gnc:restore-form-generator)
|
|
|
|
(export gnc:value->string)
|
|
|
|
(export gnc:make-string-option)
|
|
|
|
(export gnc:make-text-option)
|
|
|
|
(export gnc:make-font-option)
|
|
|
|
(export gnc:make-currency-option)
|
|
|
|
(export gnc:make-commodity-option)
|
|
|
|
(export gnc:make-simple-boolean-option)
|
|
|
|
(export gnc:make-complex-boolean-option)
|
|
|
|
(export gnc:make-pixmap-option)
|
|
|
|
(export gnc:make-date-option)
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:make-budget-option)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:get-rd-option-data-subtype)
|
|
|
|
(export gnc:get-rd-option-data-show-time)
|
|
|
|
(export gnc:get-rd-option-data-rd-list)
|
|
|
|
(export gnc:date-option-get-subtype)
|
|
|
|
(export gnc:date-option-show-time?)
|
|
|
|
(export gnc:date-option-value-type)
|
|
|
|
(export gnc:date-option-absolute-time)
|
|
|
|
(export gnc:date-option-relative-time)
|
|
|
|
(export gnc:make-account-list-option)
|
2002-07-02 19:47:02 -05:00
|
|
|
(export gnc:make-account-list-limited-option)
|
2002-10-19 18:14:09 -05:00
|
|
|
(export gnc:make-account-sel-option)
|
|
|
|
(export gnc:make-account-sel-limited-option)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:multichoice-list-lookup)
|
|
|
|
(export gnc:make-multichoice-option)
|
|
|
|
(export gnc:make-multichoice-callback-option)
|
2002-05-27 00:24:41 -05:00
|
|
|
(export gnc:make-radiobutton-option)
|
|
|
|
(export gnc:make-radiobutton-callback-option)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:make-list-option)
|
2004-01-15 17:41:53 -06:00
|
|
|
(export gnc:options-make-end-date!)
|
|
|
|
(export gnc:options-make-date-interval!)
|
2001-08-16 19:44:01 -05:00
|
|
|
|
|
|
|
(export gnc:make-number-range-option)
|
|
|
|
(export gnc:make-internal-option)
|
|
|
|
(export gnc:make-query-option)
|
|
|
|
(export gnc:make-color-option)
|
2003-06-08 22:42:52 -05:00
|
|
|
(export gnc:make-dateformat-option)
|
|
|
|
(export gnc:dateformat-get-format)
|
2001-08-16 19:44:01 -05:00
|
|
|
|
|
|
|
(export gnc:color->html)
|
|
|
|
(export gnc:color-option->html)
|
|
|
|
(export gnc:color-option->hex-string)
|
|
|
|
(export gnc:new-options)
|
|
|
|
|
|
|
|
(export gnc:register-option)
|
|
|
|
(export gnc:options-register-callback)
|
|
|
|
(export gnc:options-register-c-callback)
|
|
|
|
(export gnc:options-unregister-callback-id)
|
|
|
|
(export gnc:options-for-each)
|
|
|
|
(export gnc:options-for-each-general)
|
|
|
|
(export gnc:lookup-option)
|
|
|
|
(export gnc:generate-restore-forms)
|
2002-07-07 15:52:40 -05:00
|
|
|
(export gnc:options-scm->kvp)
|
|
|
|
(export gnc:options-kvp->scm)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:options-clear-changes)
|
|
|
|
(export gnc:options-touch)
|
|
|
|
(export gnc:options-run-callbacks)
|
|
|
|
(export gnc:options-set-default-section)
|
|
|
|
(export gnc:options-get-default-section)
|
|
|
|
(export gnc:options-copy-values)
|
|
|
|
(export gnc:send-options)
|
|
|
|
(export gnc:save-options)
|
|
|
|
|
2001-09-20 04:18:50 -05:00
|
|
|
;; config-var.scm
|
|
|
|
(export gnc:make-config-var)
|
|
|
|
(export gnc:config-var-description-get)
|
|
|
|
(export gnc:config-var-action-func-get)
|
|
|
|
(export gnc:config-var-equality-func-get)
|
|
|
|
(export gnc:config-var-modified?)
|
|
|
|
(export gnc:config-var-modified?-set!)
|
|
|
|
(export gnc:config-var-default-value-get)
|
|
|
|
(export gnc:config-var-default-value-set!)
|
|
|
|
(export gnc:config-var-value-get)
|
|
|
|
(export gnc:config-var-value-set!)
|
|
|
|
(export gnc:config-var-value-is-default?)
|
|
|
|
|
|
|
|
;; prefs.scm
|
|
|
|
(export gnc:get-debit-string)
|
|
|
|
(export gnc:get-credit-string)
|
2006-01-21 15:23:02 -06:00
|
|
|
(export gnc:config-file-format-version)
|
2005-11-01 21:32:36 -06:00
|
|
|
|
|
|
|
;; gw-engine-spec.scm
|
2006-10-15 14:02:05 -05:00
|
|
|
(re-export HOOK-SAVE-OPTIONS)
|
2001-09-20 04:18:50 -05:00
|
|
|
|
2001-08-16 19:44:01 -05:00
|
|
|
;; date-utilities.scm
|
|
|
|
|
|
|
|
(export gnc:reldate-list)
|
|
|
|
(export gnc:timepair->secs)
|
|
|
|
(export gnc:secs->timepair)
|
|
|
|
(export gnc:timepair->date)
|
|
|
|
(export gnc:date->timepair)
|
|
|
|
(export gnc:date-get-year)
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:date-get-quarter)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:date-get-month-day)
|
|
|
|
(export gnc:date-get-month)
|
|
|
|
(export gnc:date-get-week-day)
|
|
|
|
(export gnc:date-get-year-day)
|
|
|
|
(export gnc:timepair-get-year)
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:timepair-get-quarter)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:timepair-get-month-day)
|
|
|
|
(export gnc:timepair-get-month)
|
|
|
|
(export gnc:timepair-get-week-day)
|
2007-12-18 14:55:39 -06:00
|
|
|
(export gnc:timepair-get-week)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:timepair-get-year-day)
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:date-get-year-string)
|
|
|
|
(export gnc:date-get-quarter-string)
|
|
|
|
(export gnc:date-get-quarter-year-string)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:date-get-month-string)
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:date-get-month-year-string)
|
2007-12-18 14:55:39 -06:00
|
|
|
(export gnc:date-get-week-year-string)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:leap-year?)
|
|
|
|
(export gnc:days-in-year)
|
|
|
|
(export gnc:days-in-month)
|
|
|
|
(export gnc:date-to-year-fraction)
|
|
|
|
(export gnc:date-year-delta)
|
|
|
|
(export gnc:date-to-month-fraction)
|
|
|
|
(export gnc:date-to-week-fraction)
|
2007-12-18 14:55:39 -06:00
|
|
|
(export gnc:date-to-week)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:date-to-day-fraction)
|
2010-06-12 10:51:40 -05:00
|
|
|
(export gnc:date-get-fraction-func)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export moddatek)
|
|
|
|
(export decdate)
|
|
|
|
(export incdate)
|
|
|
|
(export gnc:timepair-later)
|
|
|
|
(export gnc:timepair-lt)
|
|
|
|
(export gnc:timepair-earlier)
|
|
|
|
(export gnc:timepair-gt)
|
|
|
|
(export gnc:timepair-le)
|
|
|
|
(export gnc:timepair-ge)
|
|
|
|
(export gnc:timepair-eq)
|
|
|
|
(export gnc:timepair-earlier-date)
|
|
|
|
(export gnc:timepair-later-date)
|
|
|
|
(export gnc:timepair-le-date)
|
|
|
|
(export gnc:timepair-ge-date)
|
|
|
|
(export gnc:timepair-eq-date)
|
|
|
|
(export gnc:make-date-interval-list)
|
|
|
|
(export gnc:make-date-list)
|
|
|
|
(export make-zdate)
|
|
|
|
(export SecDelta )
|
|
|
|
(export DayDelta)
|
|
|
|
(export WeekDelta )
|
|
|
|
(export TwoWeekDelta)
|
|
|
|
(export MonthDelta)
|
|
|
|
(export QuarterDelta)
|
|
|
|
(export HalfYearDelta)
|
|
|
|
(export YearDelta )
|
|
|
|
(export ThirtyDayDelta)
|
|
|
|
(export NinetyDayDelta)
|
2001-09-27 21:52:22 -05:00
|
|
|
(export gnc:deltasym-to-delta)
|
2001-08-16 19:44:01 -05:00
|
|
|
(export gnc:timepair-delta)
|
|
|
|
(export gnc:time-elapsed)
|
|
|
|
(export gnc:timepair-start-day-time)
|
|
|
|
(export gnc:timepair-end-day-time)
|
|
|
|
(export gnc:timepair-previous-day)
|
|
|
|
(export gnc:reldate-get-symbol)
|
|
|
|
(export gnc:reldate-get-string)
|
|
|
|
(export gnc:reldate-get-desc)
|
|
|
|
(export gnc:reldate-get-fn)
|
|
|
|
(export gnc:make-reldate-hash)
|
|
|
|
(export gnc:reldate-string-db)
|
|
|
|
(export gnc:relative-date-values)
|
|
|
|
(export gnc:relative-date-hash)
|
|
|
|
(export gnc:get-absolute-from-relative-date)
|
|
|
|
(export gnc:get-relative-date-strings)
|
|
|
|
(export gnc:get-relative-date-string)
|
|
|
|
(export gnc:get-relative-date-desc)
|
|
|
|
(export gnc:get-start-cal-year)
|
|
|
|
(export gnc:get-end-cal-year)
|
|
|
|
(export gnc:get-start-prev-year)
|
|
|
|
(export gnc:get-end-prev-year)
|
|
|
|
(export gnc:get-start-this-month)
|
|
|
|
(export gnc:get-end-this-month)
|
|
|
|
(export gnc:get-start-prev-month)
|
|
|
|
(export gnc:get-end-prev-month)
|
|
|
|
(export gnc:get-start-current-quarter)
|
|
|
|
(export gnc:get-end-current-quarter)
|
|
|
|
(export gnc:get-start-prev-quarter)
|
|
|
|
(export gnc:get-end-prev-quarter)
|
|
|
|
(export gnc:get-today)
|
|
|
|
(export gnc:get-one-month-ago)
|
|
|
|
(export gnc:get-three-months-ago)
|
|
|
|
(export gnc:get-six-months-ago)
|
|
|
|
(export gnc:get-one-year-ago)
|
|
|
|
(export gnc:reldate-initialize)
|
2010-10-05 13:19:57 -05:00
|
|
|
(export gnc:get-end-next-month)
|
|
|
|
(export gnc:get-end-next-quarter)
|
|
|
|
(export gnc:get-end-next-year)
|
|
|
|
(export gnc:get-one-month-ahead)
|
|
|
|
(export gnc:get-one-year-ahead)
|
|
|
|
(export gnc:get-six-months-ahead)
|
|
|
|
(export gnc:get-start-next-month)
|
|
|
|
(export gnc:get-start-next-quarter)
|
|
|
|
(export gnc:get-start-next-year)
|
|
|
|
(export gnc:get-three-months-ahead)
|
2001-08-16 19:44:01 -05:00
|
|
|
|
|
|
|
;; hooks
|
2005-11-01 21:32:36 -06:00
|
|
|
(export gnc:hook-run-danglers) ;; from hooks.scm
|
2006-10-15 14:02:05 -05:00
|
|
|
(re-export gnc-hook-add-scm-dangler)
|
|
|
|
(re-export HOOK-REPORT)
|
2001-08-16 19:44:01 -05:00
|
|
|
|
2001-10-25 03:10:51 -05:00
|
|
|
;; simple-obj
|
|
|
|
(export make-simple-class)
|
|
|
|
(export simple-obj-getter)
|
|
|
|
(export simple-obj-setter)
|
|
|
|
(export simple-obj-print)
|
|
|
|
(export simple-obj-to-list)
|
|
|
|
(export simple-obj-from-list)
|
|
|
|
(export make-simple-obj)
|
|
|
|
|
2010-05-06 04:01:46 -05:00
|
|
|
(define gnc:*kvp-option-path* (list KVP-OPTION-PATH))
|
2003-01-18 17:36:53 -06:00
|
|
|
(export gnc:*kvp-option-path*)
|
2002-07-08 09:52:55 -05:00
|
|
|
|
2011-03-21 10:10:12 -05:00
|
|
|
;; gettext functions
|
|
|
|
(define gnc:gettext gnc-gettext-helper)
|
|
|
|
(define _ gnc:gettext)
|
|
|
|
(define-syntax N_
|
|
|
|
(syntax-rules ()
|
|
|
|
((_ x) x)))
|
|
|
|
|
2012-12-18 04:25:38 -06:00
|
|
|
(export gnc:gettext)
|
|
|
|
(export _)
|
|
|
|
|
|
|
|
(if (< (string->number (major-version)) 2)
|
|
|
|
(export-syntax N_))
|
|
|
|
|
2011-03-21 10:10:12 -05:00
|
|
|
;; A lot of Gnucash's code uses procedural interfaces to load modules.
|
|
|
|
;; This normally works, for procedures -- but for values that need to be
|
|
|
|
;; known at expand time, like macros, it doesn't work (in Guile 2.0 at
|
|
|
|
;; least). So instead of auditing all the code, since N_ is really the
|
|
|
|
;; only Gnucash-defined macro in use, the surgical solution is just to
|
|
|
|
;; make N_ available everywhere.
|
|
|
|
(module-define! the-root-module 'N_ (module-ref (current-module) 'N_))
|
|
|
|
|
2001-08-16 19:44:01 -05:00
|
|
|
(load-from-path "c-interface.scm")
|
2001-09-20 04:18:50 -05:00
|
|
|
(load-from-path "config-var.scm")
|
2001-08-16 19:44:01 -05:00
|
|
|
(load-from-path "options.scm")
|
|
|
|
(load-from-path "hooks.scm")
|
2001-09-20 04:31:47 -05:00
|
|
|
(load-from-path "prefs.scm")
|
2001-08-16 19:44:01 -05:00
|
|
|
(load-from-path "date-utilities.scm")
|
2001-10-25 03:10:51 -05:00
|
|
|
(load-from-path "simple-obj.scm")
|
2001-09-20 04:18:50 -05:00
|
|
|
|
2011-11-21 04:40:43 -06:00
|
|
|
;; Business options
|
|
|
|
(define gnc:*business-label* (N_ "Business"))
|
|
|
|
(define gnc:*company-name* (N_ "Company Name"))
|
|
|
|
(define gnc:*company-addy* (N_ "Company Address"))
|
|
|
|
(define gnc:*company-id* (N_ "Company ID"))
|
|
|
|
(define gnc:*company-phone* (N_ "Company Phone Number"))
|
|
|
|
(define gnc:*company-fax* (N_ "Company Fax Number"))
|
|
|
|
(define gnc:*company-url* (N_ "Company Website URL"))
|
|
|
|
(define gnc:*company-email* (N_ "Company Email Address"))
|
|
|
|
(define gnc:*company-contact* (N_ "Company Contact Person"))
|
|
|
|
|
2012-02-12 12:43:13 -06:00
|
|
|
(define (gnc:company-info key)
|
|
|
|
;; Access company info from key-value pairs for current book
|
|
|
|
(kvp-frame-get-slot-path-gslist
|
|
|
|
(qof-book-get-slots (gnc-get-current-book))
|
|
|
|
(append gnc:*kvp-option-path* (list gnc:*business-label* key))))
|
|
|
|
|
|
|
|
(export gnc:*business-label* gnc:*company-name* gnc:*company-addy*
|
|
|
|
gnc:*company-id* gnc:*company-phone* gnc:*company-fax*
|
|
|
|
gnc:*company-url* gnc:*company-email* gnc:*company-contact*
|
|
|
|
gnc:company-info)
|
2011-11-21 04:40:43 -06:00
|
|
|
|
|
|
|
(define gnc:*option-section-accounts* OPTION-SECTION-ACCOUNTS)
|
|
|
|
(define gnc:*option-name-trading-accounts* OPTION-NAME-TRADING-ACCOUNTS)
|
2012-03-24 17:34:59 -05:00
|
|
|
(define gnc:*option-name-auto-readonly-days* OPTION-NAME-AUTO-READONLY-DAYS)
|
2011-11-21 04:40:43 -06:00
|
|
|
|
2012-03-24 17:34:59 -05:00
|
|
|
(export gnc:*option-section-accounts* gnc:*option-name-trading-accounts* gnc:*option-name-auto-readonly-days*)
|
2011-11-21 04:40:43 -06:00
|
|
|
|
|
|
|
(define gnc:*option-section-budgeting* OPTION-SECTION-BUDGETING)
|
|
|
|
(define gnc:*option-name-default-budget* OPTION-NAME-DEFAULT-BUDGET)
|
|
|
|
|
|
|
|
(export gnc:*option-section-budgeting* gnc:*option-name-default-budget*)
|
|
|
|
|
|
|
|
(load-from-path "business-options.scm")
|
|
|
|
(load-from-path "business-prefs.scm")
|