mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
run it through a smelling checker
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9192 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
12b7334d1e
commit
2670d4dc53
@ -30,7 +30,7 @@ other similar accounting concepts requires 'Lots' to be correctly
|
|||||||
handled. Lots are a way of identifying that an item bought in one
|
handled. Lots are a way of identifying that an item bought in one
|
||||||
transaction is the same as that sold in another transaction.
|
transaction is the same as that sold in another transaction.
|
||||||
When a book is closed, the entire lot must be brought forward,
|
When a book is closed, the entire lot must be brought forward,
|
||||||
and not just the account balance, because depreciation, captial
|
and not just the account balance, because depreciation, capital
|
||||||
gains, taxes, etc. depend on the dates of the originating
|
gains, taxes, etc. depend on the dates of the originating
|
||||||
transaction. See 'lots.txt' for details.
|
transaction. See 'lots.txt' for details.
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ this. More specifically: Split one file into two, with only 'old'
|
|||||||
transactions in one, and only 'new' transactions in the other.
|
transactions in one, and only 'new' transactions in the other.
|
||||||
|
|
||||||
I believe that this can be 'easily' coded by creating a second instance
|
I believe that this can be 'easily' coded by creating a second instance
|
||||||
of a gnc-book structure in memory, copying all the account info
|
of a qofbook structure in memory, copying all the account info
|
||||||
into it, and using Query.c to copy in only the 'old' transactions.
|
into it, and using Query.c to copy in only the 'old' transactions.
|
||||||
(and v.v. using Query.c to delete the old transactions in the other copy.)
|
(and v.v. using Query.c to delete the old transactions in the other copy.)
|
||||||
Then, look up the ending balance on all asset/liability accounts
|
Then, look up the ending balance on all asset/liability accounts
|
||||||
@ -74,7 +74,7 @@ The transfer description is, of course, 'opening balance'.
|
|||||||
Balances of income/expense accounts are zeroed out.
|
Balances of income/expense accounts are zeroed out.
|
||||||
|
|
||||||
I believe this code would be easy to write in C or scheme. There may be
|
I believe this code would be easy to write in C or scheme. There may be
|
||||||
a few bugs/difficulties lurking in gnc-book that might trip things up.
|
a few bugs/difficulties lurking in qofbook that might trip things up.
|
||||||
Also, at a minimum, there needs to be a GUI dialog, asking for the
|
Also, at a minimum, there needs to be a GUI dialog, asking for the
|
||||||
date on which to close the books.
|
date on which to close the books.
|
||||||
|
|
||||||
@ -233,20 +233,20 @@ Pro's & Con's
|
|||||||
-------------
|
-------------
|
||||||
I am not aware of any con's to plan A at this point.
|
I am not aware of any con's to plan A at this point.
|
||||||
|
|
||||||
Imlementation Overview
|
Implementation Overview
|
||||||
----------------------
|
----------------------
|
||||||
Plan A has been implemented in the engine. To quickly summarize:
|
Plan A has been implemented in the engine. To quickly summarize:
|
||||||
-- Partitioning involves splitting one book into two, called the
|
-- Partitioning involves splitting one book into two, called the
|
||||||
"old, closing book", and the "current open book".
|
"old, closing book", and the "current open book".
|
||||||
|
|
||||||
-- Accounts are copied between old and new books. One of the copies
|
-- Accounts are copied between old and new books. One of the copies
|
||||||
is issued new GUID's, but the rest of teh account data is copied.
|
is issued new GUID's, but the rest of the account data is copied.
|
||||||
KVP pairs are then added so that each copy points at the other,
|
KVP pairs are then added so that each copy points at the other,
|
||||||
and can thus be easily found. The "gemini" KVP keyword is used.
|
and can thus be easily found. The "gemini" KVP keyword is used.
|
||||||
The opening balance is zeroed for income accounts. A transaction
|
The opening balance is zeroed for income accounts. A transaction
|
||||||
is created to set the correct opening balance on asset accounts.
|
is created to set the correct opening balance on asset accounts.
|
||||||
The transaction is a tranfer from equity. An equity account is
|
The transaction is a transfer from equity. An equity account is
|
||||||
created automagically, if neeeded.
|
created automagically, if needed.
|
||||||
|
|
||||||
-- Transactions. Transactions are partitioned, and end up either
|
-- Transactions. Transactions are partitioned, and end up either
|
||||||
in the old or the new book. Splits move with transactions.
|
in the old or the new book. Splits move with transactions.
|
||||||
@ -265,7 +265,7 @@ Plan A has been implemented in the engine. To quickly summarize:
|
|||||||
|
|
||||||
-- Scheduled transactions/recurring transactions. These are left
|
-- Scheduled transactions/recurring transactions. These are left
|
||||||
in the new book, untouched. They are not copied into the old
|
in the new book, untouched. They are not copied into the old
|
||||||
book, and no trace of thier existance is left in the old book.
|
book, and no trace of their existence is left in the old book.
|
||||||
|
|
||||||
-- Business Objects. Not implemented.
|
-- Business Objects. Not implemented.
|
||||||
|
|
||||||
@ -304,15 +304,15 @@ Implementation Notes:
|
|||||||
because they can be easily picked apart by an appropriate SQL query.
|
because they can be easily picked apart by an appropriate SQL query.
|
||||||
(Not tested, probably borken).
|
(Not tested, probably borken).
|
||||||
|
|
||||||
Period-closing does not delete enything from the SQL database. That's
|
Period-closing does not delete anything from the SQL database. That's
|
||||||
the design. The core assumption is that having lots of old data in the
|
the design. The core assumption is that having lots of old data in the
|
||||||
sql db wouldn't slow it down, and thus, nothing needed to be actually
|
SQL DB wouldn't slow it down, and thus, nothing needed to be actually
|
||||||
deleted. So it doesn't delete anything.
|
deleted. So it doesn't delete anything.
|
||||||
|
|
||||||
However, an sql admin, if they were desperate to trim the db size,
|
However, an SQL admin, if they were desperate to trim the DB size,
|
||||||
could DELETE FROM * WHERE bookguid='asdfasdfasdf';
|
could DELETE FROM * WHERE bookguid='asdfasdfasdf';
|
||||||
|
|
||||||
-- The xml-file backend can store multiple books in one file. There
|
-- The XML-file backend can store multiple books in one file. There
|
||||||
is currently minimal support for writing out multiple books,
|
is currently minimal support for writing out multiple books,
|
||||||
one per file (this enables faster load, by not loading old books).
|
one per file (this enables faster load, by not loading old books).
|
||||||
There is currently no support for loading multiple books from multiple
|
There is currently no support for loading multiple books from multiple
|
||||||
@ -335,7 +335,7 @@ a long time ago.
|
|||||||
|
|
||||||
The biggest drawback to the automatic computation of the gains/losses
|
The biggest drawback to the automatic computation of the gains/losses
|
||||||
is that there is no GUI to specify alternate accounting methods
|
is that there is no GUI to specify alternate accounting methods
|
||||||
(e.g. LIFO, or hand-picked lots, etc.) There is bascially no practical
|
(e.g. LIFO, or hand-picked lots, etc.) There is basically no practical
|
||||||
way to 'undo' the results of the gain/loss computations.
|
way to 'undo' the results of the gain/loss computations.
|
||||||
|
|
||||||
The other main drawback to book closing is that this will prevent
|
The other main drawback to book closing is that this will prevent
|
||||||
@ -343,17 +343,11 @@ multi-year (multi-period) reports & graphs from being generated.
|
|||||||
The old data will be in separate files, and there is currently no
|
The old data will be in separate files, and there is currently no
|
||||||
way to load several files at once.
|
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).
|
|
||||||
|
|
||||||
|
|
||||||
Open Issues/Questions that Need Discussion:
|
Open Issues/Questions that Need Discussion:
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
*) How to handle business objects? e.g. vendors, customers should be
|
*) How to handle business objects? e.g. vendors, customers should be
|
||||||
copied into both old and new books. But invocies should be in one
|
copied into both old and new books. But invoices should be in one
|
||||||
or the other. Need to document which is which.
|
or the other. Need to document which is which.
|
||||||
|
|
||||||
*) Discussion Q: What should the naming convention be for the different
|
*) Discussion Q: What should the naming convention be for the different
|
||||||
@ -365,7 +359,7 @@ Open Issues/Questions that Need Discussion:
|
|||||||
|
|
||||||
where the number is the GUID of the closed book (needed to be able to
|
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
|
quickly find the book/file) and 'my-gnucash-file.xac' is the name of
|
||||||
the orignial file whose books were closed.
|
the original file whose books were closed.
|
||||||
|
|
||||||
Need to change the name to include the word "archive".
|
Need to change the name to include the word "archive".
|
||||||
|
|
||||||
@ -420,7 +414,7 @@ Open Issues / ToDo
|
|||||||
|
|
||||||
*) add 13-period support to FreqSpec and the FreqSpec widget.
|
*) add 13-period support to FreqSpec and the FreqSpec widget.
|
||||||
e.g. from the mailing list:
|
e.g. from the mailing list:
|
||||||
One of the calenders my company uses is like this:
|
One of the calendars my company uses is like this:
|
||||||
13 periods
|
13 periods
|
||||||
1st period begins jan 1st, partial first week plus 4 weeks.
|
1st period begins jan 1st, partial first week plus 4 weeks.
|
||||||
2nd - 13th period begins on a sunday every four weeks.
|
2nd - 13th period begins on a sunday every four weeks.
|
||||||
|
Loading…
Reference in New Issue
Block a user