Björn Fromme
c2054a1ef6
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
f9d420fecd
feat: revert allow updating room assignments in edit mode
2026-03-16 12:02:59 +01:00
Björn Fromme
3e1d719512
chore: update platform specs in composer.json for prod
2026-03-16 12:02:59 +01:00
Björn Fromme
f685bd18ab
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
f46cc59041
fix: allow updating room assignments in edit mode
2026-03-16 12:02:59 +01:00
Björn Fromme
380b1ed329
chore: streamline namespacing
2026-03-16 12:02:59 +01:00
Björn Fromme
1056b4fba6
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
19031dba99
fix: enforce profile completion of applicant in all situations
2026-03-16 12:02:59 +01:00
Björn Fromme
028db7a7ee
fix: ensure complete participant data even when canceled
2026-03-16 12:02:59 +01:00
Björn Fromme
a1764faaeb
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
8529bb0e21
fix: streamline datalayer integration for all events
2026-03-16 12:02:59 +01:00
Björn Fromme
9eefdd1858
fix: properly initialize CMP, GTM and data layer for tracking
2026-03-16 12:02:59 +01:00
Björn Fromme
e5803860df
feat: remove street from hotel address in sidebar
...
addresses #869bwq1vh
2026-03-16 12:02:59 +01:00
Björn Fromme
2754d734aa
chore: update frontend dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
3487ca4822
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
02ebddc34a
feat: require all personal data fields for registration
2026-03-16 12:02:59 +01:00
Björn Fromme
3957f6bd09
feat: tracking integration with GTM and CMP
2026-03-16 12:02:59 +01:00
Björn Fromme
11ab98b3d8
feat: domain-based theme-detection
2026-03-16 12:02:59 +01:00
Björn Fromme
e24403949c
chore: update database and php versions to match prod environment
2026-03-16 12:02:59 +01:00
Björn Fromme
288f6b91d0
chore: update deployer config for new hosting environment
2026-03-16 12:02:59 +01:00
Björn Fromme
8ca105966d
fix: don't normalize hotel and product codes when fetching cms data
2026-03-16 12:02:59 +01:00
Björn Fromme
592cd517ff
chore: update project url in ddev
2026-03-16 12:02:59 +01:00
Björn Fromme
586b410a66
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
a444940db2
feat: display error codes in admin overview
2026-03-16 12:02:59 +01:00
Björn Fromme
afe5aef9f7
feat: error-codes in flash messages to reference log entries
2026-03-16 12:02:59 +01:00
Björn Fromme
21a3e8fafc
feat: user-friendly error messages on login
2026-03-16 12:02:59 +01:00
Björn Fromme
26bbba5a2e
feat: streamlined flash messages
2026-03-16 12:02:59 +01:00
Björn Fromme
b68d5c9398
fix: revert pickup pricing to match current BusPro behavior
...
Reverts split pricing calculation to use outbound-only pricing,
matching BusPro's current behavior where pickup is only charged when
outbound transportation is BUS.
- Use pickup->price directly instead of calculateEffectivePrice()
- PKW+BUS scenario now correctly charges €0 (matches BusPro loophole)
- priceOutbound/priceInbound remain populated for future activation
- Updated documentation with current behavior and future plan
2026-03-16 12:02:59 +01:00
Björn Fromme
c1425f0562
feat: extensible participant status determination for booking creation
...
Adds a rule-based system to determine participant status in CREATE
payloads. Participants selecting a 'Begleitperson' service now receive
status 'O' (Option), all others default to 'F' (Final).
- Add ParticipantStatusRuleInterface for defining status rules
- Add ParticipantStatusRuleRegistry for priority-based rule evaluation
- Add ChaperonServiceStatusRule for Begleitperson detection
- Integrate status evaluation into BookingPayloadBuilder
2026-03-16 12:02:59 +01:00
Björn Fromme
e1f1b60608
feat: infotext for insurance booking conditions
...
closes #869bvcu2p
2026-03-16 12:02:59 +01:00
Björn Fromme
ea1c95528c
chore: update httpclient config to use random values for contactform
2026-03-16 12:02:59 +01:00
Björn Fromme
0cac2969ae
feat: log contact form submissions
2026-03-16 12:02:59 +01:00
Björn Fromme
b856c51389
chore: remove debug logging in toast controller
2026-03-16 12:02:59 +01:00
Björn Fromme
aa3b23ecb8
feat: info text and correct field type for service group 'VEG'
...
addresses #869bvch71
2026-03-16 12:02:59 +01:00
Björn Fromme
1e653e213a
fix: don't hide voucher fields for booking status 'O'
...
closes #869bvbkrd
2026-03-16 12:02:59 +01:00
Björn Fromme
7d91dcfb70
chore: update test to fix deprecation warning
2026-03-16 12:02:59 +01:00
Björn Fromme
8e7e6266f0
chore: update project dependencies
2026-03-16 12:02:59 +01:00
Björn Fromme
167ccf5151
feat: ignored room types
...
closes #869bvbmcw
2026-03-16 12:02:59 +01:00
Björn Fromme
c582e0820a
feat: move profile completeness check from login to booking flow entry
...
- Add profileComplete flag to User entity to avoid API calls
- Set flag during login (BpnAuthenticator) and profile save
- Check flag in IndexController when entering booking flow
- Remove ProfileCompletionSubscriber (no longer needed)
Users with incomplete profiles are only redirected when starting
a new booking, not on every login. Eliminates extra API call by
caching completeness status on the user entity.
2026-03-16 12:02:59 +01:00
Björn Fromme
7d3a63d744
chore: update alert wording to be more descriptive
2026-03-16 12:02:59 +01:00
Björn Fromme
0a0987873f
feat: enforce profile data completeness before entering booking flow
2026-03-16 12:02:59 +01:00
Björn Fromme
18d60c8781
feat: allow editing of nationality in personal data
2026-03-16 12:02:59 +01:00
Björn Fromme
7708ea6a0f
fix: default participant's nationality to German to avoid missing data
2026-03-16 12:02:59 +01:00
Björn Fromme
71a46c6b63
chore: update rsync excludes in deployer config
2026-03-16 12:02:55 +01:00
Björn Fromme
667324df69
feat: body dimensions mandatory with selected rentals, updated help text
...
feat: body dimensions mandatory with selected rentals
2026-03-16 12:02:28 +01:00
Björn Fromme
957e20d763
fix: preserve selected services from booking even when unavailable
...
When editing a booking, services that were previously booked but are no
longer available in the travel catalog were being dropped. This caused
API error 650 ("Anzahl Leistung stimmt nicht mit Teilnehmerzuordnung
überein") because the service participant counts no longer matched.
The fix ensures that in edit mode, booked services are merged with
travel data services in both:
- Form rendering (ParticipantFieldOptionsProvider): so checkboxes appear
- Handler validation (AbstractParticipantFieldHandler): so selections
are accepted
This allows users to keep their existing service selections or
deliberately replace them with other available options. Create mode
remains unchanged.
2026-03-16 12:02:28 +01:00
Björn Fromme
029a87c6ca
doc: add technical documentation
2026-03-16 12:02:28 +01:00
Björn Fromme
baa4609102
fix: ensure unique services mapping when creating api payload
2026-03-16 12:02:28 +01:00
Björn Fromme
875943e4da
feat: match modes for room selection condition to detect MBZ*
...
addresses #869btdcyh
2026-03-16 12:02:28 +01:00
Björn Fromme
10e674cdd0
feat: improved logic to control field visibility
...
addresses #869btdphv
2026-03-16 12:02:28 +01:00
Björn Fromme
0bf78b0b81
fix: correctly handle discounts applied by dpn api
2026-03-16 12:02:28 +01:00
Björn Fromme
c90b93556a
feat: cli command to download travel xml data from buspro api
2026-03-16 12:02:28 +01:00
Björn Fromme
f45718ea06
fix: correct body dimensions values
2026-03-16 12:02:28 +01:00
Björn Fromme
6d418ee8cc
fix: account for discounts applied by bpn api in validation request
2026-03-16 12:02:28 +01:00
Björn Fromme
4851b1b72d
feat: revert room price fetching for performance reasons
2026-03-16 12:02:28 +01:00
Björn Fromme
dfb6f88be9
feat: trigger form refresh for dob when completely entered only
2026-03-16 12:02:28 +01:00
Björn Fromme
f28227384d
fix: fetch fresh room prices from api to avoid calculation mismatch
2026-03-16 12:02:28 +01:00
Björn Fromme
cef9be92f3
fix: consider booking status O correctly
2026-03-16 12:02:28 +01:00
Björn Fromme
f849d67a79
fix: correctly compare age range
2026-03-16 12:02:28 +01:00
Björn Fromme
fba3becb06
feat: always load fresh api data when starting to edit booking
2026-03-16 12:02:28 +01:00
Björn Fromme
a23ff6d119
chore: update project dependencies
2026-03-16 12:02:28 +01:00
Björn Fromme
384744c958
feat: xlsx export of booking edit draft data for admins
2026-03-16 12:02:28 +01:00
Björn Fromme
70c6617e88
feat: merge draft data with api response for selected fields
2026-03-16 12:02:28 +01:00
Björn Fromme
9afe3b334e
fix: ensure nationality is assigned when editing booking data
2026-03-16 12:02:28 +01:00
Björn Fromme
ad67d4c7ae
chore: update project dependencies
2026-03-16 12:02:28 +01:00
Björn Fromme
b7eaed3ac3
fix: populate booking number with edit drafts
2026-03-16 12:02:28 +01:00
Björn Fromme
136e2d68a2
feat: integrate with easy admin bundle
2026-03-16 12:02:27 +01:00
Björn Fromme
bdcd54687d
feat: streamlined booking number property
2026-03-16 12:02:27 +01:00
Björn Fromme
99190b0ef1
wip: integrate with easy admin bundle
2026-03-16 12:02:27 +01:00
Björn Fromme
c7702b0c37
feat: cleanup favicons
2026-03-16 12:02:27 +01:00
Björn Fromme
9b88a2c14d
feat: custom hx redirect class
2026-03-16 12:02:27 +01:00
Björn Fromme
6a945e6a08
feat: adjust xml dump reader command to new filename format
2026-03-16 12:02:27 +01:00
Björn Fromme
9c7cf0778f
chore: update lts upgrade plan with current state of the project
2026-03-16 12:02:27 +01:00
Björn Fromme
dd0f1a25d0
feat: always allow editing of participants for internal bookings
...
Prior to this commit the mutability flag from BusProNet was evaluated
and would potentially conflict with this rule. This flag is now
completely ignored for internal bookings.
2026-03-16 12:02:27 +01:00
Björn Fromme
7f4cf3060e
fix: add suffix to request id in xml-dump filenames to avoid overwrites
2026-03-16 12:02:27 +01:00
Björn Fromme
30496a4875
feat: cleanup, log successful bookings
2026-03-16 12:02:27 +01:00
Björn Fromme
027508f495
chore: add draft cleanup command to schedule
2026-03-16 12:02:27 +01:00
Björn Fromme
b5e2b2a2ad
fix: use correct property path for travel date determination
2026-03-16 12:02:27 +01:00
Björn Fromme
9c9db05b86
feat: cli command to backfill travel dates on draft records, single use
2026-03-16 12:02:27 +01:00
Björn Fromme
1fa17a7df7
feat: cli command to clean up outdated or stale booking draft records
2026-03-16 12:02:27 +01:00
Björn Fromme
e09e5858d8
fix: don't update booking session and draft on form refresh
...
Each form refresh would create a draft even for users that just explore
booking options causing stale draft records in the database.
2026-03-16 12:02:27 +01:00
Björn Fromme
6ede062a66
feat: streamlined display of hotel image, name and address
2026-03-16 12:02:27 +01:00
Björn Fromme
b351b4042f
chore: update project dependencies
2026-03-16 12:02:27 +01:00
Björn Fromme
95d0ce33d4
feat: new service category 'VEG'
2026-03-16 12:02:27 +01:00
Björn Fromme
75366167e8
chore: update httpclient config
2026-03-16 12:02:27 +01:00
Björn Fromme
7fa7e4be45
feat: command to read xml-dumps from bpn api by provided request id
2026-03-16 12:02:27 +01:00
Björn Fromme
d14dafbade
fix: include gender and nationality into group of mandatory fields
2026-03-16 12:02:27 +01:00
Björn Fromme
e222f448bb
feat: proper determination of agency initiated bookings
...
For booking that are agency initiated (groups) different rules apply
concerning mutability and requirement of personal data and whether the
first participant is the applicant or not. This commit adds logic to
evaluate the agency id assigned to the booking data to decide.
2026-03-16 12:02:27 +01:00
Björn Fromme
f55ed3dc4c
feat: log request ids to map xml dumps of bpn api communication
2026-03-16 12:02:27 +01:00
Björn Fromme
fedfcc247e
fix: update draft together with session on refresh
2026-03-16 12:02:27 +01:00
Björn Fromme
8186adfaeb
fix: show actual error message
2026-03-16 12:02:27 +01:00
Björn Fromme
00304facba
fix: allow null argument for gender mapping
2026-03-16 12:02:27 +01:00
Björn Fromme
ff241f437f
fix: insurance ids are strings
2026-03-16 12:02:27 +01:00
Björn Fromme
4a6b9cd64d
fix: exclude pickup surcharge when self-organized outbound
2026-03-16 12:02:27 +01:00
Björn Fromme
8646dfbf02
fix: avoid float rounding errors when comparing
2026-03-16 12:02:27 +01:00
Björn Fromme
d6f2681c61
feat: load hotel data locally for sidebar
2026-03-16 12:02:27 +01:00
Björn Fromme
5a47ca6053
feat: default status of new bookings to option during beta phase
...
addresses #869bpb7fg
2026-03-16 12:02:22 +01:00
Björn Fromme
d7fd273475
fix: ensure rental insurance is selectable when insurance is available
...
addresses #869bp9ev5
2026-03-16 12:01:09 +01:00
Björn Fromme
ce828a6ef5
fix: correctly distinguish between first participant and applicant
2026-03-16 12:01:09 +01:00
Björn Fromme
15dbd72f93
fix: don't include default date of birth in contact form submissions
2026-03-16 12:01:09 +01:00