Skip to content

Expense category descriptions - #208

Merged
devmount merged 8 commits into
mainfrom
enhancements/203-expense-category-descriptions
Nov 3, 2026
Merged

devmount merged 8 commits into
mainfrom
enhancements/203-expense-category-descriptions

Conversation

@devmount

@devmount devmount commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Description of the Change

Expense categories now have a description, taken from the wording of the Elster form "Anlage EÜR, 4 – 2. Betriebsausgaben", so it's easier to choose the category that is correct for the tax return.

  • ExpenseCategory implements Filament's HasDescription contract with a translated getDescription() method (en/de). The minor-assets limit in its text is read from config('business.minor_assets.max_net').
  • Expense form: the category select shows the description of the selected category as help text and updates it live when the category changes.
  • Expense table: hovering a category badge shows its description as a tooltip.

While mapping the categories to the EÜR lines, it turned out that the Vat category was missing from the tax return widget:

  • TaxReturnFormInput has two new rows:
    • EÜR line 58 (VAT paid to the tax office): the sum of positive Vat expenses.
    • EÜR line 18 (VAT refunded by the tax office): the sum of negative Vat expenses, shown as a positive amount. Negative entries are already created by Expense::saveLastAdvanceVat() in refund months.
  • The final profit line (rsc97) now includes both lines, matching Elster's calculation.
  • The taxable toggle is disabled and saved as false when a tax category (Vat, Tax) is selected. A tax payment or refund contains no VAT itself, and a taxable entry would only report its net amount on line 58/18.

Also fixes the three remaining Pint formatting issues (method ordering and line wrapping only, no behaviour change).

Benefits

  • No more guessing which category an expense belongs to for the tax return.
  • The tax return widget covers VAT payments and refunds, and its profit line matches what Elster calculates.
  • The codebase passes Pint again.

Applicable Issues

Closes #203

@devmount devmount self-assigned this Nov 3, 2026
@devmount
devmount merged commit e338ab7 into main Nov 3, 2026
2 checks passed
@devmount
devmount deleted the enhancements/203-expense-category-descriptions branch November 3, 2026 21:29
@devmount devmount changed the title Enhancements/203 expense category descriptions Expense category descriptions Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Descriptions for expense categories

1 participant