Includes DB changes you need to log all terminals out during upgrade
Bank Rec / Cash Rec overhaul
This version of c9 substantially overhauls how bank rec / cash rec is managed. Previous implementation for bank rec / cash rec internally is quite complex and baroque. These changes seek to simplify things significantly, mainly to simplify transition/migration to the v5 based GL. So changes here are mostly technical but there will be some functional niceties here too, especially around reviewing / analyzing past recs. Also some bug fixes.
At its core rec boils down to three things.
- A record of a reconciled period and list of txns that fill that reconcile.
- Ability for the system to quickly / easily identify if a previous reconciliation has been damaged in some way. e.g. a backdated txn, a modified txn, a txn that was adjusted and in / out of the rec period.
- Ability to identify exactly what txns triggered the damage
A few nice things this version of c9 will deliver
- C9 will no longer care if you make historical changes but then backfill them. For example, undoing a workshop job and then redoing it for exactly same amount. Previously this would cause cash / bank rec to bark. Now it will be fine with it. As long as the net balance remains the same, bank rec will be happy.
- Browsing previous bank recs / cash recs will be tidier / easier to navigate and learn useful things from, including display of txns that damage a rec, if it is indeed damaged.
The migration to this version of c9 will try as much as possible to reconstruct this rec data from prior rec database structures. But prior structures were imperfect for the task. Migration impacts:
- Will accurately track whether or not all past reconciles are valid or damaged
- Will attempt to detect which txns contribute to a damaged reconcile, but will not be able to do this perfectly. Moreso with historically old bank recs : so less of a concern. Functionally accurately identifying issues with last rec is most important for smooth transition to new rec system.
- Some bugs in existing system will trigger some old recs to report as damaged when strictly speaking they are not. The issue is current c9 was supposed to log some information which is essential for doing this step but under some circumstances it did not. The recs themselves are fine, but the failed to log enough information to historically analyze them after the fact.
Changes in detail
- General Fixes / improvements
- Bugfix on cash rec save. Was not factoring in banked adjustments made on screen resulting in incorrect close balances being written
- Bank Rec / Cash Rec save was sensitive to simultaneous changes being made on other terminals which could result in an incorrect rec being saved. Usually would mean rec could flag entries in the rec as being sighted but in fact were not because they 'raced' into the rec between operator eyeballing the rec and save button being hit. Rec will now fail in this cases.
- Rec could misbehave for banks where you flip bank from/to bank/loan. Now works better on transition from one to other.
- Very subtle bug with dealing with held over items. On save, doubly held over items that exist more than 7 days before the start date of the rec would not be recorded against the bank rec resulting in items being lost altogether and also making relevant saved recs internally inconsistent since the influence of these held over txns was not logged onto the rec. Not possible to repair these recs. Root cause : save rec would write rec header to DB and then would execute journalrec(), which would look at newly added head for insight into rec status which would be empty. New code executes journalrec() first and also implements above stringent tests to protect against any inconsistent errors.
- Auto regression test introduction. In spirit of v5 dev core parts of this new bank rec now have good regression test suite coverage which should provide stronger QA guarantees for bank rec from here on.
New rec report will show if rec is good or not. Impacting bad txns will be highlighted in red with a reason provided why they are impactful. In screenshot below it is because a previously reconciled txn was deleted.
Other unrelated changes
- Mcleods Magician broken. Tweaked to get working again.
- Added new part image source for Gas Imports: will grab a heap of images for Thor stuff.