mirror of https://github.com/Gnucash/gnucash
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
|
|
Proposed Extensions
|
|
-------------------
|
|
The following are extension proposals to the various underlying data
|
|
structures and interfaces:
|
|
|
|
Accounting Periods
|
|
------------------
|
|
Acconting periods are implemented by creating a structure that
|
|
describes the accounting period, and then assigning ever traansaction to
|
|
at least one period.
|
|
|
|
typedef struct _accountingPeriod {
|
|
GUID guid; // id
|
|
char *name; // user-selectable name
|
|
int kind; // enum {none, week, month, quarter, year }
|
|
start_date; //
|
|
end_date;
|
|
} AccountingPeriod;
|
|
|
|
The Transaction struct has to be extended with a period guid.
|
|
Every transaction can belong to at most one accounting period.
|
|
|
|
|
|
Changes to Transaction Structure
|
|
--------------------------------
|
|
Add an accounting period guid (see above).
|
|
|
|
Changes to Journal Entry (Split) Structure
|
|
------------------------------------------
|
|
Voucher Reference
|
|
-----------------
|
|
Add a char * voucher; This is a generic id string that somehow
|
|
identifies the piece of paper/electronic document(s) that indicate
|
|
where/how to find the paper trial for this entry. This list of id's
|
|
should probably be a list of key-value pairs, where the keys & values
|
|
can be completely configured by the user, and hold the needed data
|
|
that the user wants to store. For the SQL backend, this is a key
|
|
to a user-definable table.
|
|
|