For the first portion of the rewrite, I will focus on getting a basic journal/ledger structure up on fully rewritten code. This will include basic financial statements, batches, vouchers, journal entries, etc.
I expect to start on this in 2-3 weeks. Below is a draft of what I hope to accomplish. The scope of this part is just general ledger/general journal-related functionality.
I Strategic Requirements
Very old data may be purged without affecting reports outside that period. Companies can set their own retention policies. We do not need to provide a user interface immediately for such purging though. Access to this should be through the standard financial interface with additional options selected.
Within the retention period, all state transitions for financial transactions must be auditable. This includes deleting and updating drafts and vouchers.
We need to support faster locking and lock unlocking for discretionary locks.
II: Journal Entry Specifics
Journal entries must balance to be entered into the books.
Journal entries do not cross dates
Journal entries may not be marked deleted after being approved
Journal entries may exist as templates, drafts, vouchers, or approved transactions
Approved transactions may be reversed.
Drafts, templates, and vouchers may be non-destructively "deleted"
Deleted templates may be purged.
III: Reports for this phase include:
General Ledger and Transaction Search
Current Balances/Chart of Accounts
These reports must be able to tolerate purged data and be tested with purged data.
The general ledger and transaction search report must have options to show templates and deleted transactions, as well as individual vouchers and drafts.
Draft and batch approval will go through this report.
IV: Transaction Approval:
Draft approval will go through gl and transaction search
Batch approval will have an additional listing that will click through to the general transaction search.
The stage after this will be basic ar/ap without inventory.
Efficito: Hosted Accounting and ERP. Robust and Flexible. No vendor lock-in.