wip: improved booking summary

This commit is contained in:
Björn Fromme
2026-03-16 11:59:09 +01:00
parent 727ee9b014
commit 65a33922cf
11 changed files with 168 additions and 90 deletions
@@ -23,7 +23,8 @@ class CreateStep1Controller extends AbstractController
public function __construct(
private readonly BookingService $bookingService,
) {
)
{
}
/**
@@ -51,11 +52,17 @@ class CreateStep1Controller extends AbstractController
return $this->redirectToRoute('app_booking_create_step_2');
}
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedRooms = $this->bookingService->groupRoomsBySelectionType($availableRooms);
$groupedSelectedRooms = $this->bookingService->groupRoomSelectionsByType($summary['selectedRooms'], $availableRooms);
return $this->render('booking/create_step_1.html.twig', [
'bookingCreateDto' => $bookingCreateDto,
'roomSummary' => $summary['selectedRooms'],
'participantCount' => $summary['participantCount'],
'form' => $form->createView(),
'groupedRooms' => $groupedRooms,
'groupedSelectedRooms' => $groupedSelectedRooms,
]);
}
@@ -76,10 +83,14 @@ class CreateStep1Controller extends AbstractController
$this->bookingService->saveBookingCreateDto($request, $bookingCreateDto);
$summary = $this->bookingService->getRoomSummaryAndParticipantCount($bookingCreateDto);
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedSelectedRooms = $this->bookingService->groupRoomSelectionsByType($summary['selectedRooms'], $availableRooms);
return $this->render('booking/_room_summary.html.twig', [
return $this->render('booking/_summary.html.twig', [
'bookingCreateDto' => $bookingCreateDto,
'roomSummary' => $summary['selectedRooms'],
'participantCount' => $summary['participantCount'],
'groupedSelectedRooms' => $groupedSelectedRooms,
]);
}
}
@@ -64,12 +64,15 @@ class CreateStep2Controller extends AbstractController
}
$roomAssignmentCounts = $this->bookingService->getRoomAssignmentCounts($bookingCreateDto);
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedSelectedRooms = $this->bookingService->groupRoomSelectionsByType($bookingCreateDto->getSelectedRooms(), $availableRooms);
return $this->render('booking/create_step_2.html.twig', [
'bookingCreateDto' => $bookingCreateDto,
'participantsCount' => $participantsCount,
'assignmentCounts' => $roomAssignmentCounts,
'form' => $form->createView(),
'groupedSelectedRooms' => $groupedSelectedRooms,
]);
}
@@ -93,6 +96,8 @@ class CreateStep2Controller extends AbstractController
$this->bookingService->saveBookingCreateDto($request, $bookingCreateDto);
$roomAssignmentCounts = $this->bookingService->getRoomAssignmentCounts($bookingCreateDto);
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedSelectedRooms = $this->bookingService->groupRoomSelectionsByType($bookingCreateDto->getSelectedRooms(), $availableRooms);
// The DTO is now updated with the latest selection.
// We can now render the blocks with the fresh data.
@@ -104,6 +109,7 @@ class CreateStep2Controller extends AbstractController
'bookingCreateDto' => $bookingCreateDto,
'participantsCount' => $participantsCount,
'assignmentCounts' => $roomAssignmentCounts,
'groupedSelectedRooms' => $groupedSelectedRooms,
]
);
}