From a08598fd00d14f0544a5ec7e44ef2b1e5f0cff1a Mon Sep 17 00:00:00 2001 From: Sylvain Jermini Date: Fri, 25 May 2018 18:17:14 +0200 Subject: [PATCH] implement: #447, add the possibility to configure the auto-removal of expired offline-payment (#452) * implement: #447, add the possibility to configure the auto-removal of expired offline-payment * update #447 -> change key name * update #447 -> fix condition --- .../alfio/manager/TicketReservationManager.java | 8 +++++++- .../java/alfio/model/system/ConfigurationKeys.java | 1 + .../admin/partials/configuration/event.html | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/alfio/manager/TicketReservationManager.java b/src/main/java/alfio/manager/TicketReservationManager.java index 46e7dece72..84bc4ec8a6 100644 --- a/src/main/java/alfio/manager/TicketReservationManager.java +++ b/src/main/java/alfio/manager/TicketReservationManager.java @@ -724,7 +724,13 @@ void cleanupExpiredOfflineReservations(Date expirationDate) { private void cleanupOfflinePayment(String reservationId) { try { requiresNewTransactionTemplate.execute((tc) -> { - deleteOfflinePayment(eventRepository.findByReservationId(reservationId), reservationId, true); + Event event = eventRepository.findByReservationId(reservationId); + boolean enabled = configurationManager.getBooleanConfigValue(Configuration.from(event.getOrganizationId(), event.getId(), AUTOMATIC_REMOVAL_EXPIRED_OFFLINE_PAYMENT), true); + if(enabled) { + deleteOfflinePayment(event, reservationId, true); + } else { + log.debug("Will not cleanup reservation with id {} because the automatic removal has been disabled", reservationId); + } return null; }); } catch (Exception e) { diff --git a/src/main/java/alfio/model/system/ConfigurationKeys.java b/src/main/java/alfio/model/system/ConfigurationKeys.java index 87d022d414..29a19101c0 100644 --- a/src/main/java/alfio/model/system/ConfigurationKeys.java +++ b/src/main/java/alfio/model/system/ConfigurationKeys.java @@ -89,6 +89,7 @@ public enum ConfigurationKeys { OFFLINE_REMINDER_HOURS("How many hours before expiration should be sent a reminder e-mail for offline payments?", false, SettingCategory.PAYMENT_OFFLINE, ComponentType.TEXT, false, EnumSet.of(SYSTEM, ORGANIZATION, EVENT), true), BANK_ACCOUNT_NR("Bank Account number", false, SettingCategory.PAYMENT_OFFLINE, ComponentType.TEXT, false, EnumSet.of(SYSTEM, ORGANIZATION, EVENT), false), BANK_ACCOUNT_OWNER("Bank Account owner", false, SettingCategory.PAYMENT_OFFLINE, ComponentType.TEXTAREA, false, EnumSet.of(SYSTEM, ORGANIZATION, EVENT), true), + AUTOMATIC_REMOVAL_EXPIRED_OFFLINE_PAYMENT("Cancel Reservation automatically when payment is overdue", false, SettingCategory.PAYMENT_OFFLINE, ComponentType.BOOLEAN, false, EnumSet.of(SYSTEM, ORGANIZATION, EVENT), true), PARTIAL_RESERVATION_ID_LENGTH("Partial reservationID length", false, SettingCategory.PAYMENT_OFFLINE, ComponentType.TEXT, false, EnumSet.of(SYSTEM), true), // diff --git a/src/main/webapp/resources/angular-templates/admin/partials/configuration/event.html b/src/main/webapp/resources/angular-templates/admin/partials/configuration/event.html index 93e183b241..76247d997c 100644 --- a/src/main/webapp/resources/angular-templates/admin/partials/configuration/event.html +++ b/src/main/webapp/resources/angular-templates/admin/partials/configuration/event.html @@ -99,6 +99,20 @@

Payment

+
+
+
Offline payment configuration
+
+
+
+

In order to be able to accept offline payments, you must fill your Bank Account data.

+
+
+ +
+
+
+