diff --git a/src/main/java/com/sasiedzi/event/service/EventService.java b/src/main/java/com/sasiedzi/event/service/EventService.java index ba79ddc..ac93bc0 100644 --- a/src/main/java/com/sasiedzi/event/service/EventService.java +++ b/src/main/java/com/sasiedzi/event/service/EventService.java @@ -192,31 +192,38 @@ public class EventService { entity = userAccountRepository.save(entity); accountsByAccountName.put(Account.Skarbiec.name(), entity); } - List accountsToCharge = new ArrayList<>(); - event + List itemsToCharge = new ArrayList<>(); + List registrationsToCharge = event .getRegistrations() - .forEach(registration -> { - String login = registration.getUser().getLogin(); - UserAccount userAccount = accountsByLogin.get(login); - if (userAccount == null) { - userAccount = createNewAccountForLogin(login); - accountsByLogin.put(login, userAccount); - } - accountsToCharge.add(userAccount); - }); + .stream() + .filter(registration -> !Boolean.FALSE.equals(registration.getActive())) + .sorted(Comparator.comparing(Registration::getDateTime)) + .limit(event.getPlayersLimit() == null ? 10000 : event.getPlayersLimit()) // Ograniczamy do pierwszych n elementów + .toList(); + + registrationsToCharge.forEach(registration -> { + String login = registration.getUser().getLogin(); + UserAccount userAccount = accountsByLogin.get(login); + if (userAccount == null) { + userAccount = createNewAccountForLogin(login); + accountsByLogin.put(login, userAccount); + } + TransactionItem transactionForPlayer = new TransactionItem(); + transactionForPlayer.setRegistration(registration); + transactionForPlayer.setUserAccount(userAccount); + itemsToCharge.add(transactionForPlayer); + }); TransactionItem fieldServiceItem = new TransactionItem(); fieldServiceItem.setEvent(event); fieldServiceItem.setAmount(event.getCost()); fieldServiceItem.setUserAccount(accountsByAccountName.get(Account.Boisko.name())); fieldServiceItem.setTransaction(transaction); transaction.getTransactionItems().add(fieldServiceItem); - accountsToCharge.forEach(userAccount -> { - TransactionItem playerCharge = new TransactionItem(); - playerCharge.setEvent(event); - playerCharge.setAmount(event.getCost().divide(BigDecimal.valueOf(-accountsToCharge.size()), 2, RoundingMode.HALF_UP)); - playerCharge.setUserAccount(userAccount); - playerCharge.setTransaction(transaction); - transaction.getTransactionItems().add(playerCharge); + itemsToCharge.forEach(transactionForPlayer -> { + transactionForPlayer.setEvent(event); + transactionForPlayer.setAmount(event.getCost().divide(BigDecimal.valueOf(-itemsToCharge.size()), 2, RoundingMode.HALF_UP)); + transactionForPlayer.setTransaction(transaction); + transaction.getTransactionItems().add(transactionForPlayer); }); BigDecimal vaultValue = transaction .getTransactionItems() diff --git a/src/main/java/com/sasiedzi/event/web/rest/RegistrationResource.java b/src/main/java/com/sasiedzi/event/web/rest/RegistrationResource.java index 7044f6e..3b18cc9 100644 --- a/src/main/java/com/sasiedzi/event/web/rest/RegistrationResource.java +++ b/src/main/java/com/sasiedzi/event/web/rest/RegistrationResource.java @@ -237,7 +237,8 @@ public class RegistrationResource { throw new AccessDeniedException("Registration is closed for this event"); } LOG.debug("REST request to delete Registration : {}", id); - registrationRepository.deleteById(id); + registration.setActive(Boolean.FALSE); + registrationRepository.save(registration); return ResponseEntity.noContent() .headers(HeaderUtil.createEntityDeletionAlert(applicationName, false, ENTITY_NAME, id.toString())) .build(); diff --git a/src/main/webapp/app/entities/event/event-details.vue b/src/main/webapp/app/entities/event/event-details.vue index 6ea3150..55c2957 100644 --- a/src/main/webapp/app/entities/event/event-details.vue +++ b/src/main/webapp/app/entities/event/event-details.vue @@ -66,15 +66,20 @@ {{ getRegistrationIndex(index) }} - {{ formatDateShort(registration.dateTime) || '' }} - {{ registration.playerName }} + {{ registration.dateTime }} + + + {{ registration.playerName }} diff --git a/src/main/webapp/app/entities/registration/registration-update.component.ts b/src/main/webapp/app/entities/registration/registration-update.component.ts index 84be65b..75f604d 100644 --- a/src/main/webapp/app/entities/registration/registration-update.component.ts +++ b/src/main/webapp/app/entities/registration/registration-update.component.ts @@ -108,6 +108,7 @@ export default defineComponent({ registration.value = res; // Assuming you can retrieve event details here eventName.value = '' + registration.value.event?.name; // Set this from the event details + currentUserFullName.value = '' + registration.value.user?.firstName + ' ' + registration.value.user?.lastName; } catch (error) { alertService.showHttpError(error.response); } diff --git a/src/main/webapp/content/css/loading.css b/src/main/webapp/content/css/loading.css index fb60f8a..808051a 100644 --- a/src/main/webapp/content/css/loading.css +++ b/src/main/webapp/content/css/loading.css @@ -168,3 +168,8 @@ th.rotate > div { top: 126px; margin: auto; } + +.strikethrough { + text-decoration: line-through; + color: lightgray; +}