Archive for April, 2007

PBooks Live Demo

We’ve just launched a new live demo of PBooks. You can access the demo here:

PBooks Accounting and Bookkeeping System Live Demo

Login using the following credentials:

demo, demo

Your feedback is appreciated, so don’t be shy - let us have it!

DISCLAIMER: We can’t promise the continued availability of this live demo, so don’t forget about the simplified and static PBooks demo available here:

PBooks Static Demo

Bug Reports:

April 26, 2007 13:24PM: InnoDB FKs acting strange. Same with pdo, based upon the poor support for pdo in ubuntu, I’ve reverted to metabase for the demo install, which is on ubuntu. Altered tables for foreign keys, and system working again now.

Notes - PBooks as of v. 0.1

The initial release will use the base authentication system already released for use with Nexista. I’ve modeled the directory layout off of the one used by the symfony development framework due to its great documentation and explanation, but that’s all I used from symfony.

Data Model

Accounts

  • You cannot delete an account if there are transactions in it the account (enforced by InnoDB FK constraint).
  • Account deletion cannot be undone.
  • Account numbers correspond to the account type
  • Accounts are cached to an xml file for faster processing.

Journal and Ledger: Transactions, Entries, and Entry Amounts

  • 1 Entry per transaction in the general ledger
  • 2 or more entry amounts per journal entry, must balance to zero (only two are currently supported in the application, but the database can support as many as needed)
  • Entry Amounts related to a journal entry are all deleted when the journal entry itself is deleted (as well as the related general ledger transaction).

Transactions
Transactions are what go in the ledger, they are single sided and they adjust the running balance for each account. A transaction can be created by importing account transactions, as well as posting the transactions from an existing journal entry. If you import a transaction, it is not yet related to any journal entries. You can create a journal entry from that transaction, and the two will then be related. After that, you will not be able to only delete the transaction, you’d have to delete the journal, which will then also delete the transaction which is related to it. When you create a journal entry from a single transaction, the journal entry form will be pre-populated with the transaction data (even so far as to limit your options based upon the criteria supplied by the transaction).

Posting a journal entry to the general ledger is easy. Each journal entry that has not yet been posted to the ledger will have a “+” sign next to it. Click that, and the entry will post.

To-Do

  1. Be able to recalculate balances all at once.
  2. Test balance recalculations
  3. i18n
  4. Test in Internet Explorer - works
  5. A check to see if related entries and transactions are in sync.
  6. On journal entry page - need to match credit and debit rows by more than the amount and account id, but what else is there? Need a unique id for the entry amounts table to fully support multiple credits or debits in a single journal entry.
  7. Reports:
    • Cash flow - functional
    • Profit and loss - needs work
    • Balance sheet - functional
  8. Test test test test test, you get the idea. Especially test the posting of credit-side transactions to the ledger, it appears that some have an incorrect affect on the account balance. Make a similar balance to make sure the transactions have a balancing act themselves, depending on the normal balance of each account.
  9. Support more than one account per debit or credit in one journal entry. For example: withdrawal from bank account for $967.23 for payroll. Need to credit bank account and debit staff wages AS WELL AS taxes. Really a must have for the initial release.DONE!!! Now need to document the limits of how this works.
  10. Fix pagination Good enough for now.
  11. Get balance recalculation working.
  12. Create journal entries from ledger transactions, populating form with transaction data for one side of the equation - DONE
  13. Automatically create transactions in the general ledger whenever a journal entry is made. - CANCELLED

The code is almost ready for release. I reworked the data model a little bit and changed to InnoDB as a storage engine for MySQL (using another DB won’t be difficult because of the simplicity of the model. Most of the generalization is complete: I’ve set the db table references as configurable variables, started to localize with i18n, and have done a lot of testing.

Continue reading ‘Notes - PBooks as of v. 0.1′

PBooks Logo




Pbooks Logo Copyright 2007

Development Plans

DONE!

  1. Integration of the style css library from tigris.org.
  2. Foreign key constraints for entries and entry amount tables.
  3. Remove all PHP functions from XSL/XML files.

Development Notes




I’ve been generalizing the pbooks code base in release preparation. A couple of changes / additions I’ve made:

  • Added auto increment to id fields (breaks some metabase support)
  • Added link_prefix to all links to support non-mod_rewrite and sub-path setups
  • Starting to add support for database table prefixes and custom database table name.

Work In Progress

Here are a few of the items we’re working on:

  1. A basic demonstration of the PBooks bookkeeping system
  2. PBook Accounting and Bookkeeping Support Forums
  3. Software download with installation instructions
  4. Subversion repository and trac development environment