marker General Information
marker Project Homepages
marker Developers
marker XML
marker Support

 Cashtil is a SourceForge project: (cashutil).

 

How CashUtil relates to GnuCash

Sharing the GnuCash financial logic

There has been a long-standing need for a command-line interface to GnuCash data. Originally, CashUtil was built as a test-routine for QOF but it became increasingly obvious that the existing GnuCash source code could support a GUI and a CLI, each installable with or without the other.

Unfortunately, it proved impossible to fold cashutil into the gnucash monolith so CashUtil is now a SourceForge project that uses source code from the gnucash tree.

  1. QOF provides the engine but has no financial logic (which makes it ideal for it's use in other projects like PilotQOF).
  2. QOF also provides QSF to share data with other projects using XML, including PilotQOF.
  3. QOF-generator provides a command line interface, interactive shell and shell scripting mode.
  4. CashUtil is linked against the GnuCash source to provide the financial objects and ancillary logic.
  5. CashUtil will also be linked against the GnuCash v2 XML backend

This small test routine has the potential to become a significant project with substantial benefits to GnuCash users.

Additionally, the CLI - including the QOF interactive shell - can be easily added to any set of QOF objects to produce another CLI application to handle any kind of user data. As it develops, the CLI and shell will be folded into PilotQOF and QOFgen to make it even easier to build your own CLI for your own data with easy access to data from other QOF projects.

Note also that the DWI project could allow the rapid development of GUI projects based on QOF and able to share and process data from QOF projects.

Locations of cashutil/src/objects files in GnuCash
FileGnuCash engineBusiness
Account.csrc/engine/ 
Account.hsrc/engine/ 
AccountP.hsrc/engine/ 
cap-gains.csrc/engine/ 
cap-gains.hsrc/engine/ 
FreqSpec.csrc/engine/ 
FreqSpec.hsrc/engine/ 
FreqSpecP.hsrc/engine/ 
gncAddress.c business-core
gncAddress.h business-core
gncAddressP.h business-core
gncBillTerm.c business-core
gncBillTerm.h business-core
gncBillTermP.h business-core
gnc-commodity.csrc/engine/ 
gnc-commodity.hsrc/engine/ 
gncCustomer.c business-core
gncCustomer.h business-core
gncCustomerP.h business-core
gncEmployee.c business-core
gncEmployee.h business-core
gncEmployeeP.h business-core
gnc-engine.hsrc/engine/ 
gncEntry.c business-core
gncEntry.h business-core
gncEntryP.h business-core
gnc-filepath-utils.csrc/engine/ 
gnc-filepath-utils.hsrc/engine/ 
gncInvoice.c business-core
gncInvoice.h business-core
gncInvoiceP.h business-core
gncJob.c business-core
gncJob.h business-core
gncJobP.h business-core
gnc-lot.csrc/engine/ 
gnc-lot.hsrc/engine/ 
gnc-lot-p.hsrc/engine/ 
gncOrder.c business-core
gncOrder.h business-core
gncOrderP.h business-core
gncOwner.c business-core
gncOwner.h business-core
gncOwnerP.h business-core
gnc-pricedb.csrc/engine/ 
gnc-pricedb.hsrc/engine/ 
gnc-pricedb-p.hsrc/engine/ 
gncTaxTable.c business-core
gncTaxTable.h business-core
gncTaxTableP.h business-core
gncVendor.c business-core
gncVendor.h business-core
gncVendorP.h business-core
Group.csrc/engine/ 
Group.hsrc/engine/ 
GroupP.hsrc/engine/ 
iso-4217-currencies.csrc/engine/ 
messages.csrc/engine 
messages.hsrc/engine 
policy.csrc/engine/ 
policy.hsrc/engine/ 
policy-p.hsrc/engine/ 
Query.csrc/engine/ 
QueryCore.hsrc/engine/ 
Query.hsrc/engine/ 
QueryNew.hsrc/engine/ 
QueryObject.hsrc/engine/ 
QueryP.hsrc/engine/ 
SchedXaction.csrc/engine/ 
SchedXaction.hsrc/engine/ 
SchedXactionP.hsrc/engine/ 
Scrub2.csrc/engine/ 
Scrub2.hsrc/engine/ 
Scrub3.csrc/engine/ 
Scrub3.hsrc/engine/ 
Scrub.csrc/engine/ 
Scrub.hsrc/engine/ 
ScrubP.hsrc/engine/ 
SX-book.csrc/engine/ 
SX-book.hsrc/engine/ 
SX-book-p.hsrc/engine/ 
SX-ttinfo.csrc/engine/ 
SX-ttinfo.hsrc/engine/ 
Transaction.csrc/engine/ 
Transaction.hsrc/engine/ 
TransactionP.hsrc/engine/ 
TransLog.csrc/engine/ 
TransLog.hsrc/engine/ 
 

Validate

Copyright © 2005, 2006 Neil Williams

Bugs or problem reports to: QOF-devel mailing list.