mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Patch from Yves-Eric Martin <yem_lists.gnucash.org@filter.yve.net> to
make it easier for users to change the financial year end date. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@11392 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
586d04941a
commit
2c3e8d5054
@ -1,3 +1,10 @@
|
||||
2005-10-06 David Hampton <hampton@employees.org>
|
||||
|
||||
* src/app-utils/date-utilities.scm: Patch from Yves-Eric Martin
|
||||
<yem_lists.gnucash.org@filter.yve.net> to make it easier for users
|
||||
to change the financial year end date. They still have to edit a
|
||||
scheme file though.
|
||||
|
||||
2005-08-16 Christian Stimming <stimming@tuhh.de>
|
||||
|
||||
* src/import-export/hbci/hbci-interaction.c (inputBoxCB): Aaarg,
|
||||
|
@ -1,6 +1,7 @@
|
||||
;; date-utilities.scm -- date utility functions.
|
||||
;; Bryan Larsen (blarsen@ada-works.com)
|
||||
;; Revised by Christopher Browne
|
||||
;; Improvement to financial year support by Yves-Eric Martin
|
||||
;;
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
@ -19,6 +20,14 @@
|
||||
;; 59 Temple Place - Suite 330 Fax: +1-617-542-2652
|
||||
;; Boston, MA 02111-1307, USA gnu@gnu.org
|
||||
|
||||
|
||||
;; fin-year-start format: mm dd
|
||||
(define fin-year-start '(07 01))
|
||||
|
||||
|
||||
(define fin-year-start-month (- (car fin-year-start) 1)) ;; jan == 0
|
||||
(define fin-year-start-day (cadr fin-year-start))
|
||||
|
||||
(define gnc:reldate-list '())
|
||||
|
||||
(define (gnc:timepair->secs tp)
|
||||
@ -435,13 +444,13 @@
|
||||
;; FIXME:: Replace with option when it becomes available
|
||||
(define (gnc:get-start-cur-fin-year)
|
||||
(let ((now (localtime (current-time))))
|
||||
(if (< (tm:mon now) 6)
|
||||
(if (or (< (tm:mon now) fin-year-start-month) (and (= (tm:mon now) fin-year-start-month) (< (tm:mday now) fin-year-start-day) ))
|
||||
(begin
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now 1)
|
||||
(set-tm:mon now 6)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:year now (- (tm:year now) 1))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now))
|
||||
@ -449,20 +458,20 @@
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now 1)
|
||||
(set-tm:mon now 6)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now)))))
|
||||
|
||||
(define (gnc:get-start-prev-fin-year)
|
||||
(let ((now (localtime (current-time))))
|
||||
(if (< (tm:mon now) 6)
|
||||
(if (or (< (tm:mon now) fin-year-start-month) (and (= (tm:mon now) fin-year-start-month) (< (tm:mday now) fin-year-start-day) ))
|
||||
(begin
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now 1)
|
||||
(set-tm:mon now 6)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:year now (- (tm:year now) 2))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now))
|
||||
@ -470,53 +479,42 @@
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now 1)
|
||||
(set-tm:mon now 6)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:year now (- (tm:year now) 1))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now)))))
|
||||
|
||||
(define (gnc:get-start-next-fin-year)
|
||||
(let ((now (localtime (current-time))))
|
||||
(if (or (< (tm:mon now) fin-year-start-month) (and (= (tm:mon now) fin-year-start-month) (< (tm:mday now) fin-year-start-day) ))
|
||||
(begin
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now))
|
||||
(begin
|
||||
(set-tm:sec now 0)
|
||||
(set-tm:min now 0)
|
||||
(set-tm:hour now 0)
|
||||
(set-tm:mday now fin-year-start-day)
|
||||
(set-tm:mon now fin-year-start-month)
|
||||
(set-tm:year now (+ (tm:year now) 1))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now)))))
|
||||
|
||||
(define (gnc:get-end-prev-fin-year)
|
||||
(let ((now (localtime (current-time))))
|
||||
(if (< (tm:mon now) 6)
|
||||
(begin
|
||||
(set-tm:sec now 59)
|
||||
(set-tm:min now 59)
|
||||
(set-tm:hour now 23)
|
||||
(set-tm:mday now 30)
|
||||
(set-tm:mon now 5)
|
||||
(set-tm:year now (- (tm:year now) 1))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now))
|
||||
(begin
|
||||
(set-tm:sec now 59)
|
||||
(set-tm:min now 59)
|
||||
(set-tm:hour now 23)
|
||||
(set-tm:mday now 30)
|
||||
(set-tm:mon now 5)
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now)))))
|
||||
(let ((now (gnc:get-start-cur-fin-year)))
|
||||
(gnc:secs->timepair (- (gnc:timepair->secs now) 1))
|
||||
))
|
||||
|
||||
(define (gnc:get-end-cur-fin-year)
|
||||
(let ((now (localtime (current-time))))
|
||||
(if (< (tm:mon now) 6)
|
||||
(begin
|
||||
(set-tm:sec now 59)
|
||||
(set-tm:min now 59)
|
||||
(set-tm:hour now 23)
|
||||
(set-tm:mday now 30)
|
||||
(set-tm:mon now 5)
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now))
|
||||
(begin
|
||||
(set-tm:sec now 59)
|
||||
(set-tm:min now 59)
|
||||
(set-tm:hour now 23)
|
||||
(set-tm:mday now 30)
|
||||
(set-tm:mon now 5)
|
||||
(set-tm:year now (+ (tm:year now) 1))
|
||||
(set-tm:isdst now -1)
|
||||
(gnc:date->timepair now)))))
|
||||
(let ((now (gnc:get-start-next-fin-year)))
|
||||
(gnc:secs->timepair (- (gnc:timepair->secs now) 1))
|
||||
))
|
||||
|
||||
(define (gnc:get-start-this-month)
|
||||
(let ((now (localtime (current-time))))
|
||||
|
Loading…
Reference in New Issue
Block a user