[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Of account translations, account hierarchies and gifi codes

On Tue, Sep 15, 2015 at 01:00:49AM +0200, Erik Huelsmann wrote:

> > You want differing reports for various purposes:  a summary


I am not generalizing GIFIs, I was only explaining the flexibility of
the approach.  I would say multiple BS/PNL report styles are a necessity.

I understand the concept of GIFI, but I don't know enough details so
I completely avoided them.  

> One thing that I was affraid of - and hopefully you and others can comment
> on it - is that users currently recognise 'gifi' very easily. Would you

Most Americans have no clue what gifi means?  

If the tax man says he needs a GIFIized report, people will find it;
just don't make it too hard.  

> My point is that if a hierarchy encompasses all accounts, one can't tell
> the PNL and the balance sheet apart anymore, if there's nothing to mark the
> hierarchy node which is the parent of all PNL accounts.

Oh!  I'll append the sql, the comments about default report address 
this.  The Asset, Liability, eQuity, Income, Expense tags define that.
A/L/Q are balances, I/E are income statement.  The order I listed them
is the normal reporting order.

Another way to think about it: income statement accounts are the ones 
that are zeroed by the closing process.


 -- LedgerSMB  Balance sheet and Income Statement enhancement
 -- for flexibility.  The process using glreport also needs
 -- a start date, an end date, and a retained earnings account.
 -- XXX Defaulting end date to today or none seems 
 -- problematic: what does the user mean and expect.
 -- There is need for a default report set.  This ignores all the
 -- below and does a stable sort on A/L/Q/I/E, reports all accounts,
 -- and totals each of those catagories.
 -- A default gifi report should also exist.  This is not addressed
 -- for lack of knowledge: many to one account to gifi, sequencing,
 -- etc.

CREATE TABLE glreport (
    id serial not null unique,
    name text primary key,
    comment text,       
    precision text

The various balance sheet / income statement report definitions. 

COMMENT ON FIELD glreport.name IS $$
Mnemonic tag.$$

COMMENT ON FIELD glreport.title IS $$
Formal name.$$

COMMENT ON FIELD glreport.comment IS $$
User comment.$$

COMMENT ON FIELD glreport.precision IS $$
Format of amounts.$$

CREATE TABLE acct_group (       -- XXX bad naming glrep_group ~ rep_grp
    id serial not null unique,
    glreport int reterences glreport.id,
    key_acct int references account.accno,
    accounts text,
    debit bool,
    contra bool,
    title text,
    trailer text,
    summary bool,
    parent int references acct_group.id,
    layout text                 -- XXX necessary or divine from depth?

COMMENT ON TABLE acct_group IS $$
A set of g/l accounts grouped for a gl report.$$

COMMENT ON FIELD acct_group.glreport IS $$
The report of which this group is a part. 

COMMENT ON FIELD acct_group.key_acct IS $$
The accno of this account determines the sequence point of the
group in a report.  This could just be a sequence number but
tieing it to an account defines the range of numbers
in play for the user.$$

COMMENT ON FIELD acct_group.accounts IS $$
This is a text list of accounts in the group. Like "501-510,500,512".
Controls the sequence of accounts in the report.  This mechanism could 
be used to report by gifi codes.   Either the user verifies their
report against the default report or report processing could find 
orphan accounts, these would be placed as if the accno is 
the key_acct.$$

COMMENT ON FIELD acct_group.debit IS $$
Report the group as debit or credit.$$

COMMENT ON FIELD acct_group.contra IS $$
Report the group like a contra account. Not strictly necessary but
nice to consolate a series of Equipment and Offset accounts to two

COMMENT ON FIELD acct_group.title IS $$
Top text for group.$$

COMMENT ON FIELD acct_group.trailer IS $$
Trailing text for group.$$

COMMENT ON FIELD acct_group.summary IS $$
Summarize or print the constituent details.$$

COMMENT ON FIELD acct_group.parent IS $$
If null acct_group is top level.  Perhaps there should be a max
depth limit.$$

COMMENT ON FIELD acct_group.layout IS $$
Indentation of group.  Three seems like max.$$

Ledger-smb-devel mailing list