Björn Fromme
419d3b78c6
chore: update project dependencies
2026-01-23 12:54:07 +01:00
Björn Fromme
e8df7d193e
feat: display error codes in admin overview
2026-01-23 11:15:46 +01:00
Björn Fromme
aa08307500
feat: error-codes in flash messages to reference log entries
2026-01-23 11:06:24 +01:00
Björn Fromme
c41524c1fd
feat: user-friendly error messages on login
2026-01-23 10:30:17 +01:00
Björn Fromme
8dec0be375
feat: streamlined flash messages
2026-01-23 10:15:44 +01:00
Björn Fromme
9471abce94
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-01-21 17:18:09 +01:00
Björn Fromme
2aeed762fd
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-01-21 10:16:57 +01:00
Björn Fromme
512b63b88b
feat: infotext for insurance booking conditions
...
closes #869bvcu2p
2026-01-21 09:33:36 +01:00
Björn Fromme
92d7eac3a1
chore: update httpclient config to use random values for contactform
2026-01-21 09:02:47 +01:00
Björn Fromme
548b8a8ef0
feat: log contact form submissions
2026-01-21 08:43:28 +01:00
Björn Fromme
fb8aabe34c
chore: remove debug logging in toast controller
2026-01-21 08:11:36 +01:00
Björn Fromme
0c1f143b12
feat: info text and correct field type for service group 'VEG'
...
addresses #869bvch71
2026-01-20 18:36:33 +01:00
Björn Fromme
24ac2efc53
fix: don't hide voucher fields for booking status 'O'
...
closes #869bvbkrd
2026-01-20 16:06:17 +01:00
Björn Fromme
e7a139b025
chore: update test to fix deprecation warning
2026-01-20 16:05:48 +01:00
Björn Fromme
cfe19b7a74
chore: update project dependencies
2026-01-20 16:05:28 +01:00
Björn Fromme
f725a6b72f
feat: ignored room types
...
closes #869bvbmcw
2026-01-20 15:52:57 +01:00
Björn Fromme
a097159897
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-01-19 18:55:55 +01:00
Björn Fromme
da33620ea9
chore: update alert wording to be more descriptive
2026-01-19 18:06:29 +01:00
Björn Fromme
0b44394b11
feat: enforce profile data completeness before entering booking flow
2026-01-19 18:04:19 +01:00
Björn Fromme
2949870acc
feat: allow editing of nationality in personal data
2026-01-19 17:12:26 +01:00
Björn Fromme
35c289240d
fix: default participant's nationality to German to avoid missing data
2026-01-19 17:12:12 +01:00
Björn Fromme
3b165bf292
chore: update rsync excludes in deployer config
2026-01-19 16:17:35 +01:00
Björn Fromme
f0c43a17d8
feat: body dimensions mandatory with selected rentals, updated help text
...
feat: body dimensions mandatory with selected rentals
2026-01-19 16:12:53 +01:00
Björn Fromme
2776429639
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-01-19 15:51:39 +01:00
Björn Fromme
5c9f8c2a2e
doc: add technical documentation
2026-01-17 19:27:06 +01:00
Björn Fromme
3e6533829c
fix: ensure unique services mapping when creating api payload
2026-01-16 14:22:17 +01:00
Björn Fromme
054505d853
feat: match modes for room selection condition to detect MBZ*
...
addresses #869btdcyh
2026-01-15 11:02:27 +01:00
Björn Fromme
c793550af5
feat: improved logic to control field visibility
...
addresses #869btdphv
2026-01-15 10:28:26 +01:00
Björn Fromme
b18fccff9d
fix: correctly handle discounts applied by dpn api
2026-01-14 17:46:15 +01:00
Björn Fromme
398eb448cb
feat: cli command to download travel xml data from buspro api
2026-01-14 16:57:17 +01:00
Björn Fromme
6cdede138e
fix: correct body dimensions values
2026-01-14 16:07:30 +01:00
Björn Fromme
3046aad94d
fix: account for discounts applied by bpn api in validation request
2026-01-14 12:47:25 +01:00
Björn Fromme
ec2ce6ec62
feat: revert room price fetching for performance reasons
2026-01-13 15:54:54 +01:00
Björn Fromme
3c61e7eaf3
feat: trigger form refresh for dob when completely entered only
2026-01-13 15:37:05 +01:00
Björn Fromme
f942600dd8
fix: fetch fresh room prices from api to avoid calculation mismatch
2026-01-13 15:14:27 +01:00
Björn Fromme
efacbf64cb
fix: consider booking status O correctly
2026-01-13 14:42:51 +01:00
Björn Fromme
e38445f184
fix: correctly compare age range
2026-01-13 14:42:35 +01:00
Björn Fromme
00803b2e73
feat: always load fresh api data when starting to edit booking
2026-01-13 13:16:35 +01:00
Björn Fromme
a52f65919f
chore: update project dependencies
2026-01-13 10:22:25 +01:00
Björn Fromme
3d4d88e986
feat: xlsx export of booking edit draft data for admins
2026-01-13 10:22:03 +01:00
Björn Fromme
5221cea53b
feat: merge draft data with api response for selected fields
2026-01-12 18:25:51 +01:00
Björn Fromme
7636ee41af
fix: ensure nationality is assigned when editing booking data
2026-01-12 18:23:52 +01:00
Björn Fromme
830fd2464c
fix: avoid reinstallation of claude code with each restart of ddev
2026-01-11 13:35:50 +01:00
Björn Fromme
d922fd2b9c
chore: update project dependencies
2026-01-11 13:26:02 +01:00
Björn Fromme
d22078b26e
fix: populate booking number with edit drafts
2026-01-11 13:25:13 +01:00
Björn Fromme
195af95995
feat: integrate with easy admin bundle
2026-01-11 13:24:07 +01:00
Björn Fromme
d95d0a8930
feat: streamlined booking number property
2026-01-10 12:12:54 +01:00
Björn Fromme
6fca40963d
wip: integrate with easy admin bundle
2026-01-10 11:35:16 +01:00
Björn Fromme
ace251c1dd
feat: cleanup favicons
2026-01-10 11:34:46 +01:00
Björn Fromme
db2e92c058
feat: custom hx redirect class
2026-01-10 11:32:14 +01:00
Björn Fromme
28b62f5071
feat: adjust xml dump reader command to new filename format
2026-01-10 11:31:24 +01:00
Björn Fromme
168c128b1d
chore: update claude code installation in ddev container
2026-01-09 18:07:45 +01:00
Björn Fromme
90af012e56
chore: update lts upgrade plan with current state of the project
2026-01-09 16:34:46 +01:00
Björn Fromme
d6c36b4171
chore: simplify and update claude code installation in ddev container
2026-01-09 16:25:43 +01:00
Björn Fromme
9575aad10c
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-01-09 13:37:22 +01:00
Björn Fromme
7b98cccbe9
fix: add suffix to request id in xml-dump filenames to avoid overwrites
2026-01-09 13:28:04 +01:00
Björn Fromme
fe2268c897
feat: cleanup, log successful bookings
2026-01-09 10:05:21 +01:00
Björn Fromme
f2c1988d75
chore: add draft cleanup command to schedule
2026-01-09 09:49:35 +01:00
Björn Fromme
5b9f35eddc
fix: use correct property path for travel date determination
2026-01-09 09:46:29 +01:00
Björn Fromme
c8ed5b2cc7
feat: cli command to backfill travel dates on draft records, single use
2026-01-09 09:39:35 +01:00
Björn Fromme
da517b37b6
feat: cli command to clean up outdated or stale booking draft records
2026-01-09 09:22:51 +01:00
Björn Fromme
0992c05539
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-01-09 09:22:18 +01:00
Björn Fromme
ed8a8a2f8b
feat: streamlined display of hotel image, name and address
2026-01-08 17:51:39 +01:00
Björn Fromme
5516ef45f6
chore: update project dependencies
2026-01-08 16:43:16 +01:00
Björn Fromme
6beb965c85
feat: new service category 'VEG'
2026-01-08 16:42:42 +01:00
Björn Fromme
479a88e131
chore: update httpclient config
2026-01-08 16:32:02 +01:00
Björn Fromme
e4a1a992be
feat: command to read xml-dumps from bpn api by provided request id
2026-01-08 14:23:22 +01:00
Björn Fromme
97a5d7f9f1
fix: include gender and nationality into group of mandatory fields
2026-01-08 14:18:37 +01:00
Björn Fromme
776b9d0912
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-01-08 12:54:59 +01:00
Björn Fromme
df35ed3032
feat: log request ids to map xml dumps of bpn api communication
2026-01-08 10:17:00 +01:00
Björn Fromme
59b08ed098
fix: update draft together with session on refresh
2026-01-08 08:38:21 +01:00
Björn Fromme
936004bc2d
fix: show actual error message
2026-01-07 20:30:58 +01:00
Björn Fromme
365658d727
fix: allow null argument for gender mapping
2026-01-07 20:00:51 +01:00
Björn Fromme
d603e57c62
fix: insurance ids are strings
2026-01-07 19:50:41 +01:00
Björn Fromme
58ec94eaeb
fix: exclude pickup surcharge when self-organized outbound
2026-01-07 19:45:12 +01:00
Björn Fromme
2f4184f60f
fix: avoid float rounding errors when comparing
2026-01-07 18:46:28 +01:00
Björn Fromme
b0b608f12e
feat: load hotel data locally for sidebar
2026-01-07 18:35:09 +01:00
Björn Fromme
97be776b10
feat: default status of new bookings to option during beta phase
...
addresses #869bpb7fg
2026-01-07 17:55:38 +01:00
Björn Fromme
ddb876bc1c
fix: ensure rental insurance is selectable when insurance is available
...
addresses #869bp9ev5
2026-01-07 17:31:20 +01:00
Björn Fromme
6fee5c048a
fix: correctly distinguish between first participant and applicant
2026-01-07 17:22:17 +01:00
Björn Fromme
80f22b7cd0
fix: don't include default date of birth in contact form submissions
2026-01-07 14:44:53 +01:00
Björn Fromme
e1123577f4
feat: update field label
2026-01-07 11:36:08 +01:00
Björn Fromme
5f33f82b8b
fix: redirect to dashboard as default when logged in
2026-01-07 10:15:27 +01:00
Björn Fromme
5285ded46f
chore: revert claude code replacement with opencode
2026-01-07 09:27:59 +01:00
Björn Fromme
69df93b773
feat: load balancing of api requests, cleanup api client
2026-01-07 08:33:16 +01:00
Björn Fromme
1e3389e21a
fix: properly handle parking service selection
2026-01-06 19:03:10 +01:00
Björn Fromme
192b1fdcf4
fix: add missing LoggerInterface dependency to BookingDataProcessorTest
2026-01-06 18:46:06 +01:00
Björn Fromme
6008a1b2d9
feat: retry api requests when closed immediately due to overload
2026-01-06 17:29:34 +01:00
Björn Fromme
62fc734f82
fix: avoid null pointer exceptions, log warning about removed services
2026-01-06 16:08:51 +01:00
Björn Fromme
7fb5466eb4
fix: avoid scrolling to the bottom when making a selection
...
closes #869bnn1bw
2026-01-06 15:34:25 +01:00
Björn Fromme
aafac9d43b
chore: update scheduler config
2026-01-06 15:01:08 +01:00
Björn Fromme
585f87e1f9
chore: reduce logger noise
2026-01-06 14:48:32 +01:00
Björn Fromme
eb1d05aa10
fix: only assign dummy data to the applicant
2026-01-06 14:39:49 +01:00
Björn Fromme
db1de2653c
fix: assign dummy values to missing applicant data fields
...
This fix avoids rejection of API requests due to missing data of the
applicant. The current user most probably is not aware about this so
they get confused about the error messages otherwise.
2026-01-06 14:29:41 +01:00
Björn Fromme
8bdc33b4f0
feat: draft inspection cli command
2026-01-06 14:06:04 +01:00
Björn Fromme
1c1766bbd4
fix: apply correct return type and response handling
2026-01-06 14:05:51 +01:00
Björn Fromme
96205c14db
fix: only invalidate cache and remove draft on successful edit
2026-01-06 13:53:49 +01:00
Björn Fromme
7ec4562064
chore: code cleanup
2026-01-06 12:38:51 +01:00
Björn Fromme
1eb1e9f02f
fix: invalidate booking data caches after updating personal data
2026-01-06 12:24:07 +01:00
Björn Fromme
0b35b3494b
fix: streamline price label for transportation services
2026-01-06 12:08:13 +01:00