diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java index c3eb7d825..3b8a869e3 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java @@ -20,6 +20,7 @@ package org.apache.fineract.portfolio.account.data; import java.io.Serializable; import java.math.BigDecimal; +import java.util.Optional; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -69,7 +70,7 @@ public class PortfolioAccountData implements Serializable { this.amtForTransfer = null; } - public String getCurrencyCode() { - return this.currency.getCode(); + public String getCurrencyCodeFromCurrency() { + return Optional.ofNullable(getCurrency()).map(CurrencyData::getCode).orElse(null); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java index 6a54364e8..25209d0c8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionHistoryApiResource.java @@ -30,17 +30,12 @@ import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.QueryParam; -import jakarta.ws.rs.core.Context; import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.UriInfo; import java.time.LocalDate; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; -import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper; import org.apache.fineract.infrastructure.core.api.DateParam; import org.apache.fineract.infrastructure.core.data.DateFormat; -import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings; -import org.apache.fineract.infrastructure.core.serialization.DefaultToApiJsonSerializer; import org.apache.fineract.infrastructure.core.service.Page; import org.apache.fineract.infrastructure.core.service.SearchParameters; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; @@ -57,8 +52,6 @@ import org.springframework.stereotype.Component; public class StandingInstructionHistoryApiResource { private final PlatformSecurityContext context; - private final DefaultToApiJsonSerializer toApiJsonSerializer; - private final ApiRequestParameterHelper apiRequestParameterHelper; private final StandingInstructionHistoryReadPlatformService standingInstructionHistoryReadPlatformService; private final SqlValidator sqlValidator; @@ -70,7 +63,7 @@ public class StandingInstructionHistoryApiResource { + "standinginstructionrunhistory?orderBy=name&sortOrder=DESC\n" + "\n" + "standinginstructionrunhistory?offset=10&limit=50") @ApiResponses({ @ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = StandingInstructionHistoryApiResourceSwagger.GetStandingInstructionRunHistoryResponse.class))) }) - public String retrieveAll(@Context final UriInfo uriInfo, + public Page retrieveAll( @QueryParam("externalId") @Parameter(description = "externalId") final String externalId, @QueryParam("offset") @Parameter(description = "offset") final Integer offset, @QueryParam("limit") @Parameter(description = "limit") final Integer limit, @@ -107,10 +100,6 @@ public class StandingInstructionHistoryApiResource { StandingInstructionDTO standingInstructionDTO = new StandingInstructionDTO(searchParameters, transferType, clientName, clientId, fromAccount, fromAccountType, startDateRange, endDateRange); - final Page history = this.standingInstructionHistoryReadPlatformService - .retrieveAll(standingInstructionDTO); - - final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); - return this.toApiJsonSerializer.serialize(settings, history); + return standingInstructionHistoryReadPlatformService.retrieveAll(standingInstructionDTO); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/StandingInstructionHistoryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/StandingInstructionHistoryData.java index ee9cd966e..101677aca 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/StandingInstructionHistoryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/StandingInstructionHistoryData.java @@ -18,14 +18,23 @@ */ package org.apache.fineract.portfolio.account.data; +import java.io.Serial; +import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.office.data.OfficeData; import org.apache.fineract.portfolio.client.data.ClientData; +@Getter @SuppressWarnings("unused") -public class StandingInstructionHistoryData { +@RequiredArgsConstructor +public class StandingInstructionHistoryData implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; private final Long standingInstructionId; private final String name; @@ -42,24 +51,4 @@ public class StandingInstructionHistoryData { private final LocalDate executionTime; private final String errorLog; - public StandingInstructionHistoryData(final Long standingInstructionId, final String name, final OfficeData fromOffice, - final ClientData fromClient, final EnumOptionData fromAccountType, final PortfolioAccountData fromAccount, - final EnumOptionData toAccountType, final PortfolioAccountData toAccount, final OfficeData toOffice, final ClientData toClient, - final BigDecimal amount, final String status, final LocalDate executionTime, final String errorLog) { - this.standingInstructionId = standingInstructionId; - this.name = name; - this.fromOffice = fromOffice; - this.fromClient = fromClient; - this.fromAccountType = fromAccountType; - this.toAccountType = toAccountType; - this.fromAccount = fromAccount; - this.toAccount = toAccount; - this.toOffice = toOffice; - this.toClient = toClient; - this.amount = amount; - this.errorLog = errorLog; - this.status = status; - this.executionTime = executionTime; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java index 5ad7d0436..ff1a85367 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java @@ -146,7 +146,7 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.getCurrencyCode()); + fromAccount.getCurrencyCodeFromCurrency()); mostRelevantToClientId = toAccount.getClientId(); } @@ -179,7 +179,8 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers private Collection retrieveToAccounts(final PortfolioAccountData excludeThisAccountFromOptions, final Integer toAccountType, final Long toClientId) { - final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCode() : null; + final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCodeFromCurrency() + : null; PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(toAccountType, toClientId, currencyCode, null, null); Collection accountOptions = this.portfolioAccountReadPlatformService @@ -379,7 +380,7 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.getCurrencyCode()); + fromAccount.getCurrencyCodeFromCurrency()); mostRelevantToClientId = toAccount.getClientId(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java index 751e1c406..7e86160e2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java @@ -188,7 +188,7 @@ public class StandingInstructionReadPlatformServiceImpl implements StandingInstr if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.getCurrencyCode()); + fromAccount.getCurrencyCodeFromCurrency()); mostRelevantToClientId = toAccount.getClientId(); } @@ -239,7 +239,8 @@ public class StandingInstructionReadPlatformServiceImpl implements StandingInstr private Collection retrieveToAccounts(final PortfolioAccountData excludeThisAccountFromOptions, final Integer toAccountType, final Long toClientId) { - final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCode() : null; + final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCodeFromCurrency() + : null; PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(toAccountType, toClientId, currencyCode, null, null); Collection accountOptions = this.portfolioAccountReadPlatformService