TurtleSoft staff is still working on Pay Bills, Deposit Funds, and the other action dialogs in our new accounting software. It probably will take a few more weeks to finish them.
All the action dialogs were already set up, back in November 2021. They looked good and showed proper data. However, they didn’t do the necessary tricks: handling clicks, typing and buttons, posting payments. That’s what we are finishing now.
Some of the extra work is because of bank deregulation.
In the early days of Goldenseal accounting, banks were on a tight leash. It was a legacy of the Great Depression. Checking accounts wrote checks, and didn’t do much else. Credit card accounts only had cards. Loans and savings accounts had neither. Goldenseal accounting software was built around the differences.
Then, everything smooshed. You could write a check, swipe a card, and get cash from almost every type of account. More types of accounts could go negative. We gradually updated Goldenseal to cope, but it was a losing battle.
The new accounting software has plain bank accounts. There still is a cash/checking/credit card/loan/savings split, but it’s just a popup field rather than different account classes. Investments still need their own class because they can be job costed. Escrows have to be separate because it’s not your money.
Banking transactions show up in many, many places. It’s taking a while to root them all out, and switch things to the new system. However, the change is not all bad. New bank accounts store some extra info that makes it very fast to fetch running totals. The old system was complicated, and still buggy even after 20 years of repairs. Now it’s much simpler.
Even better, Reconcile is 100x faster now. When you change the period, it fills the table almost instantly.
Last week, our staff started to test the Reconcile command. It ran OK for TurtleSoft’s data, but the numbers were wrong. Not surprising, since we did a total rewrite of the calculations. New code is rarely perfect on the first go.
We tried Reconcile on the Sample File, since it is smaller and easier to debug. It froze up with an infinite loop somewhere. That led to a couple days of problem solving. I’ll describe the events here, just so you know what it’s like to design and build complex software.
First of all, the freeze was easy to locate: it happened when the popup list of reconcile periods filled in. Problem was, early versions of Goldenseal didn’t have dates attached to the periods. It’s something we added in 2006. Our code uses the C++ standard library to sort the list, and it got confused when asked to sort a list of identical bad dates. Switching to a different sort method solved that problem.
The next problem was, how do we handle old reconcile periods without dates? Some long-time users will have them. Early on, we added a button to fill in a year’s worth of periods. That uses month-year format (e.g. Jan-22). Could we convert it to a date? Sure, but it meant a dive into the complicated, mid-1990s code that translates text to dates. It didn’t handle month-year, but we added a branch to make it work.
When you open an existing Goldenseal file with TurtleSoft Pro, it already converts all the data to the new format, and saves it into a new file. We added the same text-conversion there. Now, if a Reconcile Period doesn’t have a valid date, the code tries hard to give it one before you even use it.
The Sample File now works great. Your Goldenseal file probably will, too.
Dennis Kolva
Programming Director
TurtleSoft.com