Skip to content

Commit

Permalink
Merge 4de3fdc into d789e0c
Browse files Browse the repository at this point in the history
  • Loading branch information
syjer committed Aug 3, 2019
2 parents d789e0c + 4de3fdc commit 02db9eb
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ private void checkAndApplyVATRules(String eventName, String reservationId, Conta
String country = contactAndTicketsForm.getVatCountryCode();

// validate VAT presence if EU mode is enabled
if(vatChecker.isReverseChargeEnabledFor(event) && isEUCountry(country)) {
if (vatChecker.isReverseChargeEnabledFor(event) && (country == null || isEUCountry(country))) {
ValidationUtils.rejectIfEmptyOrWhitespace(bindingResult, "vatNr", "error.emptyField");
}

Expand All @@ -444,7 +444,7 @@ private void checkAndApplyVATRules(String eventName, String reservationId, Conta

vatDetail.ifPresent(vatValidation -> {
if (!vatValidation.isValid()) {
bindingResult.rejectValue("vatNr", "error.vat");
bindingResult.rejectValue("vatNr", "error.STEP_2_INVALID_VAT");
} else {
var reservation = ticketReservationManager.findById(reservationId).orElseThrow();
var currencyCode = reservation.getCurrencyCode();
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/alfio/manager/EuVatChecker.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,7 @@
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.BiFunction;
import java.util.function.BooleanSupplier;
Expand Down Expand Up @@ -147,7 +144,9 @@ static String organizerCountry(ConfigurationManager configurationManager, EventA
}

private static boolean reverseChargeEnabled(ConfigurationManager configurationManager, EventAndOrganizationId eventAndOrganizationId) {
return configurationManager.getFor(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE, ConfigurationLevel.event(eventAndOrganizationId)).getValueAsBooleanOrDefault(false);
var res = configurationManager.getFor(Set.of(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE, ConfigurationKeys.COUNTRY_OF_BUSINESS), ConfigurationLevel.event(eventAndOrganizationId));
return res.get(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE).getValueAsBooleanOrDefault(false) &&
res.get(ConfigurationKeys.COUNTRY_OF_BUSINESS).isPresent();
}

static boolean validationEnabled(ConfigurationManager configurationManager, EventAndOrganizationId eventAndOrganizationId) {
Expand Down
5 changes: 5 additions & 0 deletions src/test/java/alfio/manager/EuVatCheckerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
import org.junit.Before;
import org.junit.Test;

import java.util.Map;
import java.util.Optional;
import java.util.Set;

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
Expand All @@ -51,6 +53,9 @@ public void init() {
.thenReturn(buildConfReturn(ConfigurationKeys.EU_COUNTRIES_LIST, "IE"));
when(configurationManager.getFor(eq(ConfigurationKeys.COUNTRY_OF_BUSINESS), any(ConfigurationLevel.class)))
.thenReturn(buildConfReturn(ConfigurationKeys.COUNTRY_OF_BUSINESS, "IT"));
when(configurationManager.getFor(eq(Set.of(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE, ConfigurationKeys.COUNTRY_OF_BUSINESS)), any()))
.thenReturn(Map.of(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE, buildConfReturn(ConfigurationKeys.ENABLE_EU_VAT_DIRECTIVE, "true"),
ConfigurationKeys.COUNTRY_OF_BUSINESS, buildConfReturn(ConfigurationKeys.COUNTRY_OF_BUSINESS, "IT")));
}

private static ConfigurationManager.MaybeConfiguration buildConfReturn(ConfigurationKeys k, String value) {
Expand Down

0 comments on commit 02db9eb

Please sign in to comment.