@@ -53,9 +53,10 @@ class RsvReservationService {
|
||||
|
||||
try {
|
||||
$reservation_id = $this->repo->insert($reservation->to_array());
|
||||
$reservation->id = $reservation_id;
|
||||
|
||||
foreach ($reservation->timetable_reservations as $timetable_reservation) {
|
||||
$timetable_reservation_service->create($reservation_id, $timetable_reservation);
|
||||
$timetable_reservation->id = $timetable_reservation_service->create($reservation_id, $timetable_reservation);
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
@@ -67,7 +68,19 @@ class RsvReservationService {
|
||||
|
||||
// Only now that the rows are durably committed do we let listeners
|
||||
// (maintainer emails, calendar sync) observe the new reservation.
|
||||
$timetable_reservation_service->flush_deferred_events();
|
||||
foreach($reservation->timetable_reservations as $timetable_reservation) {
|
||||
if($timetable_reservation->is_confirmed === null) {
|
||||
$maintainer_email = (new RsvTimetableRepository())->get_maintainer_email($timetable_reservation->timetable_id);
|
||||
RsvEventDispatcher::dispatch(new RsvTimetableReservationPendingEvent(
|
||||
$reservation_id,
|
||||
$timetable_reservation,
|
||||
$timetable_reservation_service->get_confirmation_code($timetable_reservation->id),
|
||||
$maintainer_email
|
||||
));
|
||||
}
|
||||
|
||||
RsvEventDispatcher::dispatch(new RsvTimetableReservationCreatedEvent($timetable_reservation, $reservation));
|
||||
}
|
||||
|
||||
$this->confirmation_state_changed($reservation_id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user