Skip to content

v4.8.0

Choose a tag to compare

@developeregrem developeregrem released this 24 May 08:50
· 91 commits to master since this release
fc4939e

Im happy to release the next version with some important enhancements and new fetures based on you feedback und PRs!

🏦 Bank statement import

Pull your monthly bank statement directly into the booking journal — matching invoices and rules do the heavy lifting.

  • CSV import with configurable per-bank profiles (delimiter, encoding, column mapping, date format)
  • ISO 20022 camt.052 / camt.053 XML support — multi-file upload, only booked entries imported
  • Automatic invoice matching from one to three example invoice numbers (no regex required)
    • detect invoice numbers in statement remarks and map them to your existing invoices
  • Import rules with conditions, actions, tax rate, and priority — save directly from the preview
  • Receipt number field per line — manual entry or auto-extracted via marker / regex; carried into all splits and exported to DATEV document field 1
  • Split transactions into multiple postings with fixed amount, percentage, or remainder
  • Duplicate protection via fingerprinting — re-upload the same file safely
  • Inline editing, bulk actions, status filters in the preview
  • Many thanks to @MeisterAdebar for his invaluable support during the implementation and testing of this feature ❤️

📖 Check out the updated Bank import documentation

👥 Guest categories

Replace the single person count with structured guest categories — adults, children, infants, or custom groups.

  • New entity GuestCategory with statistical group (adult / child / infant / other), age range, occupancy flag, and subsidiary scoping
  • Guest counts per reservation as a category-keyed map; total persons derived automatically
  • “At least one adult” rule enforced everywhere, with a per-booking override option in the backend
  • Price modifiers per category — surcharge, percentage discount, flat rate, or free — applied automatically to per-person room prices
  • Online booking redesigned: separate adult / children counts with per-child age input, mapped to the right category automatically
  • Default categories seeded on first start; existing reservations migrated automatically

📖 Check the Guest categories documentation

🏖️ Tourist tax / accommodation levies

New domain for tourist tax, city tax, accommodation levies, and the Swiss accommodation duty — versionable per subsidiary, with its own accounting.

  • Two calculation modes: flat per person/night, percentage of room price per night
  • Net / gross base selectable for percentage modes
  • Adults-only filter for levies that exempt children
  • Per-category rates with optional report groups for official statements
  • Dedicated tax rate and revenue account per levy — clean DATEV separation
  • Multiple parallel levies per subsidiary (e.g. tourist tax + city tax)
  • Waive option per reservation for exempt stays
  • Conditional UI — fields and invoice blocks only appear where a levy is active
  • Separate invoice block with transparent per-category breakdown

📖 Also check Accommodation levies documentation

further changes

  • allow same-day booking in online booking
  • you can set an extra price in price settings as mandatory for online booking (e.g. cleaning fees)
  • fix description auto-fill on initial invoice modal load in #222 thx @strobelm
  • Basic logging: log entity create/update/delete events in #224 thx @strobelm ❤️
  • added two new health enpoints for monitoring purpose
    • one general endpoint under /health/live which simply returns ok if the application is running
    • and another one under /health/ready which also checks db and redis cache (also check how to protect the endpoint here)

Full Changelog: 4.7.0...v4.8.0