booking = $booking; $instance->travel = $travel; foreach ($booking->participants as $index => $participant) { /** @var PersonalData $participant */ $participantData = ParticipantData::fromPersonalData($participant); $participantData->index = $index; // update services only for active participants if ('S' !== $participantData->status) { $participantData->courses = $booking ->getAdditionalServicesForParticipantByGroup($index, Service::TOKEN_COURSES); $participantData->skiPass = $booking ->getAdditionalServicesForParticipantByGroup($index, Service::TOKEN_SKI_PASS); $participantData->additionalServices = $booking ->getAdditionalServicesForParticipantByGroup($index, Service::TOKEN_ADDITIONAL); $participantData->board = $booking ->getAdditionalServicesForParticipantByGroup($index, Service::TOKEN_BOARD); $participantData->rentals = $booking ->getAdditionalServicesForParticipantByGroup($index, Service::TOKEN_RENTALS); // Different keys for direction used in booking data (H <=> HIN, R <=> RUECK)! $participantData->transportationServiceTo = $booking ->getTransportationServiceForParticipantAndDirection($index, 'H'); $participantData->transportationServiceFro = $booking ->getTransportationServiceForParticipantAndDirection($index, 'R'); $participantData->pickup = $booking->getPickupForParticipant($index); } $instance->participants[$index] = $participantData; } return $instance; } }