GDA: A few questions

Derek Atkins warlord at MIT.EDU
Mon Dec 11 22:21:36 EST 2006

Quoting Chris Shoemaker <c.shoemaker at>:

> I'm not disagreeing about Invoices.  AFAICT, Invoices already have the
> design feature that I think SXs should have - they use real accounts,
> transactions, and splits, and just note in the transaction KVP that
> this is an invoice transaction.

Not at all.  An unposted invoice has no Account, Transaction,
or Split objects..  It has references, but it uses a GncEntry
object as the line item entries..  A GncInvoice is like a Transaction,
and a GncEntry is like a Split, but no, it doesn't re-use the
core engine objects.

> Invoices basically reuse the engine objects.  But SXs have:
> struct TTInfo_s
> {
>  /* FIXME add notes field */
>  char *description; /* owned by us */
>  char *num;         /* owned  by us */
>  gnc_commodity *common_currency; /* not freed */
>  GList *splits; /* list of template splits, owned by us */
> };
> which look suspiciously like a Transaction, and
> struct TTSplitInfo_s
> {
>  char *action; /* owned by us */
>  /* FIXME: What about the split's KvpFrame */
>  char *memo; /* owned by us */
>  char *credit_formula, *debit_formula; /* owned by us */
>  Account *acc;
> };
> which looks suspiciously like a Split.  And then the whole duplicated
> accounts setup.  I'm just saying SXs could use the real engine
> objects, just like Invoices.  The only difference is that the engine
> has to learn that "real" SX transactions aren't _that_ real. :)

Except Invoices don't either, for the same reason that it's causing
trouble that SXes do -- it complicates all the code when EVERYONE has
to be aware that a foo-object is really part of a bar-object.  Much
easier to just have foo object and bar object and then use KVP GUIDs
to link back and forth.

> Just to clarify, as for the GUI, I'm not suggesting that the register
> is a good place to edit or view the SX data structure - just the real
> transactions it would link to.

Except an SX isn't a real transaction, it's a Template Transaction.

> -chris


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list