Current features of ledger.cgi
- HTML output all jumbled up and no real cookie support
- The 4 actions were not methodized, just a big if-then-else block
- Used reports.pm as the library of database independant access methods to get lists of accounts, etc.
- Display Ledger Summary screen
- Create New Ledger
- Edit Ledger Options
- Delete Ledger confirmation screen
Features of new Ledger.pm module
- Will use the HTMLObject::Normal and HTMLObject::ReadCookie modules
- All actions will be methodized and funneled through the run method
- No menus will be provided by Ledger.pm other than a Help link as we will be running inside the FrameSet that Jeremiah is working on.
- Will use DB::Main.pm to replace reports.pm methods - some routines will need to be added, etc.
- getLedgerCode(ledgerDB)
- doesSystemBalance(fromDate, toDate)
- findInvalidEntries(fromDate, toDate)
- getAccountBalances(@cashAccounts, date)
- getAccountTypeNames(@accountTypeNums)
- getAccountTypeBalances(@accountTypeNums, date)
- getAccountsOfType(type, ledgerCode)
- getLastTransactionDate(account, ledgerCode)
- A commify routine will be required
- The Edit/Create Ledger screen will be done by one method editLedger and based upon the command (edit or create) will display the correct items, etc.
- Links on Ledger Summary screen
- Fiscal Year Open/Close
- Ledger Configuration (Accounts, SubAccounts, etc.)
- New Transaction link
- Federal Deposit link
- Power & Quick Search links
- Portfolio link
- Investment Journal link
- Capital Gain/Loss link
- The Ledger Summary
- Evenutally this will be user defineable(Build your own start page!)
- Create New Ledger Configuration screen
- Edit Ledger Configuration screen
- Delete Ledger Confirmation screen