ANNOUNCE: book closing beta 2

Linas Vepstas linas at linas.org
Fri Aug 22 00:24:01 CDT 2003



ANNOUNCE: Book Closing Beta 2
-----------------------------
Books AKA Accounting Periods can now be closed by going to the 'Action'
menu on the main window, and selecting 'close books'.   This will popup
a druid that will allow you to select closing dates.  Books are closed
one at a time: after each one, you can go back and alter the close date.  
A book is 'closed' by moving transactions and prices earlier than the 
indicated date to a separate file.

As a side-effect of book closing, capital gains (losses) will be
automatically computed using a FIFO accounting method.  Stocks 
or other non-cash assets that haven't been sold will remain in the 
currently open book, even if the purchasing transactions were made 
a long time ago.

The biggest drawback to the automatic computation of the gains/losses
is that there is no GUI to specify alternate accounting methods
(e.g. LIFO, or hand-picked lots, etc.)  There is bascially no practical
way to 'undo' the results of the gain/loss computations.

The other main drawback to book closing is that this will prevent
multi-year (multi-period) reports & graphs from being generated.
The old data will be in separate files, and there is currently no
way to load several files at once.

I would like to hear some thoughts/discussion on these issues. 
Bug reports, too.  A ranking of 'the most important related
task to do next' would be good.  One, um, uncomfortable remark:  
I am so flooded in email that I may not be able to react for a while.  
(Like a week or more).

THIS CODE IS NOT IN 1.8.5, IT IS IN CVS ONLY !

Open Issues/Questions that Need Discussion:
-------------------------------------------
*) Discussion Q: What should the naming convention be for the different 
   books?  When the XML file backend is used, different books need to be 
   stored as different files (in order to avoid the performance 
   penalty of a large file load).  Currently, what's implemented is

   book-1dc750aa3e6fd045c13ac8afb1a9ac03-my-gnucash-file.xac.gml

   where the number is the GUID of the closed book (needed to be able to
   quickly find the book/file) and 'my-gnucash-file.xac' is the name of
   the orignial file whose books were closed.

*) Discussion Q: When saving books, make the book title part of the 
   book name (user convenience).

*) Should closed books be allowed to have unreconciled transactions?
   Answer: probably.  Should there be a warning? 

*) Special considerations for scheduled transactions/recurring 
   transactions?  Probably none needed.  Should copies of SX's be 
   placed in old books? Probably not -- what purpose would that serve?



Open Issues / ToDo
------------------
*) Fix crash when exiting gnucash after closing books. 

*) The filename of the old, closed books should probably be saved 
   in the KVP tree of the current open book.  This need be done only
   from the file backend.

*) Need to mark closed book as unalterable, and respect that markup.
   I think there's a 'closed' flag in the book, but I don't think its
   respected.

*) The book closing GUI (druid-acct-period.c) needs to save/restore 
   period end date (the FreqSpec) to KVP on open book.  This would be
   easy once we have a freq-spec-to-kvp and freq-spec-from-kvp routines.

*) Handling of lots in book closing is implemented but is poorly tested.
   Need to write test cases.  Also test cases for prices in book
   closing.

*) price-saving in the SQL backend is probably borken, its certainly
   untested.  Need to remove old deprecated price-lookup mechanism, 
   and replace w/ qofquery.

*) Need to provide for loading of closed books, because this is needed
   for reports.

*) Handling of multi-book reports ???  Need to work out the recommended way
   of making this happen....

*) Have some way of remembering the quickfill text from older books.

*) Possibly neat idea: 
   Book closing, as currently implemented in the GUI, is driven entirely
   by the date-posted.  There is no (planned) interface to allow you to
   exclude some certain transactions from a particular closing (although
   it would be 'easy' to add this: right be fore I close a book, I have a
   list of transactions which can be added to/removed from).

*) add 13-period support to FreqSpec and the FreqSpec widget.  
   e.g. from the mailing list:
   One of the calenders my company uses is like this:
   13 periods
   1st period begins jan 1st, partial first week plus 4 weeks.
   2nd - 13th period begins on a sunday every four weeks.
   13th period - 4th week may be less than full week because it ends on 12/31.

   For 2003:
   01. 01/01 - 02/01
   02. 02/02 - 03/01
   03. 03/02 - 03/29
   04. 03/30 - 04/26
   05. 04/27 - 05/24
   06. 05/25 - 06/21
   07. 06/22 - 07/19
   08. 07/20 - 08/16
   09. 08/17 - 09/13
   10. 09/14 - 10/11
   11. 10/12 - 11/08
   12. 11/09 - 12/06
   13. 12/07 - 12/31
                                                                                


=========================== end of file ========================

-- 
pub  1024D/01045933 2001-02-01 Linas Vepstas (Labas!) <linas at linas.org>
PGP Key fingerprint = 8305 2521 6000 0B5E 8984  3F54 64A9 9A82 0104 5933


More information about the gnucash-devel mailing list