From aeefa066f7ff886c6a3b0d7b134f564c429b17c5 Mon Sep 17 00:00:00 2001 From: Celestino Bellone Date: Mon, 11 Dec 2017 17:13:02 +0100 Subject: [PATCH] fix #369. Do not modify existing tickets if category is (or was) dynamic (cherry picked from commit 6398e10) --- src/main/java/alfio/manager/EventManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/alfio/manager/EventManager.java b/src/main/java/alfio/manager/EventManager.java index 02b9423cc6..b23d65c0f3 100644 --- a/src/main/java/alfio/manager/EventManager.java +++ b/src/main/java/alfio/manager/EventManager.java @@ -628,14 +628,14 @@ private void handleTicketAllocationStrategyChange(Event event, TicketCategory or } void handlePriceChange(Event event, TicketCategory original, TicketCategory updated) { - if(original.getSrcPriceCts() == updated.getSrcPriceCts()) { + if(original.getSrcPriceCts() == updated.getSrcPriceCts() || !original.isBounded()) { return; } final List ids = ticketRepository.selectTicketInCategoryForUpdate(event.getId(), updated.getId(), updated.getMaxTickets(), singletonList(TicketStatus.FREE.name())); if(ids.size() < updated.getMaxTickets()) { throw new IllegalStateException("Tickets have already been sold (or are in the process of being sold) for this category. Therefore price update is not allowed."); } - //there's no need to calculate final price, vat etc, since these values will be update at the time of reservation + //there's no need to calculate final price, vat etc, since these values will be updated at the time of reservation ticketRepository.updateTicketPrice(updated.getId(), event.getId(), updated.getSrcPriceCts(), 0, 0, 0); }