Inventory system design: proposal:

Lianto Ruyang lianto.ruyang at
Tue Oct 9 12:15:10 EDT 2007

Hello Everyone,

I want to add an inventory system to gnucash. After looking at the code and
considering how i want it to be, i come up with the following design:

* core
 - Item { name, sell-price, buy-price, quantity, description, item_group,
asset-account, expense-account,
               income-account }
 - Item_group { name, list_of_item }

* ui
 - input-dialog
 - select-dialog (A tree-view of "Item_groups", and inside each "Item_group"
are the "Items")
 - invoice (Press "Enter" in the description register will pop-up the

* report (profit of each item, qty of each item, etc)
* backend (xml??)

The "Item" and "Item_group" object will be derived from QofInstance, so they
will be queryable. Above are informations which i think is needed most for
those objects.
The 'asset-account', 'expense-account', and 'income-account' will be useful
in filling the invoice. After a user select an "Item" from select-dialog,
the "account" columns and "price" columns can be automatically filled.
The dialogs can be created using glade.

There are a lot of problems which i choose to put aside for now (because it
gives me too much headache :) such as
- how to make the select-dialog can show items quickly (i imagine if the
items are in thousands the tree-view will be very slow)
- is it allright to modify the current invoice, or is it better to make
another special invoice for inventory?
and lots lots of other things which hasn't occured to me just now. Not to
mention how to write the code :)

Please tell me your opinion (any opinion!!) and thoughts. I've never
involved in opensource software development before, lot of stuff to learn.
Hope it 's ok.

More information about the gnucash-devel mailing list