Fix transaction cannot be in future check
This commit is contained in:
committed by
Arnold Gálovics
parent
6a0928eb95
commit
a73c593eb8
+1
-41
@@ -22,16 +22,10 @@ import java.time.LocalDate;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeFormatterBuilder;
|
import java.time.format.DateTimeFormatterBuilder;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.TimeZone;
|
|
||||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
|
||||||
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
|
import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
|
||||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
|
||||||
|
|
||||||
public final class DateUtils {
|
public final class DateUtils {
|
||||||
|
|
||||||
@@ -55,15 +49,6 @@ public final class DateUtils {
|
|||||||
return ZoneId.of(tenant.getTimezoneId());
|
return ZoneId.of(tenant.getTimezoneId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TimeZone getTimeZoneOfTenant() {
|
|
||||||
final FineractPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
|
|
||||||
TimeZone zone = null;
|
|
||||||
if (tenant != null) {
|
|
||||||
zone = TimeZone.getTimeZone(tenant.getTimezoneId());
|
|
||||||
}
|
|
||||||
return zone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static LocalDate getLocalDateOfTenant() {
|
public static LocalDate getLocalDateOfTenant() {
|
||||||
final ZoneId zone = getDateTimeZoneOfTenant();
|
final ZoneId zone = getDateTimeZoneOfTenant();
|
||||||
return LocalDate.now(zone);
|
return LocalDate.now(zone);
|
||||||
@@ -83,33 +68,8 @@ public final class DateUtils {
|
|||||||
return LocalDateTime.now(ZoneId.systemDefault()).truncatedTo(ChronoUnit.SECONDS);
|
return LocalDateTime.now(ZoneId.systemDefault()).truncatedTo(ChronoUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LocalDate parseLocalDate(final String stringDate, final String pattern, final ZoneId zoneId) {
|
|
||||||
try {
|
|
||||||
DateTimeFormatter dateStringFormat;
|
|
||||||
if (zoneId != null) {
|
|
||||||
dateStringFormat = DateTimeFormatter.ofPattern(pattern).withZone(zoneId);
|
|
||||||
} else {
|
|
||||||
dateStringFormat = DateTimeFormatter.ofPattern(pattern);
|
|
||||||
}
|
|
||||||
final ZonedDateTime dateTime = ZonedDateTime.parse(stringDate, dateStringFormat);
|
|
||||||
return dateTime.toLocalDate();
|
|
||||||
} catch (final IllegalArgumentException e) {
|
|
||||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
|
||||||
final ApiParameterError error = ApiParameterError.parameterError("validation.msg.invalid.date.pattern",
|
|
||||||
"The parameter `date` (value: " + stringDate + ") is invalid w.r.t. pattern `" + pattern + "`", "date", stringDate,
|
|
||||||
pattern);
|
|
||||||
dataValidationErrors.add(error);
|
|
||||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.",
|
|
||||||
dataValidationErrors, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static LocalDate parseLocalDate(final String stringDate, final String pattern) {
|
|
||||||
return parseLocalDate(stringDate, pattern, getDateTimeZoneOfTenant());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isDateInTheFuture(final LocalDate localDate) {
|
public static boolean isDateInTheFuture(final LocalDate localDate) {
|
||||||
return localDate.isAfter(getLocalDateOfTenant());
|
return localDate.isAfter(getBusinessLocalDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LocalDate getBusinessLocalDate() {
|
public static LocalDate getBusinessLocalDate() {
|
||||||
|
|||||||
Reference in New Issue
Block a user