Merge remote-tracking branch 'madhukar/MIFOSX-43-home'
This commit is contained in:
+16
@@ -25,6 +25,7 @@ import org.mifosng.platform.api.commands.DepositStateTransitionApprovalCommand;
|
||||
import org.mifosng.platform.api.commands.DepositStateTransitionCommand;
|
||||
import org.mifosng.platform.api.commands.UndoStateTransitionCommand;
|
||||
import org.mifosng.platform.api.data.DepositAccountData;
|
||||
import org.mifosng.platform.api.data.DepositPermissionData;
|
||||
import org.mifosng.platform.api.data.DepositProductLookup;
|
||||
import org.mifosng.platform.api.data.EntityIdentifier;
|
||||
import org.mifosng.platform.api.data.EnumOptionData;
|
||||
@@ -106,6 +107,9 @@ public class DepositAccountsApiResource {
|
||||
public String retrieveDepositAccount(@PathParam("accountId") final Long accountId, @Context final UriInfo uriInfo) {
|
||||
|
||||
Set<String> responseParameters = ApiParameterHelper.extractFieldsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
|
||||
DepositPermissionData permissions = null;
|
||||
|
||||
if (responseParameters.isEmpty()) {
|
||||
responseParameters.addAll(typicalResponseParameters);
|
||||
}
|
||||
@@ -118,6 +122,18 @@ public class DepositAccountsApiResource {
|
||||
account = handleTemplateRelatedData(responseParameters, account);
|
||||
}
|
||||
|
||||
Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
if (!associationParameters.isEmpty()) {
|
||||
if (associationParameters.contains("all")) {
|
||||
responseParameters.addAll(Arrays.asList("permissions"));
|
||||
} else {
|
||||
responseParameters.addAll(associationParameters);
|
||||
}
|
||||
permissions = this.depositAccountReadPlatformService.retrieveDepositAccountsPermissions(account);
|
||||
}
|
||||
|
||||
account.setPermissions(permissions);
|
||||
|
||||
return this.apiJsonSerializerService.serializeDepositAccountDataToJson(prettyPrint, responseParameters, account);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ public class DepositAccountData {
|
||||
private final List<DepositProductLookup> productOptions;
|
||||
|
||||
private Collection<DepositAccountTransactionData> transactions;
|
||||
private DepositPermissionData permissions;
|
||||
|
||||
/*
|
||||
* used when returning account template data but only a clientId is passed, no selected product.
|
||||
@@ -89,6 +90,7 @@ public class DepositAccountData {
|
||||
this.rejectedonDate=null;
|
||||
|
||||
this.transactions=null;
|
||||
this.permissions=null;
|
||||
}
|
||||
|
||||
public DepositAccountData(
|
||||
@@ -127,6 +129,7 @@ public class DepositAccountData {
|
||||
this.closedonDate=account.getClosedonDate();
|
||||
|
||||
this.transactions=account.getTransactions();
|
||||
this.permissions=account.getPermissions();
|
||||
}
|
||||
|
||||
public DepositAccountData(
|
||||
@@ -187,6 +190,7 @@ public class DepositAccountData {
|
||||
this.closedonDate = closedonDate;
|
||||
|
||||
this.transactions = null;
|
||||
this.permissions = null;
|
||||
}
|
||||
|
||||
public DepositAccountData(
|
||||
@@ -234,6 +238,7 @@ public class DepositAccountData {
|
||||
this.rejectedonDate=null;
|
||||
|
||||
this.transactions = null;
|
||||
this.permissions = null;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
@@ -355,5 +360,13 @@ public class DepositAccountData {
|
||||
public void setTransactions(Collection<DepositAccountTransactionData> transactions) {
|
||||
this.transactions = transactions;
|
||||
}
|
||||
|
||||
public DepositPermissionData getPermissions() {
|
||||
return permissions;
|
||||
}
|
||||
|
||||
public void setPermissions(DepositPermissionData permissions) {
|
||||
this.permissions = permissions;
|
||||
}
|
||||
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
public class DepositPermissionData {
|
||||
|
||||
private final boolean rejectAllowed;
|
||||
private final boolean withdrawnByApplicantAllowed;
|
||||
private final boolean undoApprovalAllowed;
|
||||
private final boolean pendingApproval;
|
||||
private final boolean isActive;
|
||||
|
||||
private final boolean anyActionOnLoanAllowed;
|
||||
|
||||
public DepositPermissionData(final boolean rejectAllowed,final boolean withdrawnByApplicantAllowed,final boolean undoApprovalAllowed,final boolean pendingApproval,final boolean isActive) {
|
||||
this.rejectAllowed = rejectAllowed;
|
||||
this.withdrawnByApplicantAllowed = withdrawnByApplicantAllowed;
|
||||
this.undoApprovalAllowed = undoApprovalAllowed;
|
||||
this.pendingApproval = pendingApproval;
|
||||
this.isActive=isActive;
|
||||
this.anyActionOnLoanAllowed = isRejectAllowed() || isPendingApproval() || isUndoApprovalAllowed() || isWithdrawnByApplicantAllowed();
|
||||
}
|
||||
|
||||
public boolean isRejectAllowed() {
|
||||
return rejectAllowed;
|
||||
}
|
||||
|
||||
public boolean isWithdrawnByApplicantAllowed() {
|
||||
return withdrawnByApplicantAllowed;
|
||||
}
|
||||
|
||||
public boolean isUndoApprovalAllowed() {
|
||||
return undoApprovalAllowed;
|
||||
}
|
||||
|
||||
public boolean isPendingApproval() {
|
||||
return pendingApproval;
|
||||
}
|
||||
|
||||
public boolean isAnyActionOnLoanAllowed() {
|
||||
return anyActionOnLoanAllowed;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return isActive;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -105,7 +105,7 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ
|
||||
"currency", "deposit", "maturityInterestRate", "tenureInMonths",
|
||||
"interestCompoundedEvery", "interestCompoundedEveryPeriodType",
|
||||
"renewalAllowed","preClosureAllowed","preClosureInterestRate",
|
||||
"withdrawnonDate","rejectedonDate","closedonDate","transactions"
|
||||
"withdrawnonDate","rejectedonDate","closedonDate","transactions","permissions"
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
+4
-1
@@ -3,6 +3,7 @@ package org.mifosng.platform.saving.service;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.mifosng.platform.api.data.DepositAccountData;
|
||||
import org.mifosng.platform.api.data.DepositPermissionData;
|
||||
|
||||
public interface DepositAccountReadPlatformService {
|
||||
|
||||
@@ -10,5 +11,7 @@ public interface DepositAccountReadPlatformService {
|
||||
|
||||
DepositAccountData retrieveDepositAccount(Long accountId);
|
||||
|
||||
DepositAccountData retrieveNewDepositAccountDetails(Long clientId, Long productId);
|
||||
DepositAccountData retrieveNewDepositAccountDetails(Long clientId, Long productId);
|
||||
|
||||
DepositPermissionData retrieveDepositAccountsPermissions(DepositAccountData depositAccountData);
|
||||
}
|
||||
|
||||
+12
@@ -12,6 +12,7 @@ import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.CurrencyData;
|
||||
import org.mifosng.platform.api.data.DepositAccountData;
|
||||
import org.mifosng.platform.api.data.DepositAccountTransactionData;
|
||||
import org.mifosng.platform.api.data.DepositPermissionData;
|
||||
import org.mifosng.platform.api.data.DepositProductData;
|
||||
import org.mifosng.platform.api.data.DepositProductLookup;
|
||||
import org.mifosng.platform.api.data.EnumOptionData;
|
||||
@@ -245,4 +246,15 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public DepositPermissionData retrieveDepositAccountsPermissions(DepositAccountData depositAccountData) {
|
||||
boolean pendingApproval = (depositAccountData.getStatus().getId().equals(100L));
|
||||
boolean undoApprovalAllowed = (depositAccountData.getStatus().getId().equals(200L));
|
||||
boolean isActive = (depositAccountData.getStatus().getId().equals(300L));
|
||||
boolean rejectAllowed = pendingApproval;
|
||||
boolean withdrawnByApplicantAllowed = pendingApproval;
|
||||
|
||||
return new DepositPermissionData(rejectAllowed, withdrawnByApplicantAllowed, undoApprovalAllowed, pendingApproval,isActive);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user