diff --git a/src/BusProNet/DataProcessor/BookingDataProcessor.php b/src/BusProNet/DataProcessor/BookingDataProcessor.php index d431a59..2551e60 100644 --- a/src/BusProNet/DataProcessor/BookingDataProcessor.php +++ b/src/BusProNet/DataProcessor/BookingDataProcessor.php @@ -124,9 +124,15 @@ class BookingDataProcessor // Pickup location $participantData->pickup = $booking->getPickupForParticipant($index); - // Parking (stored in form data, not in booking entity - needs special handling) - // For now, leave as false - may need to extract from transportation services - $participantData->parking = false; + // Parking service (for self-organized PKW transportation) + $parkingServices = $booking->getAdditionalServicesForParticipantByGroup($index, Constants::TOKEN_PARKING); + if (false === empty($parkingServices)) { + $participantData->parking = true; + $participantData->parkingService = reset($parkingServices); + } else { + $participantData->parking = false; + $participantData->parkingService = null; + } // License plate (not stored in booking entity) $participantData->licensePlate = null; @@ -213,6 +219,11 @@ class BookingDataProcessor $participant->rentalInsurance = $travel->additionalServices[$participant->rentalInsurance->id]; } + // Enrich parking service + if (null !== $participant->parkingService && isset($travel->additionalServices[$participant->parkingService->id])) { + $participant->parkingService = $travel->additionalServices[$participant->parkingService->id]; + } + // Enrich transportation services if (null !== $participant->transportationOutbound && isset($travel->transportationServices[$participant->transportationOutbound->id])) { $participant->transportationOutbound = $travel->transportationServices[$participant->transportationOutbound->id]; diff --git a/src/BusProNet/DataProcessor/ParticipantServiceProcessor.php b/src/BusProNet/DataProcessor/ParticipantServiceProcessor.php index 3e85e14..fc88c09 100644 --- a/src/BusProNet/DataProcessor/ParticipantServiceProcessor.php +++ b/src/BusProNet/DataProcessor/ParticipantServiceProcessor.php @@ -115,7 +115,7 @@ class ParticipantServiceProcessor * Collects additional services from a participant for mapping. * * Extracts all additional services (courses, board, rentals, ski pass, rental insurance, - * additional services) from a participant into a flat array of Service objects. + * parking, additional services) from a participant into a flat array of Service objects. * * @param ParticipantDto $participant The participant data * @@ -140,6 +140,11 @@ class ParticipantServiceProcessor $services[] = $participant->rentalInsurance; } + // Add parking service if selected (for self-organized PKW transportation) + if (true === $participant->parking && null !== $participant->parkingService) { + $services[] = $participant->parkingService; + } + return $services; }