@@ -279,7 +279,7 @@ public String validateToOverview(@PathVariable("eventName") String eventName, @P
279
279
Model model , HttpServletRequest request , Locale locale , RedirectAttributes redirectAttributes ) {
280
280
281
281
Optional <Event > eventOptional = eventRepository .findOptionalByShortName (eventName );
282
- Optional <String > redirectForFailure = checkReservation (paymentForm , eventName , reservationId , request , eventOptional );
282
+ Optional <String > redirectForFailure = checkReservation (paymentForm . isBackFromOverview (), paymentForm . shouldCancelReservation () , eventName , reservationId , request , eventOptional );
283
283
if (redirectForFailure .isPresent ()) { //ugly
284
284
return redirectForFailure .get ();
285
285
}
@@ -509,7 +509,7 @@ public String handleReservation(@PathVariable("eventName") String eventName,
509
509
Model model , HttpServletRequest request , Locale locale , RedirectAttributes redirectAttributes ) {
510
510
511
511
Optional <Event > eventOptional = eventRepository .findOptionalByShortName (eventName );
512
- Optional <String > redirectForFailure = checkReservation (paymentForm , eventName , reservationId , request , eventOptional );
512
+ Optional <String > redirectForFailure = checkReservation (paymentForm . isBackFromOverview (), paymentForm . shouldCancelReservation () , eventName , reservationId , request , eventOptional );
513
513
if (redirectForFailure .isPresent ()) { //ugly
514
514
return redirectForFailure .get ();
515
515
}
@@ -697,18 +697,24 @@ private boolean isExpressCheckoutEnabled(Event event, OrderSummary orderSummary)
697
697
return orderSummary .getTicketAmount () == 1 && ticketFieldRepository .countRequiredAdditionalFieldsForEvent (event .getId ()) == 0 ;
698
698
}
699
699
700
- private Optional <String > checkReservation (PaymentForm paymentForm , String eventName , String reservationId , HttpServletRequest request , Optional <Event > eventOptional ) {
700
+ private Optional <String > checkReservation (boolean backFromOverview , boolean cancelReservation , String eventName , String reservationId , HttpServletRequest request , Optional <Event > eventOptional ) {
701
701
702
702
if (!eventOptional .isPresent ()) {
703
703
return Optional .of ("redirect:/" );
704
704
}
705
705
706
706
Optional <TicketReservation > ticketReservation = ticketReservationManager .findById (reservationId );
707
- if (!ticketReservation .isPresent ()) {
707
+ if (!ticketReservation .isPresent () || ticketReservation . get (). getStatus () != TicketReservationStatus . PENDING ) {
708
708
return Optional .of (redirectReservation (ticketReservation , eventName , reservationId ));
709
709
}
710
- if (paymentForm .shouldCancelReservation ()) {
711
- ticketReservationManager .cancelPendingReservation (reservationId , false );
710
+
711
+ if (backFromOverview ) {
712
+ ticketReservationRepository .updateValidationStatus (reservationId , false );
713
+ return Optional .of ("redirect:/event/" + eventName + "/reservation/" + reservationId );
714
+ }
715
+
716
+ if (cancelReservation ) {
717
+ ticketReservationManager .cancelPendingReservation (reservationId , false ); //FIXME
712
718
SessionUtil .removeSpecialPriceData (request );
713
719
return Optional .of ("redirect:/event/" + eventName + "/" );
714
720
}
0 commit comments