merging Mardukars work arounf standing instructions
This commit is contained in:
@@ -316,6 +316,14 @@
|
|||||||
<td><a href="#standinginstruction_update">Update Standing Instruction</a></td>
|
<td><a href="#standinginstruction_update">Update Standing Instruction</a></td>
|
||||||
<td><a href="#standinginstruction_delete">Delete Standing Instruction(status change)</a></td>
|
<td><a href="#standinginstruction_delete">Delete Standing Instruction(status change)</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>standinginstructions/history</td>
|
||||||
|
<td></td>
|
||||||
|
<td><a href="#standinginstructions_history">Standinginstructions History</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="#accounttransfers">Account Transfer</a></td>
|
<td><a href="#accounttransfers">Account Transfer</a></td>
|
||||||
<td>accounttransfers</td>
|
<td>accounttransfers</td>
|
||||||
@@ -24533,6 +24541,214 @@ No Request Body:
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<a id="standinginstructions_history" name="standinginstructions_history" class="old-syle-anchor"> </a>
|
||||||
|
<div class="method-section">
|
||||||
|
<div class="method-description">
|
||||||
|
<h2>Standing Instructions Logged History:</h2>
|
||||||
|
<p>The <i>list</i> capability of history can support <b>pagination</b> and <b>sorting</b>.</p>
|
||||||
|
<h5>Optional Arguments</h5>
|
||||||
|
<dl class="argument-list">
|
||||||
|
<dt>offset</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>, defaults to 0
|
||||||
|
</dd>
|
||||||
|
<dd>Indicates from what result to start from.</dd>
|
||||||
|
|
||||||
|
<dt>limit</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>, defaults to 200
|
||||||
|
</dd>
|
||||||
|
<dd>Restricts the size of results returned. To override the default and return all entries you must explicitly pass a non-positive integer value for limit e.g. limit=0, or limit=-1</dd>
|
||||||
|
|
||||||
|
<dt>orderBy</dt>
|
||||||
|
<dd>
|
||||||
|
String <span>optional</span>, one of <span>name,standingInstructionId</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Orders the results by the field indicated.</dd>
|
||||||
|
|
||||||
|
<dt>sortBy</dt>
|
||||||
|
<dd>
|
||||||
|
String <span>optional</span>, one of <span>ASC, DESC</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Indicates what way to order results if <i>orderBy</i> is used.</dd>
|
||||||
|
|
||||||
|
<dt>clientId</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use clientId of clients to restrict results.</dd>
|
||||||
|
|
||||||
|
<dt>clientName</dt>
|
||||||
|
<dd>
|
||||||
|
String <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use displayName of clients to restrict results.</dd>
|
||||||
|
|
||||||
|
<dt>fromAccountId</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use fromAccountId of standing instruction transaction to restrict results. fromAccountId is id of <i>fromAccountType</i>.</dd>
|
||||||
|
|
||||||
|
<dt>fromAccountType</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use fromAccountType of standing instruction transaction to restrict results. fromAccountType is enum value entity type Ex:Loan Account:1, Savings Account:2</dd>
|
||||||
|
|
||||||
|
<dt>transferType</dt>
|
||||||
|
<dd>
|
||||||
|
Integer <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use transferType of standing instruction transaction to restrict results. transferType is enum value transfer type Ex:Loan Repayment:2, Account Transfer:1</dd>
|
||||||
|
|
||||||
|
<dt>fromDate</dt>
|
||||||
|
<dd>
|
||||||
|
Date<span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Filters for transactions whose entry Date is greater than or equal to the passed in Date
|
||||||
|
</dd>
|
||||||
|
<dt>toDate</dt>
|
||||||
|
<dd>
|
||||||
|
Date <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Filters for transactions whose entry Date is lesser than or equal to the passed in Date
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>sqlSearch</dt>
|
||||||
|
<dd>
|
||||||
|
String <span>optional</span>
|
||||||
|
</dd>
|
||||||
|
<dd>Use an sql fragment valid for the underlying standing instruction schema to filter results. e.g. name like %K%</dd>
|
||||||
|
</dl>
|
||||||
|
<p>Example Requests : </p>
|
||||||
|
<div class=apiClick>standinginstructions/history</div>
|
||||||
|
<br>
|
||||||
|
<div class=apiClick>standinginstructions/history?orderBy=name&sortOrder=DESC</div>
|
||||||
|
<br>
|
||||||
|
<div class=apiClick>standinginstructions/history?offset=10&limit=50</div>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div class="method-example">
|
||||||
|
<code class="method-declaration">GET https://DomainName/api/v1/standinginstructions/history</code>
|
||||||
|
<code class="method-response">
|
||||||
|
{
|
||||||
|
"totalFilteredRecords": 2,
|
||||||
|
"pageItems": [
|
||||||
|
{
|
||||||
|
"standingInstructionId": 1,
|
||||||
|
"name": "ACC Transfer",
|
||||||
|
"fromOffice": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "Head Office"
|
||||||
|
},
|
||||||
|
"fromClient": {
|
||||||
|
"id": 1,
|
||||||
|
"displayName": "Test client",
|
||||||
|
"officeId": 1,
|
||||||
|
"officeName": "Head Office"
|
||||||
|
},
|
||||||
|
"fromAccountType": {
|
||||||
|
"id": 2,
|
||||||
|
"code": "accountType.savings",
|
||||||
|
"value": "Savings Account"
|
||||||
|
},
|
||||||
|
"fromAccount": {
|
||||||
|
"id": 2,
|
||||||
|
"accountNo": "000000002",
|
||||||
|
"productId": 1,
|
||||||
|
"productName": "General Savings"
|
||||||
|
},
|
||||||
|
"toAccountType": {
|
||||||
|
"id": 2,
|
||||||
|
"code": "accountType.savings",
|
||||||
|
"value": "Savings Account"
|
||||||
|
},
|
||||||
|
"toAccount": {
|
||||||
|
"id": 1,
|
||||||
|
"accountNo": "000000001",
|
||||||
|
"productId": 1,
|
||||||
|
"productName": "General Savings"
|
||||||
|
},
|
||||||
|
"toOffice": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "Head Office"
|
||||||
|
},
|
||||||
|
"toClient": {
|
||||||
|
"id": 1,
|
||||||
|
"displayName": "Test client",
|
||||||
|
"officeId": 1,
|
||||||
|
"officeName": "Head Office"
|
||||||
|
},
|
||||||
|
"amount": 10,
|
||||||
|
"status": "success",
|
||||||
|
"executionTime": [
|
||||||
|
2014,
|
||||||
|
6,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
"errorLog": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"standingInstructionId": 2,
|
||||||
|
"name": "Pay overdues",
|
||||||
|
"fromOffice": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "Head Office"
|
||||||
|
},
|
||||||
|
"fromClient": {
|
||||||
|
"id": 1,
|
||||||
|
"displayName": "Test client",
|
||||||
|
"officeId": 1,
|
||||||
|
"officeName": "Head Office"
|
||||||
|
},
|
||||||
|
"fromAccountType": {
|
||||||
|
"id": 2,
|
||||||
|
"code": "accountType.savings",
|
||||||
|
"value": "Savings Account"
|
||||||
|
},
|
||||||
|
"fromAccount": {
|
||||||
|
"id": 1,
|
||||||
|
"accountNo": "000000001",
|
||||||
|
"productId": 1,
|
||||||
|
"productName": "General Savings"
|
||||||
|
},
|
||||||
|
"toAccountType": {
|
||||||
|
"id": 1,
|
||||||
|
"code": "accountType.loan",
|
||||||
|
"value": "Loan Account"
|
||||||
|
},
|
||||||
|
"toAccount": {
|
||||||
|
"id": 1,
|
||||||
|
"accountNo": "000000001",
|
||||||
|
"productId": 1,
|
||||||
|
"productName": "Daily Loan"
|
||||||
|
},
|
||||||
|
"toOffice": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "Head Office"
|
||||||
|
},
|
||||||
|
"toClient": {
|
||||||
|
"id": 1,
|
||||||
|
"displayName": "Test client",
|
||||||
|
"officeId": 1,
|
||||||
|
"officeName": "Head Office"
|
||||||
|
},
|
||||||
|
"amount": 7038.01,
|
||||||
|
"status": "success",
|
||||||
|
"executionTime": [
|
||||||
|
2014,
|
||||||
|
6,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
"errorLog": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- End Account Trasfer Standing Instrution-->
|
<!-- End Account Trasfer Standing Instrution-->
|
||||||
|
|
||||||
<!-- start of datatables api docs -->
|
<!-- start of datatables api docs -->
|
||||||
@@ -30638,6 +30854,14 @@ No Request Body:
|
|||||||
<td><a href="#standinginstruction_update">Update Standing Instruction</a></td>
|
<td><a href="#standinginstruction_update">Update Standing Instruction</a></td>
|
||||||
<td><a href="#standinginstruction_delete">Delete Standing Instruction(status change)</a></td>
|
<td><a href="#standinginstruction_delete">Delete Standing Instruction(status change)</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>standinginstructions/history</td>
|
||||||
|
<td></td>
|
||||||
|
<td><a href="#standinginstructions_history">Standinginstructions History</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>standinginstructions/template</td>
|
<td>standinginstructions/template</td>
|
||||||
|
|||||||
+4
@@ -717,6 +717,7 @@ public class FixedDepositTest {
|
|||||||
todaysDate.add(Calendar.DATE, daysInMonth);
|
todaysDate.add(Calendar.DATE, daysInMonth);
|
||||||
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
||||||
|
|
||||||
|
currentDate = currentDate - 1;
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -824,6 +825,7 @@ public class FixedDepositTest {
|
|||||||
todaysDate.add(Calendar.DATE, daysInMonth);
|
todaysDate.add(Calendar.DATE, daysInMonth);
|
||||||
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
||||||
|
|
||||||
|
currentDate = currentDate - 1;
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -936,6 +938,7 @@ public class FixedDepositTest {
|
|||||||
todaysDate.add(Calendar.DATE, daysInMonth);
|
todaysDate.add(Calendar.DATE, daysInMonth);
|
||||||
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
||||||
|
|
||||||
|
currentDate = currentDate - 1;
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -1051,6 +1054,7 @@ public class FixedDepositTest {
|
|||||||
todaysDate.add(Calendar.DATE, daysInMonth);
|
todaysDate.add(Calendar.DATE, daysInMonth);
|
||||||
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
System.out.println(monthDayFormat.format(todaysDate.getTime()));
|
||||||
|
|
||||||
|
currentDate = currentDate - 1;
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
|
|||||||
+13
@@ -8,6 +8,7 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -33,6 +34,8 @@ import org.mifosplatform.integrationtests.common.loans.LoanTransactionHelper;
|
|||||||
import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper;
|
import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper;
|
||||||
import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper;
|
import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper;
|
||||||
import org.mifosplatform.integrationtests.common.savings.SavingsStatusChecker;
|
import org.mifosplatform.integrationtests.common.savings.SavingsStatusChecker;
|
||||||
|
import org.mifosplatform.portfolio.account.PortfolioAccountType;
|
||||||
|
import org.mifosplatform.portfolio.account.domain.AccountTransferType;
|
||||||
|
|
||||||
import com.jayway.restassured.builder.RequestSpecBuilder;
|
import com.jayway.restassured.builder.RequestSpecBuilder;
|
||||||
import com.jayway.restassured.builder.ResponseSpecBuilder;
|
import com.jayway.restassured.builder.ResponseSpecBuilder;
|
||||||
@@ -628,6 +631,16 @@ public class SchedulerJobsTestResults {
|
|||||||
fromSavingsBalanceAfter);
|
fromSavingsBalanceAfter);
|
||||||
Assert.assertEquals("Verifying To Savings Balance after Successful completion of Scheduler Job", expectedToSavingsBalance,
|
Assert.assertEquals("Verifying To Savings Balance after Successful completion of Scheduler Job", expectedToSavingsBalance,
|
||||||
toSavingsBalanceAfter);
|
toSavingsBalanceAfter);
|
||||||
|
Integer fromAccountType = PortfolioAccountType.SAVINGS.getValue();
|
||||||
|
Integer transferType = AccountTransferType.ACCOUNT_TRANSFER.getValue();
|
||||||
|
List<HashMap> standinInstructionHistoryData = this.standingInstructionsHelper.getStandingInstructionHistory(fromSavingsId,
|
||||||
|
fromAccountType, clientID, transferType);
|
||||||
|
Assert.assertEquals("Verifying the no of stainding instruction transactions logged for the client", 1,
|
||||||
|
standinInstructionHistoryData.size());
|
||||||
|
HashMap loggedTransaction = standinInstructionHistoryData.get(0);
|
||||||
|
|
||||||
|
Assert.assertEquals("Verifying transferred amount and logged transaction amounts", (Float) standingInstructionData.get("amount"),
|
||||||
|
(Float) loggedTransaction.get("amount"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+12
-1
@@ -1,6 +1,7 @@
|
|||||||
package org.mifosplatform.integrationtests.common;
|
package org.mifosplatform.integrationtests.common;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.mifosplatform.integrationtests.common.Utils;
|
import org.mifosplatform.integrationtests.common.Utils;
|
||||||
|
|
||||||
@@ -10,7 +11,7 @@ import com.google.gson.Gson;
|
|||||||
import com.jayway.restassured.specification.RequestSpecification;
|
import com.jayway.restassured.specification.RequestSpecification;
|
||||||
import com.jayway.restassured.specification.ResponseSpecification;
|
import com.jayway.restassured.specification.ResponseSpecification;
|
||||||
|
|
||||||
@SuppressWarnings({ "unused", "rawtypes" })
|
@SuppressWarnings({ "unused", "rawtypes", "unchecked" })
|
||||||
public class StandingInstructionsHelper {
|
public class StandingInstructionsHelper {
|
||||||
|
|
||||||
private static final String STANDING_INSTRUCTIONS_URL = "/mifosng-provider/api/v1/standinginstructions";
|
private static final String STANDING_INSTRUCTIONS_URL = "/mifosng-provider/api/v1/standinginstructions";
|
||||||
@@ -95,4 +96,14 @@ public class StandingInstructionsHelper {
|
|||||||
final HashMap response = Utils.performServerGet(this.requestSpec, this.responseSpec, GET_STANDING_INSTRUCTION_BY_ID_URL, "");
|
final HashMap response = Utils.performServerGet(this.requestSpec, this.responseSpec, GET_STANDING_INSTRUCTION_BY_ID_URL, "");
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<HashMap> getStandingInstructionHistory(Integer fromSavingsId, Integer fromAccountType, Integer fromClientId, Integer transferType) {
|
||||||
|
final String STANDING_INSTRUCTIONS_HISTORY_URL = STANDING_INSTRUCTIONS_URL + "/history?" + Utils.TENANT_IDENTIFIER
|
||||||
|
+ "&fromSavingsId=" + fromSavingsId + "&fromAccountType=" + fromAccountType + "&clientId=" + fromClientId
|
||||||
|
+ "&transferType=" + transferType;
|
||||||
|
System.out.println("STANDING_INSTRUCTIONS_HISTORY_URL="+STANDING_INSTRUCTIONS_HISTORY_URL);
|
||||||
|
final List<HashMap> response = (List<HashMap>) Utils.performServerGet(this.requestSpec, this.responseSpec,
|
||||||
|
STANDING_INSTRUCTIONS_HISTORY_URL, "pageItems");
|
||||||
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -13,7 +13,7 @@ import org.mifosplatform.portfolio.account.AccountDetailConstants;
|
|||||||
|
|
||||||
public class StandingInstructionApiConstants {
|
public class StandingInstructionApiConstants {
|
||||||
|
|
||||||
public static final String STANDING_INSTRUCTION_RESOURCE_NAME = "standinginstructions";
|
public static final String STANDING_INSTRUCTION_RESOURCE_NAME = "standinginstruction";
|
||||||
|
|
||||||
public static final String nameParamName = "name";
|
public static final String nameParamName = "name";
|
||||||
public static final String priorityParamName = "priority";
|
public static final String priorityParamName = "priority";
|
||||||
|
|||||||
+2
-2
@@ -817,11 +817,11 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead
|
|||||||
sqlBuilder.append("sp.min_balance_for_interest_calculation as minBalanceForInterestCalculation, ");
|
sqlBuilder.append("sp.min_balance_for_interest_calculation as minBalanceForInterestCalculation, ");
|
||||||
sqlBuilder.append("sp.allow_overdraft as allowOverdraft, ");
|
sqlBuilder.append("sp.allow_overdraft as allowOverdraft, ");
|
||||||
sqlBuilder.append("sp.overdraft_limit as overdraftLimit, ");
|
sqlBuilder.append("sp.overdraft_limit as overdraftLimit, ");
|
||||||
sqlBuilder.append("sp.min_required_balance as minRequiredBalance, ");
|
|
||||||
sqlBuilder.append("sp.allow_overdraft_min_balance as allowOverdraftMinBalance ");
|
|
||||||
// sqlBuilder.append("sp.annual_fee_amount as annualFeeAmount,");
|
// sqlBuilder.append("sp.annual_fee_amount as annualFeeAmount,");
|
||||||
// sqlBuilder.append("sp.annual_fee_on_month as annualFeeOnMonth, ");
|
// sqlBuilder.append("sp.annual_fee_on_month as annualFeeOnMonth, ");
|
||||||
// sqlBuilder.append("sp.annual_fee_on_day as annualFeeOnDay ");
|
// sqlBuilder.append("sp.annual_fee_on_day as annualFeeOnDay ");
|
||||||
|
sqlBuilder.append("sp.min_required_balance as minRequiredBalance, ");
|
||||||
|
sqlBuilder.append("sp.allow_overdraft_min_balance as allowOverdraftMinBalance ");
|
||||||
sqlBuilder.append("from m_savings_product sp ");
|
sqlBuilder.append("from m_savings_product sp ");
|
||||||
sqlBuilder.append("join m_currency curr on curr.code = sp.currency_code ");
|
sqlBuilder.append("join m_currency curr on curr.code = sp.currency_code ");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user