FINERACT-826 Migrate to java.time from Joda API
This commit is contained in:
committed by
Awasum Yannick
parent
5f42112278
commit
43ef6e1983
+1
-1
@@ -24,6 +24,7 @@ import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConsta
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -40,7 +41,6 @@ import org.apache.fineract.infrastructure.core.serialization.FromApiJsonDeserial
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||
import org.apache.fineract.portfolio.loanaccount.guarantor.command.GuarantorCommand;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConsta
|
||||
import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants.PERIODIC_ACCRUAL_ACCOUNTING_RESOURCE_NAME;
|
||||
import static org.apache.fineract.accounting.accrual.api.AccrualAccountingConstants.accrueTillParamName;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.accrual.serialization.AccrualAccountingDataValidator;
|
||||
@@ -32,7 +33,6 @@ import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.MultiException;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.apache.fineract.portfolio.loanaccount.service.LoanAccrualPlatformService;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
package org.apache.fineract.accounting.closure.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
|
||||
final class GLClosuresApiResourceSwagger {
|
||||
|
||||
|
||||
+1
-1
@@ -18,13 +18,13 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.closure.command;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.closure.api.GLClosureJsonInputParams;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable command for adding an accounting closure
|
||||
|
||||
+1
-1
@@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.closure.data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import org.apache.fineract.organisation.office.data.OfficeData;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable object representing a General Ledger Account
|
||||
|
||||
+1
-1
@@ -18,8 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.closure.exception;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* A {@link RuntimeException} thrown when a GL Closure for a given date and Office combination is already present
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.accounting.closure.serialization;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -31,7 +32,6 @@ import org.apache.fineract.infrastructure.core.serialization.AbstractFromApiJson
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromApiJsonDeserializer;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.portfolio.loanaccount.guarantor.command.GuarantorCommand;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+1
-1
@@ -20,13 +20,13 @@ package org.apache.fineract.accounting.closure.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.closure.data.GLClosureData;
|
||||
import org.apache.fineract.accounting.closure.exception.GLClosureNotFoundException;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
+4
-2
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.closure.service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import org.apache.fineract.accounting.closure.api.GLClosureJsonInputParams;
|
||||
@@ -36,7 +38,6 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuild
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
||||
import org.apache.fineract.organisation.office.domain.Office;
|
||||
import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -149,7 +150,8 @@ public class GLClosureWritePlatformServiceJpaRepositoryImpl implements GLClosure
|
||||
private void handleGLClosureIntegrityIssues(final JsonCommand command, final Throwable realCause, NonTransientDataAccessException dve) {
|
||||
if (realCause.getMessage().contains("office_id_closing_date")) {
|
||||
throw new GLClosureDuplicateException(command.longValueOfParameterNamed(GLClosureJsonInputParams.OFFICE_ID.getValue()),
|
||||
new LocalDate(command.dateValueOfParameterNamed(GLClosureJsonInputParams.CLOSING_DATE.getValue())));
|
||||
LocalDate.ofInstant(command.dateValueOfParameterNamed(GLClosureJsonInputParams.CLOSING_DATE.getValue()).toInstant(),
|
||||
ZoneId.systemDefault()));
|
||||
}
|
||||
|
||||
LOG.error("Error occured.", dve);
|
||||
|
||||
+3
-2
@@ -18,11 +18,12 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.journalentry.api;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.JsonParserHelper;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Class for parsing dates sent as query parameters
|
||||
@@ -40,6 +41,6 @@ public class DateParam {
|
||||
public Date getDate(final String parameterName, final String dateFormat, final String localeAsString) {
|
||||
final Locale locale = JsonParserHelper.localeFromString(localeAsString);
|
||||
final LocalDate localDate = JsonParserHelper.convertFrom(this.dateAsString, parameterName, dateFormat, locale);
|
||||
return localDate.toDate();
|
||||
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,13 +19,13 @@
|
||||
package org.apache.fineract.accounting.journalentry.command;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.journalentry.api.JournalEntryJsonInputParams;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable command for adding an accounting closure
|
||||
|
||||
+1
-1
@@ -19,11 +19,11 @@
|
||||
package org.apache.fineract.accounting.journalentry.data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.glaccount.data.GLAccountData;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.organisation.monetary.data.CurrencyData;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable object representing a General Ledger Account
|
||||
|
||||
+1
-1
@@ -18,9 +18,9 @@
|
||||
*/
|
||||
package org.apache.fineract.accounting.journalentry.data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.glaccount.data.GLAccountData;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public final class OfficeOpeningBalancesData {
|
||||
|
||||
|
||||
+1
-1
@@ -24,6 +24,7 @@ import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
@@ -36,7 +37,6 @@ import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.AbstractFromApiJsonDeserializer;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromApiJsonDeserializer;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+7
-5
@@ -19,6 +19,8 @@
|
||||
package org.apache.fineract.accounting.journalentry.service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -72,7 +74,6 @@ import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionEnumD
|
||||
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
|
||||
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionRepository;
|
||||
import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountTransactionEnumData;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -131,7 +132,7 @@ public class AccountingProcessorHelper {
|
||||
for (final Map<String, Object> map : newTransactionsMap) {
|
||||
final Long transactionOfficeId = (Long) map.get("officeId");
|
||||
final String transactionId = ((Long) map.get("id")).toString();
|
||||
final Date transactionDate = ((LocalDate) map.get("date")).toDate();
|
||||
final Date transactionDate = Date.from(((LocalDate) map.get("date")).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
final LoanTransactionEnumData transactionType = (LoanTransactionEnumData) map.get("type");
|
||||
final BigDecimal amount = (BigDecimal) map.get("amount");
|
||||
final BigDecimal principal = (BigDecimal) map.get("principalPortion");
|
||||
@@ -198,7 +199,7 @@ public class AccountingProcessorHelper {
|
||||
for (final Map<String, Object> map : newTransactionsMap) {
|
||||
final Long transactionOfficeId = (Long) map.get("officeId");
|
||||
final String transactionId = ((Long) map.get("id")).toString();
|
||||
final Date transactionDate = ((LocalDate) map.get("date")).toDate();
|
||||
final Date transactionDate = Date.from(((LocalDate) map.get("date")).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
final SavingsAccountTransactionEnumData transactionType = (SavingsAccountTransactionEnumData) map.get("type");
|
||||
final BigDecimal amount = (BigDecimal) map.get("amount");
|
||||
final boolean reversed = (Boolean) map.get("reversed");
|
||||
@@ -267,7 +268,7 @@ public class AccountingProcessorHelper {
|
||||
for (final Map<String, Object> map : newTransactionsMap) {
|
||||
final Long transactionOfficeId = (Long) map.get("officeId");
|
||||
final String transactionId = ((Long) map.get("id")).toString();
|
||||
final Date transactionDate = ((LocalDate) map.get("date")).toDate();
|
||||
final Date transactionDate = Date.from(((LocalDate) map.get("date")).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
final ShareAccountTransactionEnumData transactionType = (ShareAccountTransactionEnumData) map.get("type");
|
||||
final ShareAccountTransactionEnumData transactionStatus = (ShareAccountTransactionEnumData) map.get("status");
|
||||
final BigDecimal amount = (BigDecimal) map.get("amount");
|
||||
@@ -303,7 +304,8 @@ public class AccountingProcessorHelper {
|
||||
final Long transactionOfficeId = (Long) accountingBridgeData.get("officeId");
|
||||
final Long clientId = (Long) accountingBridgeData.get("clientId");
|
||||
final Long transactionId = (Long) accountingBridgeData.get("id");
|
||||
final Date transactionDate = ((LocalDate) accountingBridgeData.get("date")).toDate();
|
||||
final Date transactionDate = Date
|
||||
.from(((LocalDate) accountingBridgeData.get("date")).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
final EnumOptionData transactionType = (EnumOptionData) accountingBridgeData.get("type");
|
||||
final BigDecimal amount = (BigDecimal) accountingBridgeData.get("amount");
|
||||
final boolean reversed = (Boolean) accountingBridgeData.get("reversed");
|
||||
|
||||
+1
-1
@@ -23,6 +23,7 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
@@ -60,7 +61,6 @@ import org.apache.fineract.portfolio.paymentdetail.data.PaymentDetailData;
|
||||
import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
|
||||
import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionEnumData;
|
||||
import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
+3
-2
@@ -19,6 +19,8 @@
|
||||
package org.apache.fineract.accounting.journalentry.service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
@@ -76,7 +78,6 @@ import org.apache.fineract.portfolio.client.domain.ClientTransaction;
|
||||
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
|
||||
import org.apache.fineract.portfolio.paymentdetail.service.PaymentDetailWritePlatformService;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -592,7 +593,7 @@ public class JournalEntryWritePlatformServiceJpaRepositoryImpl implements Journa
|
||||
private void validateBusinessRulesForJournalEntries(final JournalEntryCommand command) {
|
||||
/** check if date of Journal entry is valid ***/
|
||||
final LocalDate entryLocalDate = command.getTransactionDate();
|
||||
final Date transactionDate = entryLocalDate.toDateTimeAtStartOfDay().toDate();
|
||||
final Date transactionDate = Date.from(entryLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
// shouldn't be in the future
|
||||
final Date todaysDate = new Date();
|
||||
if (transactionDate.after(todaysDate)) {
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.accounting.provisioning.serialization;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -36,7 +37,6 @@ import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidati
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||
import org.apache.fineract.organisation.provisioning.exception.ProvisioningCriteriaCannotBeCreatedException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+4
-3
@@ -19,6 +19,8 @@
|
||||
package org.apache.fineract.accounting.provisioning.service;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -58,7 +60,6 @@ import org.apache.fineract.organisation.provisioning.service.ProvisioningCriteri
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
|
||||
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -150,13 +151,13 @@ public class ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements
|
||||
|
||||
private Date parseDate(JsonCommand command) {
|
||||
LocalDate localDate = this.fromApiJsonHelper.extractLocalDateNamed("date", command.parsedJson());
|
||||
return localDate.toDate();
|
||||
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
@Override
|
||||
@CronTarget(jobName = JobName.GENERATE_LOANLOSS_PROVISIONING)
|
||||
public void generateLoanLossProvisioningAmount() {
|
||||
Date currentDate = DateUtils.getLocalDateOfTenant().toDate();
|
||||
Date currentDate = Date.from(DateUtils.getLocalDateOfTenant().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
boolean addJournalEntries = true;
|
||||
try {
|
||||
Collection<ProvisioningCriteriaData> criteriaCollection = this.provisioningCriteriaReadPlatformService
|
||||
|
||||
+10
-10
@@ -18,12 +18,12 @@
|
||||
*/
|
||||
package org.apache.fineract.adhocquery.data;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.fineract.adhocquery.domain.ReportRunFrequency;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
/**
|
||||
* Immutable data object represent note or case information AdHocData
|
||||
@@ -46,13 +46,13 @@ public class AdHocData {
|
||||
@SuppressWarnings("unused")
|
||||
private final boolean isActive;
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime createdOn;
|
||||
private final ZonedDateTime createdOn;
|
||||
@SuppressWarnings("unused")
|
||||
private final Long createdById;
|
||||
@SuppressWarnings("unused")
|
||||
private final Long updatedById;
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime updatedOn;
|
||||
private final ZonedDateTime updatedOn;
|
||||
@SuppressWarnings("unused")
|
||||
private final String createdBy;
|
||||
|
||||
@@ -62,12 +62,12 @@ public class AdHocData {
|
||||
|
||||
private final Long reportRunEvery;
|
||||
|
||||
private final DateTime lastRun;
|
||||
private final ZonedDateTime lastRun;
|
||||
|
||||
public AdHocData(final Long id, final String name, final String query, final String tableName, final String tableFields,
|
||||
final boolean isActive, final DateTime createdOn, final Long createdById, final Long updatedById, final DateTime updatedOn,
|
||||
final String createdBy, final String email, final List<EnumOptionData> reportRunFrequencies, final Long reportRunFrequency,
|
||||
final Long reportRunEvery, final DateTime lastRun) {
|
||||
final boolean isActive, final ZonedDateTime createdOn, final Long createdById, final Long updatedById,
|
||||
final ZonedDateTime updatedOn, final String createdBy, final String email, final List<EnumOptionData> reportRunFrequencies,
|
||||
final Long reportRunFrequency, final Long reportRunEvery, final ZonedDateTime lastRun) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.query = query;
|
||||
@@ -123,7 +123,7 @@ public class AdHocData {
|
||||
return this.isActive;
|
||||
}
|
||||
|
||||
public DateTime getCreatedOn() {
|
||||
public ZonedDateTime getCreatedOn() {
|
||||
return this.createdOn;
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ public class AdHocData {
|
||||
return this.updatedById;
|
||||
}
|
||||
|
||||
public DateTime getUpdatedOn() {
|
||||
public ZonedDateTime getUpdatedOn() {
|
||||
return this.updatedOn;
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ public class AdHocData {
|
||||
return this.reportRunEvery;
|
||||
}
|
||||
|
||||
public DateTime getLastRun() {
|
||||
public ZonedDateTime getLastRun() {
|
||||
return this.lastRun;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -20,12 +20,12 @@ package org.apache.fineract.adhocquery.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Collection;
|
||||
import org.apache.fineract.adhocquery.data.AdHocData;
|
||||
import org.apache.fineract.adhocquery.exception.AdHocNotFoundException;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.joda.time.DateTime;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -81,15 +81,15 @@ public class AdHocReadPlatformServiceImpl implements AdHocReadPlatformService {
|
||||
final String tableName = rs.getString("tableName");
|
||||
final String tableFields = rs.getString("tableField");
|
||||
final Boolean isActive = rs.getBoolean("isActive");
|
||||
final DateTime createdDate = JdbcSupport.getDateTime(rs, "createdDate");
|
||||
final ZonedDateTime createdDate = JdbcSupport.getDateTime(rs, "createdDate");
|
||||
final Long createdById = JdbcSupport.getLong(rs, "createdById");
|
||||
final Long updatedById = JdbcSupport.getLong(rs, "updatedById");
|
||||
final DateTime updatedOn = JdbcSupport.getDateTime(rs, "updatedOn");
|
||||
final ZonedDateTime updatedOn = JdbcSupport.getDateTime(rs, "updatedOn");
|
||||
final String createdByUsername = rs.getString("createdBy");
|
||||
final String email = rs.getString("email");
|
||||
final Long reportRunFrequency = JdbcSupport.getLong(rs, "report_run_frequency_code");
|
||||
final Long reportRunEvery = JdbcSupport.getLong(rs, "report_run_every");
|
||||
final DateTime lastRun = JdbcSupport.getDateTime(rs, "last_run");
|
||||
final ZonedDateTime lastRun = JdbcSupport.getDateTime(rs, "last_run");
|
||||
|
||||
return new AdHocData(id, name, query, tableName, tableFields, isActive, createdDate, createdById, updatedById, updatedOn,
|
||||
createdByUsername, email, AdHocData.template().getReportRunFrequencies(), reportRunFrequency, reportRunEvery, lastRun);
|
||||
|
||||
+10
-11
@@ -18,6 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.adhocquery.service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import org.apache.fineract.adhocquery.data.AdHocData;
|
||||
@@ -26,11 +30,6 @@ import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
|
||||
import org.apache.fineract.infrastructure.jobs.annotation.CronTarget;
|
||||
import org.apache.fineract.infrastructure.jobs.service.JobName;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Days;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.Months;
|
||||
import org.joda.time.Years;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -65,27 +64,27 @@ public class AdHocScheduledJobRunnerServiceImpl implements AdHocScheduledJobRunn
|
||||
if (adhoc.getReportRunFrequency() != null) {
|
||||
if (adhoc.getLastRun() != null) {
|
||||
LocalDate start = adhoc.getLastRun().toLocalDate();
|
||||
LocalDate end = new DateTime().toLocalDate();
|
||||
LocalDate end = ZonedDateTime.now(ZoneId.systemDefault()).toLocalDate();
|
||||
switch (ReportRunFrequency.fromId(adhoc.getReportRunFrequency())) {
|
||||
case DAILY:
|
||||
next = start.plusDays(1);
|
||||
run = Days.daysBetween(start, end).getDays() >= 1;
|
||||
run = Math.toIntExact(ChronoUnit.DAYS.between(start, end)) >= 1;
|
||||
break;
|
||||
case WEEKLY:
|
||||
next = start.plusDays(7);
|
||||
run = Days.daysBetween(start, end).getDays() >= 7;
|
||||
run = Math.toIntExact(ChronoUnit.DAYS.between(start, end)) >= 7;
|
||||
break;
|
||||
case MONTHLY:
|
||||
next = start.plusMonths(1);
|
||||
run = Months.monthsBetween(start, end).getMonths() >= 1;
|
||||
run = Math.toIntExact(ChronoUnit.MONTHS.between(start, end)) >= 1;
|
||||
break;
|
||||
case YEARLY:
|
||||
next = start.plusYears(1);
|
||||
run = Years.yearsBetween(start, end).getYears() >= 1;
|
||||
run = Math.toIntExact(ChronoUnit.YEARS.between(start, end)) >= 1;
|
||||
break;
|
||||
case CUSTOM:
|
||||
next = start.plusDays((int) (long) adhoc.getReportRunEvery());
|
||||
run = Days.daysBetween(start, end).getDays() >= adhoc.getReportRunEvery();
|
||||
run = Math.toIntExact(ChronoUnit.DAYS.between(start, end)) >= adhoc.getReportRunEvery();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
|
||||
+3
-3
@@ -19,11 +19,11 @@
|
||||
package org.apache.fineract.commands.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.data.ProcessingResultLookup;
|
||||
import org.apache.fineract.useradministration.data.AppUserData;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
/**
|
||||
* Created by sanyam on 27/7/17.
|
||||
@@ -47,9 +47,9 @@ final class MakercheckersApiResourceSwagger {
|
||||
public Long resourceId;
|
||||
public Long subresourceId;
|
||||
public String maker;
|
||||
public DateTime madeOnDate;
|
||||
public ZonedDateTime madeOnDate;
|
||||
public String checker;
|
||||
public DateTime checkedOnDate;
|
||||
public ZonedDateTime checkedOnDate;
|
||||
public String processingResult;
|
||||
public String commandAsJson;
|
||||
public String officeName;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.commands.data;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
/**
|
||||
* Immutable data object representing client data.
|
||||
@@ -37,11 +37,11 @@ public final class AuditData {
|
||||
@SuppressWarnings("unused")
|
||||
private final String maker;
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime madeOnDate;
|
||||
private final ZonedDateTime madeOnDate;
|
||||
@SuppressWarnings("unused")
|
||||
private final String checker;
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime checkedOnDate;
|
||||
private final ZonedDateTime checkedOnDate;
|
||||
@SuppressWarnings("unused")
|
||||
private final String processingResult;
|
||||
private String commandAsJson;
|
||||
@@ -65,7 +65,7 @@ public final class AuditData {
|
||||
private final String url;
|
||||
|
||||
public AuditData(final Long id, final String actionName, final String entityName, final Long resourceId, final Long subresourceId,
|
||||
final String maker, final DateTime madeOnDate, final String checker, final DateTime checkedOnDate,
|
||||
final String maker, final ZonedDateTime madeOnDate, final String checker, final ZonedDateTime checkedOnDate,
|
||||
final String processingResult, final String commandAsJson, final String officeName, final String groupLevelName,
|
||||
final String groupName, final String clientName, final String loanAccountNo, final String savingsAccountNo, final Long clientId,
|
||||
final Long loanId, final String url) {
|
||||
|
||||
+9
-8
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.commands.domain;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@@ -30,7 +32,6 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
@Entity
|
||||
@Table(name = "m_portfolio_command_source")
|
||||
@@ -102,7 +103,7 @@ public class CommandSource extends AbstractPersistableCustom {
|
||||
|
||||
public static CommandSource fullEntryFrom(final CommandWrapper wrapper, final JsonCommand command, final AppUser maker) {
|
||||
return new CommandSource(wrapper.actionName(), wrapper.entityName(), wrapper.getHref(), command.entityId(), command.subentityId(),
|
||||
command.json(), maker, DateTime.now());
|
||||
command.json(), maker, ZonedDateTime.now(ZoneId.systemDefault()));
|
||||
}
|
||||
|
||||
protected CommandSource() {
|
||||
@@ -110,7 +111,7 @@ public class CommandSource extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
private CommandSource(final String actionName, final String entityName, final String href, final Long resourceId,
|
||||
final Long subresourceId, final String commandSerializedAsJson, final AppUser maker, final DateTime madeOnDateTime) {
|
||||
final Long subresourceId, final String commandSerializedAsJson, final AppUser maker, final ZonedDateTime madeOnDateTime) {
|
||||
this.actionName = actionName;
|
||||
this.entityName = entityName;
|
||||
this.resourceGetUrl = href;
|
||||
@@ -118,7 +119,7 @@ public class CommandSource extends AbstractPersistableCustom {
|
||||
this.subresourceId = subresourceId;
|
||||
this.commandAsJson = commandSerializedAsJson;
|
||||
this.maker = maker;
|
||||
this.madeOnDate = madeOnDateTime.toDate();
|
||||
this.madeOnDate = Date.from(madeOnDateTime.toInstant());
|
||||
this.processingResult = CommandProcessingResultType.PROCESSED.getValue();
|
||||
}
|
||||
|
||||
@@ -138,15 +139,15 @@ public class CommandSource extends AbstractPersistableCustom {
|
||||
this.organisationCreditBureauId = organisationCreditBureauId;
|
||||
}
|
||||
|
||||
public void markAsChecked(final AppUser checker, final DateTime checkedOnDate) {
|
||||
public void markAsChecked(final AppUser checker, final ZonedDateTime checkedOnDate) {
|
||||
this.checker = checker;
|
||||
this.checkedOnDate = checkedOnDate.toDate();
|
||||
this.checkedOnDate = Date.from(checkedOnDate.toInstant());
|
||||
this.processingResult = CommandProcessingResultType.PROCESSED.getValue();
|
||||
}
|
||||
|
||||
public void markAsRejected(final AppUser checker, final DateTime checkedOnDate) {
|
||||
public void markAsRejected(final AppUser checker, final ZonedDateTime checkedOnDate) {
|
||||
this.checker = checker;
|
||||
this.checkedOnDate = checkedOnDate.toDate();
|
||||
this.checkedOnDate = Date.from(checkedOnDate.toInstant());
|
||||
this.processingResult = CommandProcessingResultType.REJECTED.getValue();
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -24,6 +24,7 @@ import com.google.gson.JsonObject;
|
||||
import java.lang.reflect.Type;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -63,7 +64,6 @@ import org.apache.fineract.portfolio.savings.service.SavingsProductReadPlatformS
|
||||
import org.apache.fineract.useradministration.data.AppUserData;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.apache.fineract.useradministration.service.AppUserReadPlatformService;
|
||||
import org.joda.time.DateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -157,9 +157,9 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService {
|
||||
final Long loanId = JdbcSupport.getLong(rs, "loanId");
|
||||
final Long subresourceId = JdbcSupport.getLong(rs, "subresourceId");
|
||||
final String maker = rs.getString("maker");
|
||||
final DateTime madeOnDate = JdbcSupport.getDateTime(rs, "madeOnDate");
|
||||
final ZonedDateTime madeOnDate = JdbcSupport.getDateTime(rs, "madeOnDate");
|
||||
final String checker = rs.getString("checker");
|
||||
final DateTime checkedOnDate = JdbcSupport.getDateTime(rs, "checkedOnDate");
|
||||
final ZonedDateTime checkedOnDate = JdbcSupport.getDateTime(rs, "checkedOnDate");
|
||||
final String processingResult = rs.getString("processingResult");
|
||||
final String resourceGetUrl = rs.getString("resourceGetUrl");
|
||||
String commandAsJson;
|
||||
|
||||
+3
-2
@@ -19,6 +19,8 @@
|
||||
package org.apache.fineract.commands.service;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Random;
|
||||
import org.apache.fineract.commands.domain.CommandSource;
|
||||
import org.apache.fineract.commands.domain.CommandSourceRepository;
|
||||
@@ -33,7 +35,6 @@ import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
|
||||
import org.apache.fineract.infrastructure.jobs.service.SchedulerJobRunnerReadService;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.DateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -186,7 +187,7 @@ public class PortfolioCommandSourceWritePlatformServiceImpl implements Portfolio
|
||||
final CommandSource commandSourceInput = validateMakerCheckerTransaction(makerCheckerId);
|
||||
validateIsUpdateAllowed();
|
||||
final AppUser maker = this.context.authenticatedUser();
|
||||
commandSourceInput.markAsRejected(maker, DateTime.now());
|
||||
commandSourceInput.markAsRejected(maker, ZonedDateTime.now(ZoneId.systemDefault()));
|
||||
this.commandSourceRepository.save(commandSourceInput);
|
||||
return makerCheckerId;
|
||||
}
|
||||
|
||||
+3
-2
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.commands.service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Map;
|
||||
import org.apache.fineract.commands.domain.CommandSource;
|
||||
import org.apache.fineract.commands.domain.CommandSourceRepository;
|
||||
@@ -36,7 +38,6 @@ import org.apache.fineract.infrastructure.hooks.event.HookEvent;
|
||||
import org.apache.fineract.infrastructure.hooks.event.HookEventSource;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.DateTime;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -86,7 +87,7 @@ public class SynchronousCommandProcessingService implements CommandProcessingSer
|
||||
CommandSource commandSourceResult = null;
|
||||
if (command.commandId() != null) {
|
||||
commandSourceResult = this.commandSourceRepository.findById(command.commandId()).orElse(null);
|
||||
commandSourceResult.markAsChecked(maker, DateTime.now());
|
||||
commandSourceResult.markAsChecked(maker, ZonedDateTime.now(ZoneId.systemDefault()));
|
||||
} else {
|
||||
commandSourceResult = CommandSource.fullEntryFrom(wrapper, command, maker);
|
||||
}
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.bulkimport.data;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
|
||||
public final class ImportData {
|
||||
|
||||
|
||||
+6
-5
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.bulkimport.domain;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@@ -30,7 +32,6 @@ import javax.persistence.TemporalType;
|
||||
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||
import org.apache.fineract.infrastructure.documentmanagement.domain.Document;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Table(name = "m_import_document")
|
||||
@@ -77,7 +78,7 @@ public class ImportDocument extends AbstractPersistableCustom {
|
||||
final Boolean completed = Boolean.FALSE;
|
||||
final Integer successCount = 0;
|
||||
final Integer failureCount = 0;
|
||||
final LocalDateTime endTime = LocalDateTime.now();
|
||||
final LocalDateTime endTime = LocalDateTime.now(ZoneId.systemDefault());
|
||||
|
||||
return new ImportDocument(document, importTime, endTime, completed, entityType, createdBy, totalRecords, successCount,
|
||||
failureCount);
|
||||
@@ -87,8 +88,8 @@ public class ImportDocument extends AbstractPersistableCustom {
|
||||
final Integer entityType, final AppUser createdBy, final Integer totalRecords, final Integer successCount,
|
||||
final Integer failureCount) {
|
||||
this.document = document;
|
||||
this.importTime = importTime.toDate();
|
||||
this.endTime = endTime.toDate();
|
||||
this.importTime = Date.from(importTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
this.endTime = Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
this.completed = completed;
|
||||
this.entityType = entityType;
|
||||
this.createdBy = createdBy;
|
||||
@@ -99,7 +100,7 @@ public class ImportDocument extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public void update(final LocalDateTime endTime, final Integer successCount, final Integer errorCount) {
|
||||
this.endTime = endTime.toDate();
|
||||
this.endTime = Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
this.completed = Boolean.TRUE;
|
||||
this.successCount = successCount;
|
||||
this.failureCount = errorCount;
|
||||
|
||||
+3
-2
@@ -20,6 +20,8 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.Iterables;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.bulkimport.constants.TemplatePopulateImportConstants;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
@@ -37,7 +39,6 @@ import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.SheetVisibility;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public final class ImportHandlerUtils {
|
||||
|
||||
@@ -144,7 +145,7 @@ public final class ImportHandlerUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
LocalDate localDate = new LocalDate(c.getDateCellValue());
|
||||
LocalDate localDate = LocalDate.ofInstant(c.getDateCellValue().toInstant(), ZoneId.systemDefault());
|
||||
return localDate;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.center;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -45,7 +46,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.client;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -42,7 +43,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.client;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -40,7 +41,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -23,6 +23,7 @@ import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -47,7 +48,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.fixeddeposit
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -41,7 +42,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.group;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -45,7 +46,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import com.google.common.base.Splitter;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -40,7 +41,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+3
-2
@@ -23,7 +23,8 @@ import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import java.lang.reflect.Type;
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class DateSerializer implements JsonSerializer<LocalDate> {
|
||||
|
||||
@@ -35,6 +36,6 @@ public class DateSerializer implements JsonSerializer<LocalDate> {
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(LocalDate src, Type typeOfSrc, JsonSerializationContext context) {
|
||||
return new JsonPrimitive(src.toString(dateFormat));
|
||||
return new JsonPrimitive(src.format(DateTimeFormatter.ofPattern(dateFormat)));
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.journalentry
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.accounting.journalentry.data.CreditDebit;
|
||||
@@ -41,7 +42,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -23,6 +23,7 @@ import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -48,7 +49,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import com.google.common.base.Splitter;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -40,7 +41,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -19,6 +19,7 @@
|
||||
package org.apache.fineract.infrastructure.bulkimport.importhandler.office;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -37,7 +38,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.recurringdep
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -44,7 +45,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.recurringdep
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -42,7 +43,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.savings;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -45,7 +46,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.savings;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -41,7 +42,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.bulkimport.importhandler.sharedaccoun
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -39,7 +40,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -19,6 +19,7 @@
|
||||
package org.apache.fineract.infrastructure.bulkimport.importhandler.staff;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
@@ -37,7 +38,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+2
-4
@@ -104,10 +104,8 @@ public abstract class AbstractWorkbookPopulator implements WorkbookPopulator {
|
||||
for (OfficeData office : offices) {
|
||||
Row row = sheet.createRow(++rowIndex);
|
||||
writeString(officeNameCol, row, office.name().trim().replaceAll("[ )(]", "_"));
|
||||
writeDate(
|
||||
activationDateCol, row, "" + office.getOpeningDate().getDayOfMonth() + "/"
|
||||
+ office.getOpeningDate().getMonthOfYear() + "/" + office.getOpeningDate().getYear(),
|
||||
dateCellStyle, dateFormat);
|
||||
writeDate(activationDateCol, row, "" + office.getOpeningDate().getDayOfMonth() + "/"
|
||||
+ office.getOpeningDate().getMonthValue() + "/" + office.getOpeningDate().getYear(), dateCellStyle, dateFormat);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -211,7 +211,7 @@ public class FixedDepositTransactionWorkbookPopulator extends AbstractWorkbookPo
|
||||
}
|
||||
writeDate(TransactionConstants.LOOKUP_SAVINGS_ACTIVATION_DATE_COL, row,
|
||||
"" + savingsAccount.getTimeline().getActivatedOnDate().getDayOfMonth() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthOfYear() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthValue() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getYear(),
|
||||
dateCellStyle, dateFormat);
|
||||
}
|
||||
|
||||
+1
-1
@@ -212,7 +212,7 @@ public class RecurringDepositTransactionWorkbookPopulator extends AbstractWorkbo
|
||||
}
|
||||
writeDate(TransactionConstants.LOOKUP_SAVINGS_ACTIVATION_DATE_COL, row,
|
||||
"" + savingsAccount.getTimeline().getActivatedOnDate().getDayOfMonth() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthOfYear() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthValue() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getYear(),
|
||||
dateCellStyle, dateFormat);
|
||||
}
|
||||
|
||||
+1
-1
@@ -211,7 +211,7 @@ public class SavingsTransactionsWorkbookPopulator extends AbstractWorkbookPopula
|
||||
}
|
||||
writeDate(TransactionConstants.LOOKUP_SAVINGS_ACTIVATION_DATE_COL, row,
|
||||
"" + savingsAccount.getTimeline().getActivatedOnDate().getDayOfMonth() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthOfYear() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getMonthValue() + "/"
|
||||
+ savingsAccount.getTimeline().getActivatedOnDate().getYear(),
|
||||
dateCellStyle, dateFormat);
|
||||
}
|
||||
|
||||
+1
-1
@@ -27,6 +27,7 @@ import java.io.InputStream;
|
||||
import java.net.URLConnection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import javax.ws.rs.core.Response;
|
||||
import org.apache.fineract.infrastructure.bulkimport.data.BulkImportEvent;
|
||||
@@ -51,7 +52,6 @@ import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.tika.Tika;
|
||||
import org.apache.tika.io.IOUtils;
|
||||
import org.apache.tika.io.TikaInputStream;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+10
-10
@@ -18,9 +18,9 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.email.data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZonedDateTime;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public final class EmailCampaignData {
|
||||
|
||||
@@ -47,22 +47,22 @@ public final class EmailCampaignData {
|
||||
@SuppressWarnings("unused")
|
||||
private final String stretchyReportParamMap;
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime nextTriggerDate;
|
||||
private final ZonedDateTime nextTriggerDate;
|
||||
@SuppressWarnings("unused")
|
||||
private final LocalDate lastTriggerDate;
|
||||
@SuppressWarnings("unused")
|
||||
private final EmailCampaignTimeLine emailCampaignTimeLine;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private final DateTime recurrenceStartDate;
|
||||
private final ZonedDateTime recurrenceStartDate;
|
||||
|
||||
private final String recurrence;
|
||||
|
||||
private EmailCampaignData(final Long id, final String campaignName, final Integer campaignType, final Long businessRuleId,
|
||||
final String paramValue, final EnumOptionData campaignStatus, final String emailSubject, final String message,
|
||||
final String emailAttachmentFileFormat, final Long stretchyReportId, final String stretchyReportParamMap,
|
||||
final DateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
|
||||
final DateTime recurrenceStartDate, final String recurrence) {
|
||||
final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
|
||||
final ZonedDateTime recurrenceStartDate, final String recurrence) {
|
||||
this.id = id;
|
||||
this.campaignName = campaignName;
|
||||
this.campaignType = campaignType;
|
||||
@@ -92,8 +92,8 @@ public final class EmailCampaignData {
|
||||
public static EmailCampaignData instance(final Long id, final String campaignName, final Integer campaignType, final Long runReportId,
|
||||
final String paramValue, final EnumOptionData campaignStatus, final String emailSubject, final String message,
|
||||
final String emailAttachmentFileFormat, final Long stretchyReportId, final String stretchyReportParamMap,
|
||||
final DateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
|
||||
final DateTime recurrenceStartDate, final String recurrence) {
|
||||
final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
|
||||
final ZonedDateTime recurrenceStartDate, final String recurrence) {
|
||||
return new EmailCampaignData(id, campaignName, campaignType, runReportId, paramValue, campaignStatus, emailSubject, message,
|
||||
emailAttachmentFileFormat, stretchyReportId, stretchyReportParamMap, nextTriggerDate, lastTriggerDate,
|
||||
emailCampaignTimeLine, recurrenceStartDate, recurrence);
|
||||
@@ -131,7 +131,7 @@ public final class EmailCampaignData {
|
||||
return this.emailMessage;
|
||||
}
|
||||
|
||||
public DateTime getNextTriggerDate() {
|
||||
public ZonedDateTime getNextTriggerDate() {
|
||||
return this.nextTriggerDate;
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ public final class EmailCampaignData {
|
||||
return this.recurrence;
|
||||
}
|
||||
|
||||
public DateTime getRecurrenceStartDate() {
|
||||
public ZonedDateTime getRecurrenceStartDate() {
|
||||
return this.recurrenceStartDate;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.email.data;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class EmailCampaignTimeLine {
|
||||
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.campaigns.email.data;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -34,7 +35,6 @@ import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+1
-1
@@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.email.data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.ReportData;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable data object representing a SMS message.
|
||||
|
||||
+4
-5
@@ -22,6 +22,8 @@ import com.google.common.base.Splitter;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -41,9 +43,6 @@ import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidati
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.codehaus.jackson.type.TypeReference;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -127,7 +126,7 @@ public final class EmailDataValidator {
|
||||
if (StringUtils.isNotEmpty(dateFormat)) {
|
||||
|
||||
try {
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(dateFormat).withLocale(jsonCommand.extractLocale());
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat).withLocale(jsonCommand.extractLocale());
|
||||
|
||||
// try to parse the date time string
|
||||
LocalDateTime.parse(startDateTime, dateTimeFormatter);
|
||||
@@ -224,7 +223,7 @@ public final class EmailDataValidator {
|
||||
if (StringUtils.isNotEmpty(dateFormat)) {
|
||||
|
||||
try {
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(dateFormat)
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat)
|
||||
.withLocale(jsonCommand.extractLocale());
|
||||
|
||||
// try to parse the date time string
|
||||
|
||||
+27
-24
@@ -18,6 +18,11 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.email.domain;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -43,10 +48,6 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||
import org.apache.fineract.infrastructure.dataqueries.domain.Report;
|
||||
import org.apache.fineract.portfolio.client.api.ClientApiConstants;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
|
||||
@Entity
|
||||
@Table(name = "scheduled_email_campaign")
|
||||
@@ -152,15 +153,15 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
this.emailAttachmentFileFormat = emailAttachmentFileFormat.getValue();
|
||||
this.stretchyReport = stretchyReport;
|
||||
this.stretchyReportParamMap = stretchyReportParamMap;
|
||||
this.submittedOnDate = submittedOnDate.toDate();
|
||||
this.submittedOnDate = Date.from(submittedOnDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.submittedBy = submittedBy;
|
||||
this.recurrence = recurrence;
|
||||
LocalDateTime recurrenceStartDate = new LocalDateTime();
|
||||
LocalDateTime recurrenceStartDate = LocalDateTime.now(ZoneId.systemDefault());
|
||||
this.isVisible = true;
|
||||
if (localDateTime != null) {
|
||||
this.recurrenceStartDate = localDateTime.toDate();
|
||||
this.recurrenceStartDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
} else {
|
||||
this.recurrenceStartDate = recurrenceStartDate.toDate();
|
||||
this.recurrenceStartDate = Date.from(recurrenceStartDate.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -184,16 +185,16 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
} else {
|
||||
emailAttachmentFileFormat = ScheduledEmailAttachmentFileFormat.instance(2);
|
||||
}
|
||||
LocalDate submittedOnDate = new LocalDate();
|
||||
LocalDate submittedOnDate = LocalDate.now(ZoneId.systemDefault());
|
||||
if (command.hasParameter(EmailCampaignValidator.submittedOnDateParamName)) {
|
||||
submittedOnDate = command.localDateValueOfParameterNamed(EmailCampaignValidator.submittedOnDateParamName);
|
||||
}
|
||||
|
||||
final String recurrence = command.stringValueOfParameterNamed(EmailCampaignValidator.recurrenceParamName);
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
|
||||
LocalDateTime recurrenceStartDate = new LocalDateTime();
|
||||
LocalDateTime recurrenceStartDate = LocalDateTime.now(ZoneId.systemDefault());
|
||||
if (EmailCampaignType.fromInt(campaignType.intValue()).isSchedule()) {
|
||||
if (command.hasParameter(EmailCampaignValidator.recurrenceStartDate)) {
|
||||
recurrenceStartDate = LocalDateTime.parse(command.stringValueOfParameterNamed(EmailCampaignValidator.recurrenceStartDate),
|
||||
@@ -245,7 +246,7 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
final String dateFormatAsInput = command.dateFormat();
|
||||
final String localeAsInput = command.locale();
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
|
||||
if (command.isChangeInLocalDateParameterNamed(EmailCampaignValidator.recurrenceStartDate, getRecurrenceStartDate())) {
|
||||
final String valueAsInput = command.stringValueOfParameterNamed(EmailCampaignValidator.recurrenceStartDate);
|
||||
@@ -255,7 +256,7 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
|
||||
final LocalDateTime newValue = LocalDateTime.parse(valueAsInput, fmt);
|
||||
|
||||
this.recurrenceStartDate = newValue.toDate();
|
||||
this.recurrenceStartDate = Date.from(newValue.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
return actualChanges;
|
||||
@@ -267,14 +268,14 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
// handle errors if already activated
|
||||
final String defaultUserMessage = "Cannot activate campaign. Campaign is already active.";
|
||||
final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.already.active", defaultUserMessage,
|
||||
EmailCampaignValidator.activationDateParamName, activationLocalDate.toString(formatter));
|
||||
EmailCampaignValidator.activationDateParamName, activationLocalDate.format(formatter));
|
||||
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||
dataValidationErrors.add(error);
|
||||
|
||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||
}
|
||||
this.approvedOnDate = activationLocalDate.toDate();
|
||||
this.approvedOnDate = Date.from(activationLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.approvedBy = currentUser;
|
||||
this.status = EmailCampaignStatus.ACTIVE.getValue();
|
||||
|
||||
@@ -298,7 +299,7 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
this.lastTriggerDate = null;
|
||||
}
|
||||
this.closedBy = currentUser;
|
||||
this.closureDate = closureLocalDate.toDate();
|
||||
this.closureDate = Date.from(closureLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.status = EmailCampaignStatus.CLOSED.getValue();
|
||||
validateClosureDate();
|
||||
}
|
||||
@@ -317,7 +318,7 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||
}
|
||||
|
||||
this.approvedOnDate = reactivateLocalDate.toDate();
|
||||
this.approvedOnDate = Date.from(reactivateLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.status = EmailCampaignStatus.ACTIVE.getValue();
|
||||
this.approvedBy = currentUser;
|
||||
this.closureDate = null;
|
||||
@@ -456,18 +457,18 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getSubmittedOnDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.submittedOnDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.submittedOnDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
|
||||
}
|
||||
|
||||
public LocalDate getClosureDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.closureDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.closureDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public LocalDate getActivationLocalDate() {
|
||||
LocalDate activationLocalDate = null;
|
||||
if (this.approvedOnDate != null) {
|
||||
activationLocalDate = LocalDate.fromDateFields(this.approvedOnDate);
|
||||
activationLocalDate = LocalDate.ofInstant(this.approvedOnDate.toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return activationLocalDate;
|
||||
}
|
||||
@@ -501,11 +502,12 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getRecurrenceStartDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.recurrenceStartDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.recurrenceStartDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public LocalDateTime getRecurrenceStartDateTime() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDateTime(this.recurrenceStartDate), null);
|
||||
return ObjectUtils.defaultIfNull(
|
||||
ZonedDateTime.ofInstant(this.recurrenceStartDate.toInstant(), ZoneId.systemDefault()).toLocalDateTime(), null);
|
||||
}
|
||||
|
||||
public void setLastTriggerDate(Date lastTriggerDate) {
|
||||
@@ -517,7 +519,8 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDateTime getNextTriggerDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDateTime(this.nextTriggerDate), null);
|
||||
return ObjectUtils
|
||||
.defaultIfNull(ZonedDateTime.ofInstant(this.nextTriggerDate.toInstant(), ZoneId.systemDefault()).toLocalDateTime(), null);
|
||||
|
||||
}
|
||||
|
||||
@@ -526,7 +529,7 @@ public class EmailCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getLastTriggerDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.lastTriggerDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.lastTriggerDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public void updateIsVisible(boolean isVisible) {
|
||||
|
||||
+3
-2
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.email.domain;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
@@ -35,7 +37,6 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
|
||||
import org.apache.fineract.organisation.staff.domain.Staff;
|
||||
import org.apache.fineract.portfolio.client.domain.Client;
|
||||
import org.apache.fineract.portfolio.group.domain.Group;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
@Entity
|
||||
@Table(name = "scheduled_email_messages_outbound")
|
||||
@@ -107,7 +108,7 @@ public class EmailMessage extends AbstractPersistableCustom {
|
||||
this.emailSubject = emailSubject;
|
||||
this.message = message;
|
||||
this.campaignName = campaignName;
|
||||
this.submittedOnDate = LocalDate.now().toDate();
|
||||
this.submittedOnDate = Date.from(LocalDate.now(ZoneId.systemDefault()).atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public Map<String, Object> update(final JsonCommand command) {
|
||||
|
||||
+4
-4
@@ -20,6 +20,8 @@ package org.apache.fineract.infrastructure.campaigns.email.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -37,8 +39,6 @@ import org.apache.fineract.infrastructure.campaigns.email.exception.EmailCampaig
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
@@ -138,7 +138,7 @@ public class EmailCampaignReadPlatformServiceImpl implements EmailCampaignReadPl
|
||||
|
||||
final Integer statusId = JdbcSupport.getInteger(rs, "statusEnum");
|
||||
final EnumOptionData status = EmailCampaignStatusEnumerations.status(statusId);
|
||||
final DateTime nextTriggerDate = JdbcSupport.getDateTime(rs, "nextTriggerDate");
|
||||
final ZonedDateTime nextTriggerDate = JdbcSupport.getDateTime(rs, "nextTriggerDate");
|
||||
final LocalDate lastTriggerDate = JdbcSupport.getLocalDate(rs, "lastTriggerDate");
|
||||
|
||||
final LocalDate closedOnDate = JdbcSupport.getLocalDate(rs, "closedOnDate");
|
||||
@@ -150,7 +150,7 @@ public class EmailCampaignReadPlatformServiceImpl implements EmailCampaignReadPl
|
||||
final LocalDate activatedOnDate = JdbcSupport.getLocalDate(rs, "activatedOnDate");
|
||||
final String activatedByUsername = rs.getString("activatedByUsername");
|
||||
final String recurrence = rs.getString("recurrence");
|
||||
final DateTime recurrenceStartDate = JdbcSupport.getDateTime(rs, "recurrenceStartDate");
|
||||
final ZonedDateTime recurrenceStartDate = JdbcSupport.getDateTime(rs, "recurrenceStartDate");
|
||||
final EmailCampaignTimeLine emailCampaignTimeLine = new EmailCampaignTimeLine(submittedOnDate, submittedByUsername,
|
||||
activatedOnDate, activatedByUsername, closedOnDate, closedByUsername);
|
||||
|
||||
|
||||
+26
-24
@@ -28,9 +28,15 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -85,11 +91,6 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccountRepository;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.codehaus.jackson.type.TypeReference;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -313,7 +314,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
final EmailCampaign emailCampaign = this.emailCampaignRepository.findById(campaignId)
|
||||
.orElseThrow(() -> new EmailCampaignNotFound(campaignId));
|
||||
LocalDateTime nextTriggerDate = emailCampaign.getNextTriggerDate();
|
||||
emailCampaign.setLastTriggerDate(nextTriggerDate.toDate());
|
||||
emailCampaign.setLastTriggerDate(Date.from(nextTriggerDate.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
// calculate new trigger date and insert into next trigger date
|
||||
|
||||
/**
|
||||
@@ -335,12 +336,11 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
emailCampaign.getNextTriggerDate().toLocalDate(), DateUtils.getLocalDateOfTenant());
|
||||
}
|
||||
final LocalDateTime getTime = emailCampaign.getRecurrenceStartDateTime();
|
||||
final String dateString = nextRuntime.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextRuntime.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":" + getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final LocalDateTime newTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
emailCampaign.setNextTriggerDate(newTriggerDateWithTime.toDate());
|
||||
emailCampaign.setNextTriggerDate(Date.from(newTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
this.emailCampaignRepository.saveAndFlush(emailCampaign);
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
.orElseThrow(() -> new EmailCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate activationDate = command.localDateValueOfParameterNamed("activationDate");
|
||||
|
||||
emailCampaign.activate(currentUser, fmt, activationDate);
|
||||
@@ -382,12 +382,13 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
// to get time of tenant
|
||||
final LocalDateTime getTime = emailCampaign.getRecurrenceStartDateTime();
|
||||
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":"
|
||||
+ getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
|
||||
final LocalDateTime nextTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
emailCampaign.setNextTriggerDate(nextTriggerDateWithTime.toDate());
|
||||
emailCampaign.setNextTriggerDate(Date.from(nextTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
this.emailCampaignRepository.saveAndFlush(emailCampaign);
|
||||
}
|
||||
}
|
||||
@@ -413,7 +414,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
.orElseThrow(() -> new EmailCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate closureDate = command.localDateValueOfParameterNamed("closureDate");
|
||||
|
||||
emailCampaign.close(currentUser, fmt, closureDate);
|
||||
@@ -513,7 +514,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
.orElseThrow(() -> new EmailCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate reactivationDate = command.localDateValueOfParameterNamed("activationDate");
|
||||
emailCampaign.reactivate(currentUser, fmt, reactivationDate);
|
||||
if (emailCampaign.isSchedule()) {
|
||||
@@ -532,12 +533,13 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
// to get time of tenant
|
||||
final LocalDateTime getTime = emailCampaign.getRecurrenceStartDateTime();
|
||||
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":"
|
||||
+ getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
|
||||
final LocalDateTime nextTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
emailCampaign.setNextTriggerDate(nextTriggerDateWithTime.toDate());
|
||||
emailCampaign.setNextTriggerDate(Date.from(nextTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
this.emailCampaignRepository.saveAndFlush(emailCampaign);
|
||||
}
|
||||
|
||||
@@ -555,13 +557,13 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai
|
||||
}
|
||||
|
||||
private LocalDateTime tenantDateTime() {
|
||||
LocalDateTime today = new LocalDateTime();
|
||||
LocalDateTime today = LocalDateTime.now(ZoneId.systemDefault());
|
||||
final FineractPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
|
||||
|
||||
if (tenant != null) {
|
||||
final DateTimeZone zone = DateTimeZone.forID(tenant.getTimezoneId());
|
||||
final ZoneId zone = ZoneId.of(tenant.getTimezoneId());
|
||||
if (zone != null) {
|
||||
today = new LocalDateTime(zone);
|
||||
today = LocalDateTime.now(zone);
|
||||
}
|
||||
}
|
||||
return today;
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -35,7 +36,6 @@ import org.apache.fineract.infrastructure.core.service.Page;
|
||||
import org.apache.fineract.infrastructure.core.service.PaginationHelper;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
+12
-12
@@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.sms.data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Collection;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class SmsCampaignData {
|
||||
@@ -35,10 +35,10 @@ public final class SmsCampaignData {
|
||||
private final EnumOptionData campaignStatus;
|
||||
private final EnumOptionData triggerType;
|
||||
private final String campaignMessage;
|
||||
private final DateTime nextTriggerDate;
|
||||
private final ZonedDateTime nextTriggerDate;
|
||||
private final LocalDate lastTriggerDate;
|
||||
private final SmsCampaignTimeLine smsCampaignTimeLine;
|
||||
private final DateTime recurrenceStartDate;
|
||||
private final ZonedDateTime recurrenceStartDate;
|
||||
private final String recurrence;
|
||||
private final Long providerId;
|
||||
private final boolean isNotification;
|
||||
@@ -61,8 +61,8 @@ public final class SmsCampaignData {
|
||||
|
||||
private SmsCampaignData(final Long id, final String campaignName, final EnumOptionData campaignType, final EnumOptionData triggerType,
|
||||
final Long runReportId, final String reportName, final String paramValue, final EnumOptionData campaignStatus,
|
||||
final String message, final DateTime nextTriggerDate, final LocalDate lastTriggerDate,
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine, final DateTime recurrenceStartDate, final String recurrence,
|
||||
final String message, final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate,
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine, final ZonedDateTime recurrenceStartDate, final String recurrence,
|
||||
final Long providerId, final Collection<SmsBusinessRulesData> businessRulesOptions,
|
||||
final Collection<SmsProviderData> smsProviderOptions, final Collection<EnumOptionData> campaignTypeOptions,
|
||||
final Collection<EnumOptionData> triggerTypeOptions, final Collection<EnumOptionData> months,
|
||||
@@ -104,8 +104,8 @@ public final class SmsCampaignData {
|
||||
|
||||
public static SmsCampaignData instance(final Long id, final String campaignName, final EnumOptionData campaignType,
|
||||
final EnumOptionData triggerType, final Long runReportId, final String reportName, final String paramValue,
|
||||
final EnumOptionData campaignStatus, final String message, final DateTime nextTriggerDate, final LocalDate lastTriggerDate,
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine, final DateTime recurrenceStartDate, final String recurrence,
|
||||
final EnumOptionData campaignStatus, final String message, final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate,
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine, final ZonedDateTime recurrenceStartDate, final String recurrence,
|
||||
final Long providerId, final boolean isNotification) {
|
||||
final Collection<SmsBusinessRulesData> businessRulesOptions = null;
|
||||
final Collection<SmsProviderData> smsProviderOptions = null;
|
||||
@@ -134,10 +134,10 @@ public final class SmsCampaignData {
|
||||
final String paramValue = null;
|
||||
final EnumOptionData campaignStatus = null;
|
||||
final String message = null;
|
||||
final DateTime nextTriggerDate = null;
|
||||
final ZonedDateTime nextTriggerDate = null;
|
||||
final LocalDate lastTriggerDate = null;
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine = null;
|
||||
final DateTime recurrenceStartDate = null;
|
||||
final ZonedDateTime recurrenceStartDate = null;
|
||||
final String recurrence = null;
|
||||
final EnumOptionData triggerType = null;
|
||||
final String reportName = null;
|
||||
@@ -177,7 +177,7 @@ public final class SmsCampaignData {
|
||||
return this.campaignMessage;
|
||||
}
|
||||
|
||||
public DateTime getNextTriggerDate() {
|
||||
public ZonedDateTime getNextTriggerDate() {
|
||||
return this.nextTriggerDate;
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ public final class SmsCampaignData {
|
||||
return this.recurrence;
|
||||
}
|
||||
|
||||
public DateTime getRecurrenceStartDate() {
|
||||
public ZonedDateTime getRecurrenceStartDate() {
|
||||
return this.recurrenceStartDate;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.sms.data;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class SmsCampaignTimeLine {
|
||||
|
||||
+27
-24
@@ -18,6 +18,11 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.campaigns.sms.domain;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -47,10 +52,6 @@ import org.apache.fineract.infrastructure.dataqueries.domain.Report;
|
||||
import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
|
||||
import org.apache.fineract.portfolio.calendar.domain.CalendarWeekDaysType;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
|
||||
@Entity
|
||||
@Table(name = "sms_campaign", uniqueConstraints = { @UniqueConstraint(columnNames = { "campaign_name" }, name = "campaign_name_UNIQUE") })
|
||||
@@ -139,15 +140,15 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
this.paramValue = paramValue;
|
||||
this.status = SmsCampaignStatus.PENDING.getValue();
|
||||
this.message = message;
|
||||
this.submittedOnDate = submittedOnDate.toDate();
|
||||
this.submittedOnDate = Date.from(submittedOnDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.submittedBy = submittedBy;
|
||||
this.recurrence = recurrence;
|
||||
LocalDateTime recurrenceStartDate = new LocalDateTime();
|
||||
LocalDateTime recurrenceStartDate = LocalDateTime.now(ZoneId.systemDefault());
|
||||
this.isVisible = true;
|
||||
if (localDateTime != null) {
|
||||
this.recurrenceStartDate = localDateTime.toDate();
|
||||
this.recurrenceStartDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
} else {
|
||||
this.recurrenceStartDate = recurrenceStartDate.toDate();
|
||||
this.recurrenceStartDate = Date.from(recurrenceStartDate.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
this.isNotification = isNotification;
|
||||
}
|
||||
@@ -169,19 +170,19 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
final String paramValue = command.jsonFragment(SmsCampaignValidator.paramValue);
|
||||
|
||||
final String message = command.stringValueOfParameterNamed(SmsCampaignValidator.message);
|
||||
LocalDate submittedOnDate = new LocalDate();
|
||||
LocalDate submittedOnDate = LocalDate.now(ZoneId.systemDefault());
|
||||
if (command.hasParameter(SmsCampaignValidator.submittedOnDateParamName)) {
|
||||
submittedOnDate = command.localDateValueOfParameterNamed(SmsCampaignValidator.submittedOnDateParamName);
|
||||
}
|
||||
String recurrence = null;
|
||||
|
||||
LocalDateTime recurrenceStartDate = new LocalDateTime();
|
||||
LocalDateTime recurrenceStartDate = LocalDateTime.now(ZoneId.systemDefault());
|
||||
if (SmsCampaignTriggerType.fromInt(triggerType.intValue()).isSchedule()) {
|
||||
final Locale locale = command.extractLocale();
|
||||
String dateTimeFormat = null;
|
||||
if (command.hasParameter(SmsCampaignValidator.dateTimeFormat)) {
|
||||
dateTimeFormat = command.stringValueOfParameterNamed(SmsCampaignValidator.dateTimeFormat);
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(dateTimeFormat).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(dateTimeFormat).withLocale(locale);
|
||||
if (command.hasParameter(SmsCampaignValidator.recurrenceStartDate)) {
|
||||
recurrenceStartDate = LocalDateTime.parse(command.stringValueOfParameterNamed(SmsCampaignValidator.recurrenceStartDate),
|
||||
fmt);
|
||||
@@ -252,7 +253,7 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
final String dateTimeFormatAsInput = command.stringValueOfParameterNamed(SmsCampaignValidator.dateTimeFormat);
|
||||
final String localeAsInput = command.locale();
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(dateTimeFormatAsInput).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(dateTimeFormatAsInput).withLocale(locale);
|
||||
final String valueAsInput = command.stringValueOfParameterNamed(SmsCampaignValidator.recurrenceStartDate);
|
||||
actualChanges.put(SmsCampaignValidator.recurrenceStartDate, valueAsInput);
|
||||
actualChanges.put(SmsCampaignValidator.dateFormatParamName, dateFormatAsInput);
|
||||
@@ -261,7 +262,7 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
|
||||
final LocalDateTime newValue = LocalDateTime.parse(valueAsInput, fmt);
|
||||
|
||||
this.recurrenceStartDate = newValue.toDate();
|
||||
this.recurrenceStartDate = Date.from(newValue.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
return actualChanges;
|
||||
@@ -273,14 +274,14 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
// handle errors if already activated
|
||||
final String defaultUserMessage = "Cannot activate campaign. Campaign is already active.";
|
||||
final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.already.active", defaultUserMessage,
|
||||
SmsCampaignValidator.activationDateParamName, activationLocalDate.toString(formatter));
|
||||
SmsCampaignValidator.activationDateParamName, activationLocalDate.format(formatter));
|
||||
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
dataValidationErrors.add(error);
|
||||
|
||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||
}
|
||||
this.approvedOnDate = activationLocalDate.toDate();
|
||||
this.approvedOnDate = Date.from(activationLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.approvedBy = currentUser;
|
||||
this.status = SmsCampaignStatus.ACTIVE.getValue();
|
||||
|
||||
@@ -304,7 +305,7 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
this.lastTriggerDate = null;
|
||||
}
|
||||
this.closedBy = currentUser;
|
||||
this.closureDate = closureLocalDate.toDate();
|
||||
this.closureDate = Date.from(closureLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.status = SmsCampaignStatus.CLOSED.getValue();
|
||||
validateClosureDate();
|
||||
}
|
||||
@@ -323,7 +324,7 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||
}
|
||||
|
||||
this.approvedOnDate = reactivateLocalDate.toDate();
|
||||
this.approvedOnDate = Date.from(reactivateLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
this.status = SmsCampaignStatus.ACTIVE.getValue();
|
||||
this.approvedBy = currentUser;
|
||||
this.closureDate = null;
|
||||
@@ -466,18 +467,18 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getSubmittedOnDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.submittedOnDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.submittedOnDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
|
||||
}
|
||||
|
||||
public LocalDate getClosureDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.closureDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.closureDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public LocalDate getActivationLocalDate() {
|
||||
LocalDate activationLocalDate = null;
|
||||
if (this.approvedOnDate != null) {
|
||||
activationLocalDate = LocalDate.fromDateFields(this.approvedOnDate);
|
||||
activationLocalDate = LocalDate.ofInstant(this.approvedOnDate.toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return activationLocalDate;
|
||||
}
|
||||
@@ -507,11 +508,12 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getRecurrenceStartDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.recurrenceStartDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.recurrenceStartDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public LocalDateTime getRecurrenceStartDateTime() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDateTime(this.recurrenceStartDate), null);
|
||||
return ObjectUtils.defaultIfNull(
|
||||
ZonedDateTime.ofInstant(this.recurrenceStartDate.toInstant(), ZoneId.systemDefault()).toLocalDateTime(), null);
|
||||
}
|
||||
|
||||
public void setLastTriggerDate(Date lastTriggerDate) {
|
||||
@@ -523,7 +525,8 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDateTime getNextTriggerDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDateTime(this.nextTriggerDate), null);
|
||||
return ObjectUtils
|
||||
.defaultIfNull(ZonedDateTime.ofInstant(this.nextTriggerDate.toInstant(), ZoneId.systemDefault()).toLocalDateTime(), null);
|
||||
|
||||
}
|
||||
|
||||
@@ -532,7 +535,7 @@ public class SmsCampaign extends AbstractPersistableCustom {
|
||||
}
|
||||
|
||||
public LocalDate getLastTriggerDate() {
|
||||
return ObjectUtils.defaultIfNull(new LocalDate(this.lastTriggerDate), null);
|
||||
return ObjectUtils.defaultIfNull(LocalDate.ofInstant(this.lastTriggerDate.toInstant(), ZoneId.systemDefault()), null);
|
||||
}
|
||||
|
||||
public void updateIsVisible(boolean isVisible) {
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.campaigns.sms.serialization;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -39,7 +40,6 @@ import org.apache.fineract.infrastructure.gcm.domain.DeviceRegistration;
|
||||
import org.apache.fineract.infrastructure.gcm.domain.DeviceRegistrationRepositoryWrapper;
|
||||
import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
|
||||
import org.apache.fineract.portfolio.client.domain.Client;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+7
-8
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.campaigns.sms.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.InvalidParameterException;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -54,8 +55,6 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
|
||||
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.codehaus.jackson.type.TypeReference;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -312,8 +311,8 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService {
|
||||
throw new InvalidParameterException("");
|
||||
}
|
||||
|
||||
DateTimeFormatter timeFormatter = DateTimeFormat.forPattern("HH:mm");
|
||||
DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("MMM:d:yyyy");
|
||||
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
|
||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MMM:d:yyyy");
|
||||
|
||||
smsParams.put("id", loanTransaction.getLoan().getClientId());
|
||||
smsParams.put("firstname", client.getFirstname());
|
||||
@@ -334,8 +333,8 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService {
|
||||
}
|
||||
|
||||
smsParams.put("repaymentAmount", loanTransaction.getAmount(loan.getCurrency()));
|
||||
smsParams.put("RepaymentDate", loanTransaction.getCreatedDateTime().toLocalDate().toString(dateFormatter));
|
||||
smsParams.put("RepaymentTime", loanTransaction.getCreatedDateTime().toLocalTime().toString(timeFormatter));
|
||||
smsParams.put("RepaymentDate", loanTransaction.getCreatedDateTime().toLocalDate().format(dateFormatter));
|
||||
smsParams.put("RepaymentTime", loanTransaction.getCreatedDateTime().toLocalTime().format(timeFormatter));
|
||||
|
||||
if (loanTransaction.getPaymentDetail() != null) {
|
||||
smsParams.put("receiptNumber", loanTransaction.getPaymentDetail().getReceiptNumber());
|
||||
@@ -355,7 +354,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService {
|
||||
// transactionDate
|
||||
HashMap<String, Object> smsParams = new HashMap<String, Object>();
|
||||
SavingsAccount savingsAccount = savingsAccountTransaction.getSavingsAccount();
|
||||
DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("MMM:d:yyyy");
|
||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MMM:d:yyyy");
|
||||
smsParams.put("clientId", client.getId());
|
||||
smsParams.put("firstname", client.getFirstname());
|
||||
smsParams.put("middlename", client.getMiddlename());
|
||||
@@ -368,7 +367,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService {
|
||||
smsParams.put("depositAmount", savingsAccountTransaction.getAmount(savingsAccount.getCurrency()));
|
||||
smsParams.put("balance", savingsAccount.getWithdrawableBalance());
|
||||
smsParams.put("officeId", client.getOffice().getId());
|
||||
smsParams.put("transactionDate", savingsAccountTransaction.getTransactionLocalDate().toString(dateFormatter));
|
||||
smsParams.put("transactionDate", savingsAccountTransaction.getTransactionLocalDate().format(dateFormatter));
|
||||
smsParams.put("savingsTransactionId", savingsAccountTransaction.getId());
|
||||
|
||||
if (client.getStaff() != null) {
|
||||
|
||||
+4
-4
@@ -20,6 +20,8 @@ package org.apache.fineract.infrastructure.campaigns.sms.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -41,8 +43,6 @@ import org.apache.fineract.infrastructure.core.service.PaginationHelper;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.apache.fineract.infrastructure.core.service.SearchParameters;
|
||||
import org.apache.fineract.portfolio.calendar.service.CalendarDropdownReadPlatformService;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
@@ -250,7 +250,7 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo
|
||||
final Integer triggerType = JdbcSupport.getInteger(rs, "triggerType");
|
||||
final EnumOptionData triggerTypeEnum = SmsCampaignTriggerType.triggerType(triggerType);
|
||||
|
||||
final DateTime nextTriggerDate = JdbcSupport.getDateTime(rs, "nextTriggerDate");
|
||||
final ZonedDateTime nextTriggerDate = JdbcSupport.getDateTime(rs, "nextTriggerDate");
|
||||
final LocalDate lastTriggerDate = JdbcSupport.getLocalDate(rs, "lastTriggerDate");
|
||||
|
||||
final LocalDate closedOnDate = JdbcSupport.getLocalDate(rs, "closedOnDate");
|
||||
@@ -262,7 +262,7 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo
|
||||
final LocalDate activatedOnDate = JdbcSupport.getLocalDate(rs, "activatedOnDate");
|
||||
final String activatedByUsername = rs.getString("activatedByUsername");
|
||||
final String recurrence = rs.getString("recurrence");
|
||||
final DateTime recurrenceStartDate = JdbcSupport.getDateTime(rs, "recurrenceStartDate");
|
||||
final ZonedDateTime recurrenceStartDate = JdbcSupport.getDateTime(rs, "recurrenceStartDate");
|
||||
final SmsCampaignTimeLine smsCampaignTimeLine = new SmsCampaignTimeLine(submittedOnDate, submittedByUsername, activatedOnDate,
|
||||
activatedByUsername, closedOnDate, closedByUsername);
|
||||
final String reportName = rs.getString("reportName");
|
||||
|
||||
+27
-24
@@ -25,8 +25,14 @@ import com.google.gson.JsonElement;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
@@ -80,11 +86,6 @@ import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.codehaus.jackson.JsonParseException;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.codehaus.jackson.type.TypeReference;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -408,7 +409,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
final SmsCampaign smsCampaign = this.smsCampaignRepository.findById(campaignId)
|
||||
.orElseThrow(() -> new SmsCampaignNotFound(campaignId));
|
||||
LocalDateTime nextTriggerDate = smsCampaign.getNextTriggerDate();
|
||||
smsCampaign.setLastTriggerDate(nextTriggerDate.toDate());
|
||||
smsCampaign.setLastTriggerDate(Date.from(nextTriggerDate.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
// calculate new trigger date and insert into next trigger date
|
||||
|
||||
/**
|
||||
@@ -430,12 +431,12 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
DateUtils.getLocalDateOfTenant());
|
||||
}
|
||||
final LocalDateTime getTime = smsCampaign.getRecurrenceStartDateTime();
|
||||
final String dateString = nextRuntime.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextRuntime.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":" + getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
|
||||
final LocalDateTime newTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
smsCampaign.setNextTriggerDate(newTriggerDateWithTime.toDate());
|
||||
smsCampaign.setNextTriggerDate(Date.from(newTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
this.smsCampaignRepository.saveAndFlush(smsCampaign);
|
||||
}
|
||||
|
||||
@@ -450,7 +451,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
.orElseThrow(() -> new SmsCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate activationDate = command.localDateValueOfParameterNamed("activationDate");
|
||||
|
||||
smsCampaign.activate(currentUser, fmt, activationDate);
|
||||
@@ -475,12 +476,13 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
// to get time of tenant
|
||||
final LocalDateTime getTime = smsCampaign.getRecurrenceStartDateTime();
|
||||
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":"
|
||||
+ getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
|
||||
final LocalDateTime nextTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
smsCampaign.setNextTriggerDate(nextTriggerDateWithTime.toDate());
|
||||
smsCampaign.setNextTriggerDate(Date.from(nextTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
this.smsCampaignRepository.saveAndFlush(smsCampaign);
|
||||
}
|
||||
|
||||
@@ -505,7 +507,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
.orElseThrow(() -> new SmsCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate closureDate = command.localDateValueOfParameterNamed("closureDate");
|
||||
|
||||
smsCampaign.close(currentUser, fmt, closureDate);
|
||||
@@ -616,7 +618,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
.orElseThrow(() -> new SmsCampaignNotFound(campaignId));
|
||||
|
||||
final Locale locale = command.extractLocale();
|
||||
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale);
|
||||
final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
|
||||
final LocalDate reactivationDate = command.localDateValueOfParameterNamed("activationDate");
|
||||
smsCampaign.reactivate(currentUser, fmt, reactivationDate);
|
||||
if (smsCampaign.isDirect()) {
|
||||
@@ -637,12 +639,13 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
// to get time of tenant
|
||||
final LocalDateTime getTime = smsCampaign.getRecurrenceStartDateTime();
|
||||
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHourOfDay() + ":" + getTime.getMinuteOfHour() + ":"
|
||||
+ getTime.getSecondOfMinute();
|
||||
final DateTimeFormatter simpleDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final String dateString = nextTriggerDate.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":"
|
||||
+ getTime.getSecond();
|
||||
final DateTimeFormatter simpleDateFormat = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
|
||||
final LocalDateTime nextTriggerDateWithTime = LocalDateTime.parse(dateString, simpleDateFormat);
|
||||
|
||||
smsCampaign.setNextTriggerDate(nextTriggerDateWithTime.toDate());
|
||||
smsCampaign.setNextTriggerDate(Date.from(nextTriggerDateWithTime.atZone(ZoneId.systemDefault()).toInstant()));
|
||||
}
|
||||
this.smsCampaignRepository.saveAndFlush(smsCampaign);
|
||||
|
||||
@@ -679,13 +682,13 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP
|
||||
}
|
||||
|
||||
private LocalDateTime tenantDateTime() {
|
||||
LocalDateTime today = new LocalDateTime();
|
||||
LocalDateTime today = LocalDateTime.now(ZoneId.systemDefault());
|
||||
final FineractPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
|
||||
|
||||
if (tenant != null) {
|
||||
final DateTimeZone zone = DateTimeZone.forID(tenant.getTimezoneId());
|
||||
final ZoneId zone = ZoneId.of(tenant.getTimezoneId());
|
||||
if (zone != null) {
|
||||
today = new LocalDateTime(zone);
|
||||
today = LocalDateTime.now(zone);
|
||||
}
|
||||
}
|
||||
return today;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.configuration.data;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -35,7 +36,6 @@ import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||
import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+6
-5
@@ -23,19 +23,20 @@ import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import java.lang.reflect.Type;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
/**
|
||||
* Serializer for Joda Time {@link DateTime} that returns the date as long to match previous (Jackson) functionality.
|
||||
* Serializer for Joda Time {@link ZonedDateTime} that returns the date as long to match previous (Jackson)
|
||||
* functionality.
|
||||
*/
|
||||
public class JodaDateTimeAdapter implements JsonSerializer<DateTime> {
|
||||
public class JodaDateTimeAdapter implements JsonSerializer<ZonedDateTime> {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unused")
|
||||
public JsonElement serialize(final DateTime src, final Type typeOfSrc, final JsonSerializationContext context) {
|
||||
public JsonElement serialize(final ZonedDateTime src, final Type typeOfSrc, final JsonSerializationContext context) {
|
||||
JsonElement element = null;
|
||||
if (src != null) {
|
||||
element = new JsonPrimitive(src.getMillis());
|
||||
element = new JsonPrimitive(src.toInstant().toEpochMilli());
|
||||
}
|
||||
|
||||
return element;
|
||||
|
||||
+4
-3
@@ -24,7 +24,8 @@ import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import java.lang.reflect.Type;
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoField;
|
||||
|
||||
/**
|
||||
* Serializer for Joda Time {@link LocalDate} that returns the date in array format to match previous Jackson
|
||||
@@ -38,8 +39,8 @@ public class JodaLocalDateAdapter implements JsonSerializer<LocalDate> {
|
||||
JsonArray array = null;
|
||||
if (src != null) {
|
||||
array = new JsonArray();
|
||||
array.add(new JsonPrimitive(src.getYearOfEra()));
|
||||
array.add(new JsonPrimitive(src.getMonthOfYear()));
|
||||
array.add(new JsonPrimitive(src.get(ChronoField.YEAR_OF_ERA)));
|
||||
array.add(new JsonPrimitive(src.getMonthValue()));
|
||||
array.add(new JsonPrimitive(src.getDayOfMonth()));
|
||||
}
|
||||
return array;
|
||||
|
||||
+4
-2
@@ -18,13 +18,15 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.core.api;
|
||||
|
||||
import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import java.lang.reflect.Type;
|
||||
import org.joda.time.MonthDay;
|
||||
import java.time.MonthDay;
|
||||
|
||||
/**
|
||||
* Serializer for Joda Time {@link MonthDay} that returns the date in array format to match previous Jackson
|
||||
@@ -38,7 +40,7 @@ public class JodaMonthDayAdapter implements JsonSerializer<MonthDay> {
|
||||
JsonArray array = null;
|
||||
if (src != null) {
|
||||
array = new JsonArray();
|
||||
array.add(new JsonPrimitive(src.getMonthOfYear()));
|
||||
array.add(new JsonPrimitive(src.get(MONTH_OF_YEAR)));
|
||||
array.add(new JsonPrimitive(src.getDayOfMonth()));
|
||||
}
|
||||
return array;
|
||||
|
||||
+8
-8
@@ -23,6 +23,11 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.MonthDay;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
@@ -34,11 +39,6 @@ import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.security.domain.BasicPasswordEncodablePlatformUser;
|
||||
import org.apache.fineract.infrastructure.security.domain.PlatformUser;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformPasswordEncoder;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.MonthDay;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
* Immutable representation of a command.
|
||||
@@ -368,7 +368,7 @@ public final class JsonCommand {
|
||||
public boolean isChangeInDateParameterNamed(final String parameterName, final Date existingValue) {
|
||||
LocalDate localDate = null;
|
||||
if (existingValue != null) {
|
||||
localDate = LocalDate.fromDateFields(existingValue);
|
||||
localDate = LocalDate.ofInstant(existingValue.toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return isChangeInLocalDateParameterNamed(parameterName, localDate);
|
||||
}
|
||||
@@ -376,7 +376,7 @@ public final class JsonCommand {
|
||||
public boolean isChangeInTimeParameterNamed(final String parameterName, final Date existingValue, final String timeFormat) {
|
||||
LocalDateTime time = null;
|
||||
if (existingValue != null) {
|
||||
DateTimeFormatter timeFormtter = DateTimeFormat.forPattern(timeFormat);
|
||||
DateTimeFormatter timeFormtter = DateTimeFormatter.ofPattern(timeFormat);
|
||||
time = LocalDateTime.parse(existingValue.toString(), timeFormtter);
|
||||
}
|
||||
return isChangeInLocalTimeParameterNamed(parameterName, time);
|
||||
@@ -417,7 +417,7 @@ public final class JsonCommand {
|
||||
if (localDate == null) {
|
||||
return null;
|
||||
}
|
||||
return localDate.toDateTimeAtStartOfDay().toDate();
|
||||
return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public boolean isChangeInStringParameterNamed(final String parameterName, final String existingValue) {
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@@ -30,7 +31,6 @@ import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||
import org.apache.fineract.infrastructure.security.domain.BasicPasswordEncodablePlatformUser;
|
||||
import org.apache.fineract.infrastructure.security.domain.PlatformUser;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformPasswordEncoder;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable representation of a query.
|
||||
|
||||
+1
-1
@@ -22,6 +22,7 @@ import com.google.common.base.Splitter;
|
||||
import com.google.gson.JsonArray;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -32,7 +33,6 @@ import net.fortuna.ical4j.model.property.RRule;
|
||||
import net.fortuna.ical4j.validate.ValidationException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.quartz.CronExpression;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
|
||||
+14
-13
@@ -24,10 +24,11 @@ import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalTime;
|
||||
import org.springframework.jdbc.support.JdbcUtils;
|
||||
|
||||
/**
|
||||
@@ -40,38 +41,38 @@ public final class JdbcSupport {
|
||||
|
||||
}
|
||||
|
||||
public static DateTime getDateTime(final ResultSet rs, final String columnName) throws SQLException {
|
||||
DateTime dateTime = null;
|
||||
public static ZonedDateTime getDateTime(final ResultSet rs, final String columnName) throws SQLException {
|
||||
ZonedDateTime dateTime = null;
|
||||
final Timestamp dateValue = rs.getTimestamp(columnName);
|
||||
if (dateValue != null) {
|
||||
dateTime = new DateTime(dateValue.getTime());
|
||||
dateTime = ZonedDateTime.ofInstant(new Date(dateValue.getTime()).toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
public static DateTime getLocalDateTime(final ResultSet rs, final String columnName) throws SQLException {
|
||||
DateTime dateTime = null;
|
||||
public static ZonedDateTime getLocalDateTime(final ResultSet rs, final String columnName) throws SQLException {
|
||||
ZonedDateTime dateTime = null;
|
||||
final Timestamp dateValue = rs.getTimestamp(columnName);
|
||||
if (dateValue != null) {
|
||||
dateTime = new DateTime(dateValue.getTime()).withZone(getDateTimeZoneOfTenant());
|
||||
dateTime = ZonedDateTime.ofInstant(new Date(dateValue.getTime()).toInstant(), getDateTimeZoneOfTenant());
|
||||
}
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
public static LocalDate getLocalDate(final ResultSet rs, final String columnName) throws SQLException {
|
||||
LocalDate localDate = null;
|
||||
final Date dateValue = rs.getDate(columnName);
|
||||
final Date dateValue = rs.getTimestamp(columnName);
|
||||
if (dateValue != null) {
|
||||
localDate = new LocalDate(dateValue);
|
||||
localDate = LocalDate.ofInstant(dateValue.toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return localDate;
|
||||
}
|
||||
|
||||
public static LocalTime getLocalTime(final ResultSet rs, final String columnName) throws SQLException {
|
||||
LocalTime localTime = null;
|
||||
final Date timeValue = rs.getTime(columnName);
|
||||
final Date timeValue = rs.getTimestamp(columnName);
|
||||
if (timeValue != null) {
|
||||
localTime = new LocalTime(timeValue);
|
||||
localTime = LocalTime.ofInstant(timeValue.toInstant(), ZoneId.systemDefault());
|
||||
}
|
||||
return localTime;
|
||||
}
|
||||
|
||||
+3
-3
@@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.core.domain;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import org.joda.time.Days;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public class LocalDateInterval {
|
||||
|
||||
@@ -50,7 +50,7 @@ public class LocalDateInterval {
|
||||
}
|
||||
|
||||
private Integer daysBetween() {
|
||||
return Days.daysBetween(this.startDate, this.endDate).getDays();
|
||||
return Math.toIntExact(ChronoUnit.DAYS.between(this.startDate, this.endDate));
|
||||
}
|
||||
|
||||
public boolean containsPortionOf(final LocalDateInterval interval) {
|
||||
|
||||
+3
-3
@@ -26,6 +26,9 @@ import com.google.gson.JsonParser;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.security.InvalidParameterException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.MonthDay;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -36,9 +39,6 @@ import java.util.Set;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
||||
import org.apache.fineract.infrastructure.core.exception.UnsupportedParameterException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.MonthDay;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+4
-4
@@ -21,6 +21,9 @@ package org.apache.fineract.infrastructure.core.serialization;
|
||||
import com.google.gson.ExclusionStrategy;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import java.time.LocalDate;
|
||||
import java.time.MonthDay;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
@@ -31,9 +34,6 @@ import org.apache.fineract.infrastructure.core.api.JodaMonthDayAdapter;
|
||||
import org.apache.fineract.infrastructure.core.api.ParameterListExclusionStrategy;
|
||||
import org.apache.fineract.infrastructure.core.api.ParameterListInclusionStrategy;
|
||||
import org.apache.fineract.infrastructure.core.exception.UnsupportedParameterException;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.MonthDay;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
@@ -102,7 +102,7 @@ public final class GoogleGsonSerializerHelper {
|
||||
public static void registerTypeAdapters(final GsonBuilder builder) {
|
||||
builder.registerTypeAdapter(java.util.Date.class, new DateAdapter());
|
||||
builder.registerTypeAdapter(LocalDate.class, new JodaLocalDateAdapter());
|
||||
builder.registerTypeAdapter(DateTime.class, new JodaDateTimeAdapter());
|
||||
builder.registerTypeAdapter(ZonedDateTime.class, new JodaDateTimeAdapter());
|
||||
builder.registerTypeAdapter(MonthDay.class, new JodaMonthDayAdapter());
|
||||
}
|
||||
}
|
||||
|
||||
+21
-11
@@ -18,6 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.core.serialization;
|
||||
|
||||
import static java.time.temporal.ChronoField.DAY_OF_MONTH;
|
||||
import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
|
||||
import static java.time.temporal.ChronoField.YEAR_OF_ERA;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
@@ -27,6 +31,13 @@ import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.MonthDay;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -35,11 +46,6 @@ import java.util.Set;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.MonthDay;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.springframework.format.number.NumberStyleFormatter;
|
||||
|
||||
/**
|
||||
@@ -303,7 +309,7 @@ public class JsonParserHelper {
|
||||
final Integer month = dateArray.get(1).getAsInt();
|
||||
final Integer day = dateArray.get(2).getAsInt();
|
||||
|
||||
value = new LocalDate().withYearOfEra(year).withMonthOfYear(month).withDayOfMonth(day);
|
||||
value = LocalDate.now(ZoneId.systemDefault()).with(YEAR_OF_ERA, year).with(MONTH_OF_YEAR, month).with(DAY_OF_MONTH, day);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -336,8 +342,9 @@ public class JsonParserHelper {
|
||||
final String valueAsString = primitive.getAsString();
|
||||
if (StringUtils.isNotBlank(valueAsString)) {
|
||||
try {
|
||||
final DateTimeFormatter formatter = DateTimeFormat.forPattern(dateFormat).withLocale(clientApplicationLocale);
|
||||
value = MonthDay.parse(valueAsString.toLowerCase(clientApplicationLocale), formatter);
|
||||
final DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern(dateFormat).toFormatter(clientApplicationLocale);
|
||||
value = MonthDay.parse(valueAsString, formatter);
|
||||
} catch (final IllegalArgumentException e) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final ApiParameterError error = ApiParameterError.parameterError("validation.msg.invalid.month.day",
|
||||
@@ -406,7 +413,7 @@ public class JsonParserHelper {
|
||||
parametersPassedInCommand.add(parameterName);
|
||||
|
||||
try {
|
||||
DateTimeFormatter timeFormtter = DateTimeFormat.forPattern(timeFormat);
|
||||
DateTimeFormatter timeFormtter = DateTimeFormatter.ofPattern(timeFormat);
|
||||
final JsonPrimitive primitive = object.get(parameterName).getAsJsonPrimitive();
|
||||
timeValueAsString = primitive.getAsString();
|
||||
if (StringUtils.isNotBlank(timeValueAsString)) {
|
||||
@@ -462,8 +469,11 @@ public class JsonParserHelper {
|
||||
LocalDateTime eventLocalDateTime = null;
|
||||
if (StringUtils.isNotBlank(dateTimeAsString)) {
|
||||
try {
|
||||
eventLocalDateTime = DateTimeFormat.forPattern(dateTimeFormat).withLocale(clientApplicationLocale)
|
||||
.parseLocalDateTime(dateTimeAsString.toLowerCase(clientApplicationLocale));
|
||||
DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive().parseLenient()
|
||||
.appendPattern(dateTimeFormat).optionalStart().appendPattern(" HH:mm:ss").optionalEnd()
|
||||
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0).parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
|
||||
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0).toFormatter(clientApplicationLocale);
|
||||
eventLocalDateTime = LocalDateTime.parse(dateTimeAsString, formatter);
|
||||
} catch (final IllegalArgumentException e) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
final ApiParameterError error = ApiParameterError
|
||||
|
||||
+17
-19
@@ -20,6 +20,11 @@ package org.apache.fineract.infrastructure.core.service;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -27,12 +32,6 @@ 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.exception.PlatformApiDataValidationException;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
|
||||
public final class DateUtils {
|
||||
|
||||
@@ -40,11 +39,11 @@ public final class DateUtils {
|
||||
|
||||
}
|
||||
|
||||
public static DateTimeZone getDateTimeZoneOfTenant() {
|
||||
public static ZoneId getDateTimeZoneOfTenant() {
|
||||
final FineractPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
|
||||
DateTimeZone zone = null;
|
||||
ZoneId zone = null;
|
||||
if (tenant != null) {
|
||||
zone = DateTimeZone.forID(tenant.getTimezoneId());
|
||||
zone = ZoneId.of(tenant.getTimezoneId());
|
||||
}
|
||||
return zone;
|
||||
}
|
||||
@@ -59,16 +58,16 @@ public final class DateUtils {
|
||||
}
|
||||
|
||||
public static Date getDateOfTenant() {
|
||||
return getLocalDateOfTenant().toDateTimeAtStartOfDay().toDate();
|
||||
return Date.from(getLocalDateOfTenant().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public static LocalDate getLocalDateOfTenant() {
|
||||
|
||||
LocalDate today = new LocalDate();
|
||||
LocalDate today = LocalDate.now(ZoneId.systemDefault());
|
||||
|
||||
final DateTimeZone zone = getDateTimeZoneOfTenant();
|
||||
final ZoneId zone = getDateTimeZoneOfTenant();
|
||||
if (zone != null) {
|
||||
today = new LocalDate(zone);
|
||||
today = LocalDate.now(zone);
|
||||
}
|
||||
|
||||
return today;
|
||||
@@ -76,11 +75,11 @@ public final class DateUtils {
|
||||
|
||||
public static LocalDateTime getLocalDateTimeOfTenant() {
|
||||
|
||||
LocalDateTime today = new LocalDateTime();
|
||||
LocalDateTime today = LocalDateTime.now(ZoneId.systemDefault());
|
||||
|
||||
final DateTimeZone zone = getDateTimeZoneOfTenant();
|
||||
final ZoneId zone = getDateTimeZoneOfTenant();
|
||||
if (zone != null) {
|
||||
today = new LocalDateTime(zone);
|
||||
today = LocalDateTime.now(zone);
|
||||
}
|
||||
|
||||
return today;
|
||||
@@ -89,9 +88,8 @@ public final class DateUtils {
|
||||
public static LocalDate parseLocalDate(final String stringDate, final String pattern) {
|
||||
|
||||
try {
|
||||
final DateTimeFormatter dateStringFormat = DateTimeFormat.forPattern(pattern);
|
||||
dateStringFormat.withZone(getDateTimeZoneOfTenant());
|
||||
final DateTime dateTime = dateStringFormat.parseDateTime(stringDate);
|
||||
final DateTimeFormatter dateStringFormat = DateTimeFormatter.ofPattern(pattern).withZone(getDateTimeZoneOfTenant());
|
||||
final ZonedDateTime dateTime = ZonedDateTime.parse(stringDate, dateStringFormat);
|
||||
return dateTime.toLocalDate();
|
||||
} catch (final IllegalArgumentException e) {
|
||||
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
|
||||
|
||||
+9
-9
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.dataqueries.service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.sql.DataSource;
|
||||
@@ -28,8 +31,6 @@ import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeader
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnValueData;
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetRowData;
|
||||
import org.apache.fineract.infrastructure.dataqueries.exception.DatatableNotFoundException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -161,15 +162,14 @@ public class GenericDataServiceImpl implements GenericDataService {
|
||||
writer.append(currVal);
|
||||
} else {
|
||||
if (currColType.equals("DATE")) {
|
||||
final LocalDate localDate = new LocalDate(currVal);
|
||||
final LocalDate localDate = LocalDate.parse(currVal);
|
||||
writer.append(
|
||||
"[" + localDate.getYear() + ", " + localDate.getMonthOfYear() + ", " + localDate.getDayOfMonth() + "]");
|
||||
"[" + localDate.getYear() + ", " + localDate.getMonthValue() + ", " + localDate.getDayOfMonth() + "]");
|
||||
} else if (currColType.equals("DATETIME")) {
|
||||
final LocalDateTime localDateTime = new LocalDateTime(currVal);
|
||||
writer.append("[" + localDateTime.getYear() + ", " + localDateTime.getMonthOfYear() + ", "
|
||||
+ localDateTime.getDayOfMonth() + " " + localDateTime.getHourOfDay() + ", "
|
||||
+ localDateTime.getMinuteOfHour() + ", " + localDateTime.getSecondOfMinute() + ", "
|
||||
+ localDateTime.getMillisOfSecond() + "]");
|
||||
final LocalDateTime localDateTime = LocalDateTime.parse(currVal);
|
||||
writer.append("[" + localDateTime.getYear() + ", " + localDateTime.getMonthValue() + ", "
|
||||
+ localDateTime.getDayOfMonth() + " " + localDateTime.getHour() + ", " + localDateTime.getMinute()
|
||||
+ ", " + localDateTime.getSecond() + ", " + localDateTime.get(ChronoField.MILLI_OF_SECOND) + "]");
|
||||
} else {
|
||||
writer.append(doubleQuote + replace(currVal, doubleQuote, slashDoubleQuote) + doubleQuote);
|
||||
}
|
||||
|
||||
+2
-2
@@ -26,6 +26,8 @@ import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -67,8 +69,6 @@ import org.apache.fineract.infrastructure.security.service.PlatformSecurityConte
|
||||
import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
|
||||
import org.apache.fineract.infrastructure.security.utils.SQLInjectionValidator;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
+1
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.entityaccess.data;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -42,7 +43,6 @@ import org.apache.fineract.portfolio.savings.domain.SavingsProductRepository;
|
||||
import org.apache.fineract.portfolio.savings.exception.SavingsProductNotFoundException;
|
||||
import org.apache.fineract.useradministration.domain.RoleRepository;
|
||||
import org.apache.fineract.useradministration.exception.RoleNotFoundException;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.gcm.domain;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
@@ -50,7 +51,7 @@ public final class DeviceRegistration extends AbstractPersistableCustom {
|
||||
private DeviceRegistration(final Client client, final String registrationId) {
|
||||
this.client = client;
|
||||
this.registrationId = registrationId;
|
||||
this.updatedOnDate = DateUtils.getLocalDateTimeOfTenant().toDate();
|
||||
this.updatedOnDate = Date.from(DateUtils.getLocalDateTimeOfTenant().atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public static DeviceRegistration instance(final Client client, final String registrationId) {
|
||||
|
||||
+5
-2
@@ -20,14 +20,16 @@ package org.apache.fineract.infrastructure.gcm.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||
import org.apache.fineract.infrastructure.gcm.domain.DeviceRegistrationData;
|
||||
import org.apache.fineract.infrastructure.gcm.exception.DeviceRegistrationNotFoundException;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.portfolio.client.data.ClientData;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -72,7 +74,8 @@ public class DeviceRegistrationReadPlatformServiceImpl implements DeviceRegistra
|
||||
final Long clientId = rs.getLong("clientId");
|
||||
final String clientName = rs.getString("clientName");
|
||||
ClientData clientData = ClientData.instance(clientId, clientName);
|
||||
return DeviceRegistrationData.instance(id, clientData, registrationId, updatedOnDate.toDate());
|
||||
return DeviceRegistrationData.instance(id, clientData, registrationId,
|
||||
Date.from(updatedOnDate.atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.gcm.service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import javax.persistence.PersistenceException;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
||||
@@ -93,7 +95,7 @@ public class DeviceRegistrationWritePlatformServiceImpl implements DeviceRegistr
|
||||
Client client = this.clientRepositoryWrapper.findOneWithNotFoundDetection(clientId);
|
||||
deviceRegistration.setClient(client);
|
||||
deviceRegistration.setRegistrationId(registrationId);
|
||||
deviceRegistration.setUpdatedOnDate(DateUtils.getLocalDateTimeOfTenant().toDate());
|
||||
deviceRegistration.setUpdatedOnDate(Date.from(DateUtils.getLocalDateTimeOfTenant().atZone(ZoneId.systemDefault()).toInstant()));
|
||||
return deviceRegistration;
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -19,8 +19,10 @@
|
||||
package org.apache.fineract.infrastructure.gcm.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -107,7 +109,8 @@ public class NotificationSenderService {
|
||||
res = s.send(msg, registrationId, 3);
|
||||
if (res.getSuccess() != null && res.getSuccess() > 0) {
|
||||
smsMessage.setStatusType(SmsMessageStatusType.SENT.getValue());
|
||||
smsMessage.setDeliveredOnDate(DateUtils.getLocalDateOfTenant().toDate());
|
||||
smsMessage.setDeliveredOnDate(
|
||||
Date.from(DateUtils.getLocalDateOfTenant().atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
||||
} else if (res.getFailure() != null && res.getFailure() > 0) {
|
||||
smsMessage.setStatusType(SmsMessageStatusType.FAILED.getValue());
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,12 +19,12 @@
|
||||
package org.apache.fineract.infrastructure.hooks.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.hooks.data.Event;
|
||||
import org.apache.fineract.infrastructure.hooks.data.Field;
|
||||
import org.apache.fineract.infrastructure.hooks.data.Grouping;
|
||||
import org.apache.fineract.infrastructure.hooks.data.HookTemplateData;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Created by sanyam on 11/8/17.
|
||||
|
||||
+1
-1
@@ -19,8 +19,8 @@
|
||||
package org.apache.fineract.infrastructure.hooks.data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import org.joda.time.LocalDate;
|
||||
|
||||
public final class HookData implements Serializable {
|
||||
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ package org.apache.fineract.infrastructure.hooks.service;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||
@@ -34,7 +35,6 @@ import org.apache.fineract.infrastructure.hooks.domain.Hook;
|
||||
import org.apache.fineract.infrastructure.hooks.domain.HookRepository;
|
||||
import org.apache.fineract.infrastructure.hooks.exception.HookNotFoundException;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
|
||||
+6
-6
@@ -19,11 +19,11 @@
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.ReportData;
|
||||
import org.apache.fineract.infrastructure.reportmailingjob.data.ReportMailingJobTimelineData;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
/**
|
||||
* Created by sanyam on 13/8/17.
|
||||
@@ -61,7 +61,7 @@ final class ReportMailingJobApiResourceSwagger {
|
||||
@Schema(example = "Client Numbers Report")
|
||||
public String description;
|
||||
@Schema(example = "1469627093000")
|
||||
public DateTime startDateTime;
|
||||
public ZonedDateTime startDateTime;
|
||||
@Schema(example = "")
|
||||
public String recurrence;
|
||||
public ReportMailingJobTimelineData timeline;
|
||||
@@ -78,7 +78,7 @@ final class ReportMailingJobApiResourceSwagger {
|
||||
@Schema(example = "{\"startDate\":\"2016-07-01\",\"endDate\":\"2016-08-02\",\"selectOffice\":\"1\",\"environementUrl\":\"environementUrl\"}")
|
||||
public String stretchyReportParamMap;
|
||||
@Schema(example = "1469627093000")
|
||||
public DateTime nextRunDateTime;
|
||||
public ZonedDateTime nextRunDateTime;
|
||||
@Schema(example = "0")
|
||||
public Integer numberOfRuns;
|
||||
@Schema(example = "true")
|
||||
@@ -103,7 +103,7 @@ final class ReportMailingJobApiResourceSwagger {
|
||||
@Schema(example = "Client Numbers Report")
|
||||
public String description;
|
||||
@Schema(example = "1469627093000")
|
||||
public DateTime startDateTime;
|
||||
public ZonedDateTime startDateTime;
|
||||
@Schema(example = "120")
|
||||
public Long stretchyReportId;
|
||||
@Schema(example = "info@musonisystem.com")
|
||||
@@ -144,7 +144,7 @@ final class ReportMailingJobApiResourceSwagger {
|
||||
@Schema(example = "dd-MM-yyyy HH:mm:ss")
|
||||
public String dateFormat;
|
||||
@Schema(example = "10-08-2016 23:30:00")
|
||||
public DateTime startDateTime;
|
||||
public ZonedDateTime startDateTime;
|
||||
}
|
||||
|
||||
@Schema(description = "PutReportMailingJobsResponse")
|
||||
@@ -159,7 +159,7 @@ final class ReportMailingJobApiResourceSwagger {
|
||||
private PutReportMailingJobsResponseChanges() {}
|
||||
|
||||
@Schema(example = "10-08-2016 23:30:00")
|
||||
public DateTime startDateTime;
|
||||
public ZonedDateTime startDateTime;
|
||||
}
|
||||
|
||||
@Schema(example = "1")
|
||||
|
||||
+3
-3
@@ -19,7 +19,7 @@
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.api;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
/**
|
||||
* Created by sanyam on 13/8/17.
|
||||
@@ -42,9 +42,9 @@ final class ReportMailingJobRunHistoryApiResourceSwagger {
|
||||
@Schema(example = "1")
|
||||
public Long reportMailingJobId;
|
||||
@Schema(example = "1469627093050")
|
||||
public DateTime startDateTime;
|
||||
public ZonedDateTime startDateTime;
|
||||
@Schema(example = "1469627093050")
|
||||
public DateTime endDateTime;
|
||||
public ZonedDateTime endDateTime;
|
||||
@Schema(example = "success")
|
||||
public String status;
|
||||
@Schema(example = "")
|
||||
|
||||
+16
-15
@@ -18,10 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.data;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.infrastructure.dataqueries.data.ReportData;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
/**
|
||||
* Immutable data object representing report mailing job data.
|
||||
@@ -31,7 +31,7 @@ public final class ReportMailingJobData {
|
||||
private final Long id;
|
||||
private final String name;
|
||||
private final String description;
|
||||
private final DateTime startDateTime;
|
||||
private final ZonedDateTime startDateTime;
|
||||
private final String recurrence;
|
||||
private final ReportMailingJobTimelineData timeline;
|
||||
private final String emailRecipients;
|
||||
@@ -40,8 +40,8 @@ public final class ReportMailingJobData {
|
||||
private final EnumOptionData emailAttachmentFileFormat;
|
||||
private final ReportData stretchyReport;
|
||||
private final String stretchyReportParamMap;
|
||||
private final DateTime previousRunDateTime;
|
||||
private final DateTime nextRunDateTime;
|
||||
private final ZonedDateTime previousRunDateTime;
|
||||
private final ZonedDateTime nextRunDateTime;
|
||||
private final String previousRunStatus;
|
||||
private final String previousRunErrorLog;
|
||||
private final String previousRunErrorMessage;
|
||||
@@ -51,10 +51,10 @@ public final class ReportMailingJobData {
|
||||
private final List<EnumOptionData> stretchyReportParamDateOptions;
|
||||
private final Long runAsUserId;
|
||||
|
||||
private ReportMailingJobData(final Long id, final String name, final String description, final DateTime startDateTime,
|
||||
private ReportMailingJobData(final Long id, final String name, final String description, final ZonedDateTime startDateTime,
|
||||
final String recurrence, final ReportMailingJobTimelineData timeline, final String emailRecipients, final String emailSubject,
|
||||
final String emailMessage, final EnumOptionData emailAttachmentFileFormat, final ReportData stretchyReport,
|
||||
final String stretchyReportParamMap, final DateTime previousRunDateTime, final DateTime nextRunDateTime,
|
||||
final String stretchyReportParamMap, final ZonedDateTime previousRunDateTime, final ZonedDateTime nextRunDateTime,
|
||||
final String previousRunStatus, final String previousRunErrorLog, final String previousRunErrorMessage,
|
||||
final Integer numberOfRuns, final boolean isActive, final List<EnumOptionData> emailAttachmentFileFormatOptions,
|
||||
final List<EnumOptionData> stretchyReportParamDateOptions, final Long runAsUserId) {
|
||||
@@ -85,12 +85,13 @@ public final class ReportMailingJobData {
|
||||
/**
|
||||
* @return an instance of the ReportMailingJobData class
|
||||
**/
|
||||
public static ReportMailingJobData newInstance(final Long id, final String name, final String description, final DateTime startDateTime,
|
||||
final String recurrence, final ReportMailingJobTimelineData timeline, final String emailRecipients, final String emailSubject,
|
||||
final String emailMessage, final EnumOptionData emailAttachmentFileFormat, final ReportData stretchyReport,
|
||||
final String stretchyReportParamMap, final DateTime previousRunDateTime, final DateTime nextRunDateTime,
|
||||
final String previousRunStatus, final String previousRunErrorLog, final String previousRunErrorMessage,
|
||||
final Integer numberOfRuns, final boolean isActive, final Long runAsUserId) {
|
||||
public static ReportMailingJobData newInstance(final Long id, final String name, final String description,
|
||||
final ZonedDateTime startDateTime, final String recurrence, final ReportMailingJobTimelineData timeline,
|
||||
final String emailRecipients, final String emailSubject, final String emailMessage,
|
||||
final EnumOptionData emailAttachmentFileFormat, final ReportData stretchyReport, final String stretchyReportParamMap,
|
||||
final ZonedDateTime previousRunDateTime, final ZonedDateTime nextRunDateTime, final String previousRunStatus,
|
||||
final String previousRunErrorLog, final String previousRunErrorMessage, final Integer numberOfRuns, final boolean isActive,
|
||||
final Long runAsUserId) {
|
||||
return new ReportMailingJobData(id, name, description, startDateTime, recurrence, timeline, emailRecipients, emailSubject,
|
||||
emailMessage, emailAttachmentFileFormat, stretchyReport, stretchyReportParamMap, previousRunDateTime, nextRunDateTime,
|
||||
previousRunStatus, previousRunErrorLog, previousRunErrorMessage, numberOfRuns, isActive, null, null, runAsUserId);
|
||||
@@ -145,7 +146,7 @@ public final class ReportMailingJobData {
|
||||
/**
|
||||
* @return the startDateTime
|
||||
*/
|
||||
public DateTime getStartDateTime() {
|
||||
public ZonedDateTime getStartDateTime() {
|
||||
return startDateTime;
|
||||
}
|
||||
|
||||
@@ -208,14 +209,14 @@ public final class ReportMailingJobData {
|
||||
/**
|
||||
* @return the previousRunDateTime
|
||||
*/
|
||||
public DateTime getPreviousRunDateTime() {
|
||||
public ZonedDateTime getPreviousRunDateTime() {
|
||||
return previousRunDateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the nextRunDateTime
|
||||
*/
|
||||
public DateTime getNextRunDateTime() {
|
||||
public ZonedDateTime getNextRunDateTime() {
|
||||
return nextRunDateTime;
|
||||
}
|
||||
|
||||
|
||||
+9
-9
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.data;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
/**
|
||||
* Immutable data object representing report mailing job run history data.
|
||||
@@ -27,8 +27,8 @@ public final class ReportMailingJobRunHistoryData {
|
||||
|
||||
private final Long id;
|
||||
private final Long reportMailingJobId;
|
||||
private final DateTime startDateTime;
|
||||
private final DateTime endDateTime;
|
||||
private final ZonedDateTime startDateTime;
|
||||
private final ZonedDateTime endDateTime;
|
||||
private final String status;
|
||||
private final String errorMessage;
|
||||
private final String errorLog;
|
||||
@@ -36,8 +36,8 @@ public final class ReportMailingJobRunHistoryData {
|
||||
/**
|
||||
* ReportMailingJobRunHistoryData private constructor
|
||||
**/
|
||||
private ReportMailingJobRunHistoryData(Long id, Long reportMailingJobId, DateTime startDateTime, DateTime endDateTime, String status,
|
||||
String errorMessage, String errorLog) {
|
||||
private ReportMailingJobRunHistoryData(Long id, Long reportMailingJobId, ZonedDateTime startDateTime, ZonedDateTime endDateTime,
|
||||
String status, String errorMessage, String errorLog) {
|
||||
this.id = id;
|
||||
this.reportMailingJobId = reportMailingJobId;
|
||||
this.startDateTime = startDateTime;
|
||||
@@ -52,8 +52,8 @@ public final class ReportMailingJobRunHistoryData {
|
||||
*
|
||||
* @return ReportMailingJobRunHistoryData object
|
||||
**/
|
||||
public static ReportMailingJobRunHistoryData newInstance(Long id, Long reportMailingJobId, DateTime startDateTime, DateTime endDateTime,
|
||||
String status, String errorMessage, String errorLog) {
|
||||
public static ReportMailingJobRunHistoryData newInstance(Long id, Long reportMailingJobId, ZonedDateTime startDateTime,
|
||||
ZonedDateTime endDateTime, String status, String errorMessage, String errorLog) {
|
||||
return new ReportMailingJobRunHistoryData(id, reportMailingJobId, startDateTime, endDateTime, status, errorMessage, errorLog);
|
||||
}
|
||||
|
||||
@@ -74,14 +74,14 @@ public final class ReportMailingJobRunHistoryData {
|
||||
/**
|
||||
* @return the startDateTime
|
||||
*/
|
||||
public DateTime getStartDateTime() {
|
||||
public ZonedDateTime getStartDateTime() {
|
||||
return startDateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the endDateTime
|
||||
*/
|
||||
public DateTime getEndDateTime() {
|
||||
public ZonedDateTime getEndDateTime() {
|
||||
return endDateTime;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.data;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Immutable data object represent the timeline events of a report mailing job (creation)
|
||||
|
||||
+25
-22
@@ -18,6 +18,10 @@
|
||||
*/
|
||||
package org.apache.fineract.infrastructure.reportmailingjob.domain;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
@@ -37,10 +41,6 @@ import org.apache.fineract.infrastructure.reportmailingjob.ReportMailingJobConst
|
||||
import org.apache.fineract.infrastructure.reportmailingjob.data.ReportMailingJobEmailAttachmentFileFormat;
|
||||
import org.apache.fineract.infrastructure.reportmailingjob.data.ReportMailingJobPreviousRunStatus;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
|
||||
@Entity
|
||||
@Table(name = "m_report_mailing_job", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unique_name") })
|
||||
@@ -129,7 +129,7 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
this.startDateTime = null;
|
||||
|
||||
if (startDateTime != null) {
|
||||
this.startDateTime = startDateTime.toDate();
|
||||
this.startDateTime = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
this.recurrence = recurrence;
|
||||
@@ -142,13 +142,13 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
this.previousRunDateTime = null;
|
||||
|
||||
if (previousRunDateTime != null) {
|
||||
this.previousRunDateTime = previousRunDateTime.toDate();
|
||||
this.previousRunDateTime = Date.from(previousRunDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
this.nextRunDateTime = null;
|
||||
|
||||
if (nextRunDateTime != null) {
|
||||
this.nextRunDateTime = nextRunDateTime.toDate();
|
||||
this.nextRunDateTime = Date.from(nextRunDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
this.previousRunStatus = null;
|
||||
@@ -201,14 +201,14 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
.integerValueOfParameterNamed(ReportMailingJobConstants.EMAIL_ATTACHMENT_FILE_FORMAT_ID_PARAM_NAME);
|
||||
final ReportMailingJobEmailAttachmentFileFormat emailAttachmentFileFormat = ReportMailingJobEmailAttachmentFileFormat
|
||||
.newInstance(emailAttachmentFileFormatId);
|
||||
LocalDateTime startDateTime = new LocalDateTime();
|
||||
LocalDateTime startDateTime = LocalDateTime.now(ZoneId.systemDefault());
|
||||
|
||||
if (jsonCommand.hasParameter(ReportMailingJobConstants.START_DATE_TIME_PARAM_NAME)) {
|
||||
final String startDateTimeString = jsonCommand
|
||||
.stringValueOfParameterNamed(ReportMailingJobConstants.START_DATE_TIME_PARAM_NAME);
|
||||
|
||||
if (startDateTimeString != null) {
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(jsonCommand.dateFormat())
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(jsonCommand.dateFormat())
|
||||
.withLocale(jsonCommand.extractLocale());
|
||||
startDateTime = LocalDateTime.parse(startDateTimeString, dateTimeFormatter);
|
||||
}
|
||||
@@ -304,15 +304,17 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
final String newStartDateTimeString = jsonCommand.stringValueOfParameterNamed(ReportMailingJobConstants.START_DATE_TIME_PARAM_NAME);
|
||||
|
||||
if (!StringUtils.isEmpty(newStartDateTimeString)) {
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(jsonCommand.dateFormat())
|
||||
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(jsonCommand.dateFormat())
|
||||
.withLocale(jsonCommand.extractLocale());
|
||||
final LocalDateTime newStartDateTime = LocalDateTime.parse(newStartDateTimeString, dateTimeFormatter);
|
||||
final LocalDateTime oldStartDateTime = (this.startDateTime != null) ? new LocalDateTime(this.startDateTime) : null;
|
||||
final LocalDateTime oldStartDateTime = (this.startDateTime != null)
|
||||
? ZonedDateTime.ofInstant(this.startDateTime.toInstant(), ZoneId.systemDefault()).toLocalDateTime()
|
||||
: null;
|
||||
|
||||
if ((oldStartDateTime != null) && !newStartDateTime.equals(oldStartDateTime)) {
|
||||
actualChanges.put(ReportMailingJobConstants.START_DATE_TIME_PARAM_NAME, newStartDateTimeString);
|
||||
|
||||
this.startDateTime = newStartDateTime.toDate();
|
||||
this.startDateTime = Date.from(newStartDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,8 +374,8 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
/**
|
||||
* @return the value of the startDateTime property
|
||||
**/
|
||||
public DateTime getStartDateTime() {
|
||||
return (this.startDateTime != null) ? new DateTime(this.startDateTime) : null;
|
||||
public ZonedDateTime getStartDateTime() {
|
||||
return (this.startDateTime != null) ? ZonedDateTime.ofInstant(this.startDateTime.toInstant(), ZoneId.systemDefault()) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -456,15 +458,16 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
/**
|
||||
* @return the previousRunDateTime
|
||||
*/
|
||||
public DateTime getPreviousRunDateTime() {
|
||||
return (this.previousRunDateTime != null) ? new DateTime(this.previousRunDateTime) : null;
|
||||
public ZonedDateTime getPreviousRunDateTime() {
|
||||
return (this.previousRunDateTime != null) ? ZonedDateTime.ofInstant(this.previousRunDateTime.toInstant(), ZoneId.systemDefault())
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the nextRunDateTime
|
||||
*/
|
||||
public DateTime getNextRunDateTime() {
|
||||
return (this.nextRunDateTime != null) ? new DateTime(this.nextRunDateTime) : null;
|
||||
public ZonedDateTime getNextRunDateTime() {
|
||||
return (this.nextRunDateTime != null) ? ZonedDateTime.ofInstant(this.nextRunDateTime.toInstant(), ZoneId.systemDefault()) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -531,9 +534,9 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
* -- previous run date
|
||||
*
|
||||
**/
|
||||
public void updatePreviousRunDateTime(final DateTime previousRunDateTime) {
|
||||
public void updatePreviousRunDateTime(final ZonedDateTime previousRunDateTime) {
|
||||
if (previousRunDateTime != null) {
|
||||
this.previousRunDateTime = previousRunDateTime.toDate();
|
||||
this.previousRunDateTime = Date.from(previousRunDateTime.toInstant());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -544,9 +547,9 @@ public class ReportMailingJob extends AbstractAuditableCustom {
|
||||
* -- the next run DateTime
|
||||
*
|
||||
**/
|
||||
public void updateNextRunDateTime(final DateTime nextRunDateTime) {
|
||||
public void updateNextRunDateTime(final ZonedDateTime nextRunDateTime) {
|
||||
if (nextRunDateTime != null) {
|
||||
this.nextRunDateTime = nextRunDateTime.toDate();
|
||||
this.nextRunDateTime = Date.from(nextRunDateTime.toInstant());
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user