Repository navigation
This release is mostly about bills and transfers. Transfers can now be skipped the same as bills, the Bills Calendar can project an account's balance through the rest of the year, and paid bills show when they were paid. The Quick Add page can also be installed as its own app, a What's new window now appears after an update, and bill and income notifications reach the bell again.
Added
- The Quick Add page can be installed as an app. Adding it to a home screen (or installing it from Chrome or Edge on a desktop) used to open Budget's main page instead, because Nextcloud gives every page in the app the same web app manifest and that one starts at the dashboard. On iPhone this meant "Add to Home Screen" could not be pointed at the Quick Add page at all, and the only way round it was a Shortcuts workaround. The page now has its own manifest and icon, so the installed app opens straight to the form in its own window without the browser's address bar, which is what you want when paying at a till. Chromium browsers also need a secure (HTTPS) connection before they offer to install it
- The import review says which rows have no description. Description has to be mapped before a file can be imported, however nothing checked the cells under it, so a row with an empty description went through the review step without a word. Import rules that match on the description cannot categorise a row that has none, and in the file this came from five rows in six had been exported with the cell empty and showed as uncategorized with nothing to say why. A warning above the statistics now says how many of the rows have no description, with their row numbers, and that they will still be imported. A row whose description is filled in by a Set Description rule is not counted. Reported by @TerjeTM (#388)
- A transfer can be skipped. Bills have had a Skip button for a while, but the Transfers page never offered one, so the only way past a transfer that was not going to happen this time was to mark it paid and then delete the two transactions that created. The Transfers page now has the same Skip as bills: the due date moves on one cycle, any transactions pre-booked for the skipped date are removed and the next occurrence is pre-booked in their place, and Undo in the notification that appears puts the old date back. Suggested by @SGiersch (#396)
- A payment without a transaction can be dismissed. The Payments without a recorded transaction card lists any bill marked paid with no transaction behind it, and its only way out was Record transaction, so someone who had deleted the payment on purpose because the bank never took it was reminded of it for the card's whole 60 days. Each entry now has Dismiss, which keeps the bill as paid and stops listing that payment, and where the bill still holds its last payment a Mark Unpaid button as well, the same revert the list offers, for when the money never left at all. A dismissal covers that one payment only, so the bill's next payment without a transaction is flagged again. Reported by @TerjeTM (#394)
- The Bills Calendar projects an account's balance through the rest of the year. With an account chosen in the calendar's Account filter, a Projected balance row under the monthly totals starts from the account's balance today and carries it from month to month, taking off the bills still to be paid out of it and adding the transfers and recurring income still due into it, so each month shows what the account should hold by the end of it. Months already gone are blank, as anything paid then is in today's balance, and a bill still owed from an earlier month is counted in the current one. A shortfall is shown in red, hovering a month breaks it down into bills, transfers in and income, and hovering the row gives the balance it starts from and the lowest point in the year. Transfers are counted even when the table is set to hide them, since the money moves either way. The row is only shown for the current year, and not for All Accounts as there is no single balance to start from. The CSV and PDF exports carry the same row. Suggested by @TerjeTM (#393)
- A What's new window after an update. Each release can now come with a short note on what has changed, shown once the first time you open the app after updating, so new features don't go unnoticed in the changelog. It only appears for a release that has a note, a new install starts without one, and What's new on the Help & Docs page opens the latest notes again. The notes are in English only for the time being, as they go out with the release before there is a chance to translate them.
Changed
- Translations. French, German, Polish, Russian and Ukrainian have been updated from Weblate.
Fixed
- Bill and income notifications reach the notification bell. Bill reminders, overdue bills, auto-pay results and recurring income created automatically all carried the bill's or income's ID as a number, however Nextcloud only accepts text in a notification, so it discarded every one of them before they were shown. The other notifications (budget alerts, digests, unusual spending, forecast warnings, reports and share invitations) were not affected. All of them now go through.
- Paid bills show when they were paid. Marking a recurring bill paid moves its due date on to the next occurrence straight away, and the bills list only ever showed that date, so the Paid tab listed this month's payments next to next month's dates, and a bill marked paid by mistake could not be told apart from the rest. A paid bill or transfer now shows the date the payment was recorded, followed by the date it is next due. Reported by @TerjeTM (#399)
- A one-time transfer is entered with a date. The transfer form only asked for a day of the month, so a one-time transfer had no month, and the app filled the gap with January: a transfer entered on 22 September as due on the 28th came out due on 28 January of next year, and the Bills Calendar for this year never saw it. One-time bills have had a proper due date since 2.49.0, and the transfer form now asks for the same, in place of the day of the month. The date can be in the past, and the day and month follow it. A one-time transfer saved before this opens on the date the app had worked out, so the wrong year is there to be corrected. Transfers show in the Bills Calendar with Include Transfers ticked. Reported by @TerjeTM (#395)
- Undoing a skipped payment no longer books a placeholder the bill had opted out of. A bill with Create future transaction off keeps the next occurrence out of its ledger, and skipping it respected that, however undoing the skip put the placeholder back regardless, so a transfer with the setting off gained a pair of scheduled transactions as soon as a skip was undone. Found while adding Skip to transfers (#396)
- Turning on Create future transaction in the same save as a schedule change books the next occurrence. Editing a bill's due day, frequency or start date and ticking Create future transaction at the same time saved the setting but did not pre-book anything, and a transfer switched to a statement, balance or minimum payment amount along with a schedule change kept its old placeholder at the old fixed amount. Both were down to the new due date being worked out on the bill before those checks compared the old settings with the new ones, so they saw nothing had changed. Found while adding statement amounts (#347)
- The budget report's Spent column only counts the accounts in view. The Budget page and the carried-over amounts have counted only your own accounts and the ones shared with you for a while, however the budget report and the dashboard's Budget Progress tile took Spent from every account with a transaction in the category. With the tile set to leave shared accounts out, spending in them was still counted. Spent now uses the same accounts as the rest of the report.
- A budget on a parent category counts what is spent in its subcategories. Budget alerts and the budget report only counted transactions filed directly under the budgeted category, so a budget on Housing with the spending filed under Rent read 0 spent and never raised an alert. A budget now counts its subcategories as well, down to any subcategory with a budget of its own, which is measured on its own and not counted twice. Subcategories left out of budgets or reports stay out. After updating, alerts may appear for parent budgets that were overspent all along.
- A database column lost during an update comes back on its own. Since June several instances have hit "Unknown column" on saving, with Nextcloud recording the update that adds the column as done (#289, #302, #333, #398). The cause is now known and reproduced: Nextcloud applies each database change by comparing the whole database with a snapshot taken when the step started, and removes anything the snapshot did not have, so two app updates running at the same time take out each other's freshly added columns, and the Apps page's Update all runs every app's update at once. The app now checks its own tables after every update and re-runs the change behind anything missing, and the same repair runs when the app is disabled and enabled again, from the Apps page or with
occ, and onocc maintenance:repair. The warning shown when a column is missing says so instead of namingocc migrations:execute, which nobody without a shell could act on. Reported by @malle214 - The import review shows the category a Category column gives a row. With a column mapped to Category, a row that no import rule has categorised is filed under the category that column names, and Auto-categorized counted it, however the table beside it read "Uncategorized" for the same row, so a six-row file could say "Auto-categorized: 3" above a table showing one category. The table now shows the category from the column, and Show uncategorized no longer hides those rows. A rule's category still comes first, as it does when the file is imported (#388)