Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,14 @@ public static SavingsAccountTransactionEnumData transactionType(final SavingsAcc
return optionData;
}

public static EnumOptionData status(final SavingsAccountStatusEnumData status) {
Long id = status.getId();
String code = status.getCode();
String value = status.getValue();

return new EnumOptionData(id, code, value);
}

public static SavingsAccountStatusEnumData status(final Integer statusEnum) {
return status(SavingsAccountStatusType.fromInt(statusEnum));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,15 @@
import org.apache.fineract.portfolio.loanproduct.data.LoanProductData;
import org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations;
import org.apache.fineract.portfolio.loanproduct.service.LoanProductReadPlatformService;
import org.apache.fineract.portfolio.savings.data.SavingsAccountStatusEnumData;
import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
import org.apache.fineract.portfolio.search.SearchConstants;
import org.apache.fineract.portfolio.search.data.AdHocQuerySearchConditions;
import org.apache.fineract.portfolio.search.data.AdHocSearchQueryData;
import org.apache.fineract.portfolio.search.data.SearchConditions;
import org.apache.fineract.portfolio.search.data.SearchData;
import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountStatusEnumData;
import org.apache.fineract.portfolio.shareaccounts.service.SharesEnumerations;
import org.apache.fineract.useradministration.domain.AppUser;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
Expand Down Expand Up @@ -72,6 +75,7 @@ public List<SearchData> retriveMatchingData(final SearchConditions searchConditi
} else {
params.addValue("search", "%" + searchConditions.getSearchQuery() + "%");
}

return namedParameterJdbcTemplate.query(searchSchema(searchConditions), params, rm);
}

Expand Down Expand Up @@ -177,6 +181,16 @@ else if (entityType.equalsIgnoreCase("loan")) {
entityStatus = LoanEnumerations.status(loanStatusEnumData);
}

else if (entityType.equalsIgnoreCase("saving")) {
SavingsAccountStatusEnumData savingStatusEnumData = SavingsEnumerations.status(entityStatusEnum);
entityStatus = SavingsEnumerations.status(savingStatusEnumData);
}

else if (entityType.equalsIgnoreCase("share")) {
ShareAccountStatusEnumData shareStatusEnumData = SharesEnumerations.status(entityStatusEnum);
entityStatus = SharesEnumerations.status(shareStatusEnumData);
}

return new SearchData(entityId, entityAccountNo, entityExternalId, entityName, entityType, parentId, parentName, parentType,
entityMobileNo, entityStatus, subEntityTypeCode.getCode());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ public static ShareAccountStatusEnumData status(final Integer statusEnum) {
return status(ShareAccountStatusType.fromInt(statusEnum));
}

public static EnumOptionData status(final ShareAccountStatusEnumData status) {
Long id = status.getId();
String code = status.getCode();
String value = status.getValue();

return new EnumOptionData(id, code, value);
}

public static ShareAccountStatusEnumData status(final ShareAccountStatusType type) {
final boolean submittedAndPendingApproval = type.isSubmittedAndPendingApproval();
final boolean isApproved = type.isApproved();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,43 @@ public void searchAnyValueOverLoanResources() {
assertEquals(0, searchResponse.size());
}

@Test
public void searchSavingsAndSharesHaveEntityStatus() {

// Create client
String jsonPayload = ClientHelper.getBasicClientAsJSON(ClientHelper.DEFAULT_OFFICE_ID, ClientHelper.LEGALFORM_ID_PERSON, null);
final PostClientsResponse clientResponse = ClientHelper.addClientAsPerson(requestSpec, responseSpec, jsonPayload);
final Long clientId = clientResponse.getClientId();
final GetClientsClientIdResponse getClientResponse = ClientHelper.getClient(requestSpec, responseSpec, clientId.intValue());


final List<String> savingsResources = Arrays.asList("savings");
final ArrayList<GetSearchResponse> savingsSearchResponse = SearchHelper.getSearch(requestSpec, responseSpec,
getClientResponse.getAccountNo(), Boolean.FALSE, getResources(savingsResources));

// Verify valid entityStatus
savingsSearchResponse.stream()
.filter(result -> "SAVING".equalsIgnoreCase(result.getEntityType()))
.forEach(result -> {
assertNotNull(result.getEntityStatus(), "SAVING entity should have entityStatus");
assertNotNull(result.getEntityStatus().getId(), "SAVING entityStatus should have id");
assertNotNull(result.getEntityStatus().getCode(), "SAVING entityStatus should have code");
});

final List<String> shareResources = Arrays.asList("shares");
final ArrayList<GetSearchResponse> shareSearchResponse = SearchHelper.getSearch(requestSpec, responseSpec,
getClientResponse.getAccountNo(), Boolean.FALSE, getResources(shareResources));

// Verify valid entityStatus
shareSearchResponse.stream()
.filter(result -> "SHARE".equalsIgnoreCase(result.getEntityType()))
.forEach(result -> {
assertNotNull(result.getEntityStatus(), "SHARE entity should have entityStatus");
assertNotNull(result.getEntityStatus().getId(), "SHARE entityStatus should have id");
assertNotNull(result.getEntityStatus().getCode(), "SHARE entityStatus should have code");
});
}

private String getResources(final List<String> resources) {
return String.join(",", resources);
}
Expand Down
Loading