Bank transactions are the heart of any cash-based accounting software. They track how money moves around.
Goldenseal uses object-oriented programming. For banking, we went overboard with it. There are seven types of bank accounts: cash, checking, credit cards, escrows, investments, loans and savings. Each has their own transactions, which makes 14 object classes. On top of that, there are 5 more for checks, payments, deposits, transfers in and transfers out. Each has a different screen layout, showing slightly different data.
The new accounting app is simpler. There are plain old bank accounts instead of cash/checking/credit cards/loans/savings. The differences have blurred anyhow, thanks to deregulation. Also, there is just one layout for all money going in or out. The change removed a lot of excess code, dropping from 19 classes down to 6.
Using a single layout in the new app was more cluttered, with unused fields causing confusion. This week, our staff fixed that problem. Excess fields now disappear when you switch from a check to a transfer or back. It required some new code that turned out to be very nifty.
In Goldenseal, the title for each field is a separate caption block. Aligning them is a pain, and there’s no way for the code to change their text or hide them.
Bank transactions now create field labels automatically, using text from a resource. They can hide labels or change their text. As a result, banking looks like Goldenseal again.
There are other places that can use the same approach. In fact, we probably should use it everywhere. The advantages: simpler layouts, more consistent spacing, and easier translation to other languages. It’s too big a project to tackle now, but maybe in future upgrades. We can do it gradually.
We also improved another bit of banking interface. In Goldenseal, you can only see transactions for one account at a time. It’s annoying, but we never were able to fix it. The new app shows as many accounts as you want, each in its own tab or window. Major rewrites sure take their sweet time, but they do let us fix basic design flaws.
Every time our staff tidies layouts, we improve Custom Layouts just for our own convenience. The customizing interface won’t be perfect for the first release, but it already looks pretty good.
Dennis Kolva
Programming Director
TurtleSoft.com