MIFOSX-1897 ability to see journals entries for specific loans and savings
This commit is contained in:
+9
-6
@@ -82,6 +82,7 @@ public class JournalEntriesApiResource {
|
|||||||
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
@QueryParam("offset") final Integer offset, @QueryParam("limit") final Integer limit,
|
||||||
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder,
|
@QueryParam("orderBy") final String orderBy, @QueryParam("sortOrder") final String sortOrder,
|
||||||
@QueryParam("locale") final String locale, @QueryParam("dateFormat") final String dateFormat,
|
@QueryParam("locale") final String locale, @QueryParam("dateFormat") final String dateFormat,
|
||||||
|
@QueryParam("loanId") final Long loanId,@QueryParam("savingsId") final Long savingsId,
|
||||||
@QueryParam("runningBalance") final boolean runningBalance, @QueryParam("transactionDetails") final boolean transactionDetails) {
|
@QueryParam("runningBalance") final boolean runningBalance, @QueryParam("transactionDetails") final boolean transactionDetails) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
||||||
@@ -95,7 +96,7 @@ public class JournalEntriesApiResource {
|
|||||||
toDate = toDateParam.getDate("toDate", dateFormat, locale);
|
toDate = toDateParam.getDate("toDate", dateFormat, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
final SearchParameters searchParameters = SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder);
|
final SearchParameters searchParameters = SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder,loanId,savingsId);
|
||||||
JournalEntryAssociationParametersData associationParametersData = new JournalEntryAssociationParametersData(transactionDetails,
|
JournalEntryAssociationParametersData associationParametersData = new JournalEntryAssociationParametersData(transactionDetails,
|
||||||
runningBalance);
|
runningBalance);
|
||||||
|
|
||||||
@@ -106,11 +107,11 @@ public class JournalEntriesApiResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("{journalEntryId}")
|
@Path("{journalEntryId}")
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
public String retreiveJournalEntryById(@PathParam("journalEntryId") final Long journalEntryId, @Context final UriInfo uriInfo,
|
public String retreiveJournalEntryById(@PathParam("journalEntryId") final Long journalEntryId, @Context final UriInfo uriInfo,
|
||||||
@QueryParam("runningBalance") final boolean runningBalance, @QueryParam("transactionDetails") final boolean transactionDetails) {
|
@QueryParam("runningBalance") final boolean runningBalance, @QueryParam("transactionDetails") final boolean transactionDetails) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
||||||
JournalEntryAssociationParametersData associationParametersData = new JournalEntryAssociationParametersData(transactionDetails,
|
JournalEntryAssociationParametersData associationParametersData = new JournalEntryAssociationParametersData(transactionDetails,
|
||||||
@@ -122,6 +123,8 @@ public class JournalEntriesApiResource {
|
|||||||
return this.apiJsonSerializerService.serialize(settings, glJournalEntryData, RESPONSE_DATA_PARAMETERS);
|
return this.apiJsonSerializerService.serialize(settings, glJournalEntryData, RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Consumes({ MediaType.APPLICATION_JSON })
|
@Consumes({ MediaType.APPLICATION_JSON })
|
||||||
@Produces({ MediaType.APPLICATION_JSON })
|
@Produces({ MediaType.APPLICATION_JSON })
|
||||||
|
|||||||
+29
-21
@@ -5,16 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.mifosplatform.accounting.journalentry.service;
|
package org.mifosplatform.accounting.journalentry.service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.text.DateFormat;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.joda.time.LocalDate;
|
import org.joda.time.LocalDate;
|
||||||
import org.mifosplatform.accounting.common.AccountingEnumerations;
|
import org.mifosplatform.accounting.common.AccountingEnumerations;
|
||||||
@@ -23,25 +13,17 @@ import org.mifosplatform.accounting.financialactivityaccount.domain.FinancialAct
|
|||||||
import org.mifosplatform.accounting.glaccount.data.GLAccountData;
|
import org.mifosplatform.accounting.glaccount.data.GLAccountData;
|
||||||
import org.mifosplatform.accounting.glaccount.domain.GLAccountType;
|
import org.mifosplatform.accounting.glaccount.domain.GLAccountType;
|
||||||
import org.mifosplatform.accounting.glaccount.service.GLAccountReadPlatformService;
|
import org.mifosplatform.accounting.glaccount.service.GLAccountReadPlatformService;
|
||||||
import org.mifosplatform.accounting.journalentry.data.JournalEntryAssociationParametersData;
|
import org.mifosplatform.accounting.journalentry.data.*;
|
||||||
import org.mifosplatform.accounting.journalentry.data.JournalEntryData;
|
|
||||||
import org.mifosplatform.accounting.journalentry.data.OfficeOpeningBalancesData;
|
|
||||||
import org.mifosplatform.accounting.journalentry.data.TransactionDetailData;
|
|
||||||
import org.mifosplatform.accounting.journalentry.data.TransactionTypeEnumData;
|
|
||||||
import org.mifosplatform.accounting.journalentry.exception.JournalEntriesNotFoundException;
|
import org.mifosplatform.accounting.journalentry.exception.JournalEntriesNotFoundException;
|
||||||
import org.mifosplatform.infrastructure.codes.data.CodeValueData;
|
import org.mifosplatform.infrastructure.codes.data.CodeValueData;
|
||||||
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
import org.mifosplatform.infrastructure.core.domain.JdbcSupport;
|
||||||
import org.mifosplatform.infrastructure.core.exception.GeneralPlatformDomainRuleException;
|
import org.mifosplatform.infrastructure.core.exception.GeneralPlatformDomainRuleException;
|
||||||
import org.mifosplatform.infrastructure.core.service.DateUtils;
|
import org.mifosplatform.infrastructure.core.service.*;
|
||||||
import org.mifosplatform.infrastructure.core.service.Page;
|
|
||||||
import org.mifosplatform.infrastructure.core.service.PaginationHelper;
|
|
||||||
import org.mifosplatform.infrastructure.core.service.RoutingDataSource;
|
|
||||||
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
||||||
import org.mifosplatform.organisation.office.data.OfficeData;
|
import org.mifosplatform.organisation.office.data.OfficeData;
|
||||||
import org.mifosplatform.organisation.office.service.OfficeReadPlatformService;
|
import org.mifosplatform.organisation.office.service.OfficeReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.account.PortfolioAccountType;
|
import org.mifosplatform.portfolio.account.PortfolioAccountType;
|
||||||
import org.mifosplatform.infrastructure.core.service.SearchParameters;
|
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
||||||
import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations;
|
import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations;
|
||||||
import org.mifosplatform.portfolio.note.data.NoteData;
|
import org.mifosplatform.portfolio.note.data.NoteData;
|
||||||
@@ -55,6 +37,16 @@ import org.springframework.jdbc.core.RowMapper;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlatformService {
|
public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlatformService {
|
||||||
|
|
||||||
@@ -315,6 +307,22 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (searchParameters.isLoanIdPassed()) {
|
||||||
|
sqlBuilder.append(whereClose + " journalEntry.loan_transaction_id in (select id from m_loan_transaction where loan_id = ?)");
|
||||||
|
objectArray[arrayPos] = searchParameters.getLoanId();
|
||||||
|
arrayPos = arrayPos + 1;
|
||||||
|
|
||||||
|
whereClose = " and ";
|
||||||
|
}
|
||||||
|
if (searchParameters.isSavingsIdPassed()) {
|
||||||
|
sqlBuilder.append(whereClose + " journalEntry.savings_transaction_id in (select id from m_savings_account_transaction where savings_account_id = ?)");
|
||||||
|
objectArray[arrayPos] = searchParameters.getSavingsId();
|
||||||
|
arrayPos = arrayPos + 1;
|
||||||
|
|
||||||
|
whereClose = " and ";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (searchParameters.isOrderByRequested()) {
|
if (searchParameters.isOrderByRequested()) {
|
||||||
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
sqlBuilder.append(" order by ").append(searchParameters.getOrderBy());
|
||||||
|
|
||||||
@@ -465,7 +473,7 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat
|
|||||||
final Date toDate = null;
|
final Date toDate = null;
|
||||||
final JournalEntryAssociationParametersData associationParametersData = null;
|
final JournalEntryAssociationParametersData associationParametersData = null;
|
||||||
|
|
||||||
final SearchParameters searchParameters = SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder);
|
final SearchParameters searchParameters = SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder,null,null);
|
||||||
return retrieveAll(searchParameters, contraId, onlyManualEntries, fromDate, toDate, transactionId, entityType,
|
return retrieveAll(searchParameters, contraId, onlyManualEntries, fromDate, toDate, transactionId, entityType,
|
||||||
associationParametersData);
|
associationParametersData);
|
||||||
|
|
||||||
|
|||||||
Regular → Executable
+27
-11
@@ -24,12 +24,16 @@ public final class SearchParameters {
|
|||||||
|
|
||||||
private final Long staffId;
|
private final Long staffId;
|
||||||
|
|
||||||
|
private final Long loanId;
|
||||||
|
|
||||||
|
private final Long savingsId;
|
||||||
|
|
||||||
public static SearchParameters from(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
public static SearchParameters from(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
final String hierarchy) {
|
final String hierarchy) {
|
||||||
final Long staffId = null;
|
final Long staffId = null;
|
||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, null, null, null, null, staffId,
|
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, null, null, null, null, staffId,
|
||||||
accountNo);
|
accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId,
|
public static SearchParameters forClients(final String sqlSearch, final Long officeId, final String externalId,
|
||||||
@@ -41,7 +45,7 @@ public final class SearchParameters {
|
|||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
return new SearchParameters(sqlSearch, officeId, externalId, displayName, hierarchy, firstname, lastname, offset, maxLimitAllowed,
|
||||||
orderBy, sortOrder, staffId, accountNo);
|
orderBy, sortOrder, staffId, accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final Long staffId, final String externalId,
|
public static SearchParameters forGroups(final String sqlSearch, final Long officeId, final Long staffId, final String externalId,
|
||||||
@@ -52,12 +56,12 @@ public final class SearchParameters {
|
|||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed, orderBy,
|
return new SearchParameters(sqlSearch, officeId, externalId, name, hierarchy, null, null, offset, maxLimitAllowed, orderBy,
|
||||||
sortOrder, staffId, accountNo);
|
sortOrder, staffId, accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forOffices(final String orderBy, final String sortOrder) {
|
public static SearchParameters forOffices(final String orderBy, final String sortOrder) {
|
||||||
return new SearchParameters(null, null, null, null, null, null, null, null, null, orderBy, sortOrder,
|
return new SearchParameters(null, null, null, null, null, null, null, null, null, orderBy, sortOrder,
|
||||||
null, null);
|
null, null,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forLoans(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
public static SearchParameters forLoans(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
||||||
@@ -67,17 +71,17 @@ public final class SearchParameters {
|
|||||||
final Long staffId = null;
|
final Long staffId = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||||
staffId, accountNo);
|
staffId, accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forJournalEntries(final Long officeId, final Integer offset, final Integer limit, final String orderBy,
|
public static SearchParameters forJournalEntries(final Long officeId, final Integer offset, final Integer limit, final String orderBy,
|
||||||
final String sortOrder) {
|
final String sortOrder,final Long loanId,final Long savingsId) {
|
||||||
|
|
||||||
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
final Long staffId = null;
|
final Long staffId = null;
|
||||||
|
|
||||||
return new SearchParameters(null, officeId, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId,
|
return new SearchParameters(null, officeId, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId,
|
||||||
null);
|
null,loanId,savingsId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forPagination(final Integer offset, final Integer limit, final String orderBy, final String sortOrder) {
|
public static SearchParameters forPagination(final Integer offset, final Integer limit, final String orderBy, final String sortOrder) {
|
||||||
@@ -85,7 +89,7 @@ public final class SearchParameters {
|
|||||||
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
final Integer maxLimitAllowed = getCheckedLimit(limit);
|
||||||
final Long staffId = null;
|
final Long staffId = null;
|
||||||
|
|
||||||
return new SearchParameters(null, null, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId, null);
|
return new SearchParameters(null, null, null, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder, staffId, null,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forSavings(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
public static SearchParameters forSavings(final String sqlSearch, final String externalId, final Integer offset, final Integer limit,
|
||||||
@@ -96,7 +100,7 @@ public final class SearchParameters {
|
|||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||||
staffId, accountNo);
|
staffId, accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SearchParameters forAccountTransfer(final String sqlSearch, final String externalId, final Integer offset,
|
public static SearchParameters forAccountTransfer(final String sqlSearch, final String externalId, final Integer offset,
|
||||||
@@ -107,12 +111,12 @@ public final class SearchParameters {
|
|||||||
final String accountNo = null;
|
final String accountNo = null;
|
||||||
|
|
||||||
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
return new SearchParameters(sqlSearch, null, externalId, null, null, null, null, offset, maxLimitAllowed, orderBy, sortOrder,
|
||||||
staffId, accountNo);
|
staffId, accountNo,null,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
private SearchParameters(final String sqlSearch, final Long officeId, final String externalId, final String name,
|
||||||
final String hierarchy, final String firstname, final String lastname, final Integer offset, final Integer limit,
|
final String hierarchy, final String firstname, final String lastname, final Integer offset, final Integer limit,
|
||||||
final String orderBy, final String sortOrder, final Long staffId, final String accountNo) {
|
final String orderBy, final String sortOrder, final Long staffId, final String accountNo,final Long loanId,final Long savingsId) {
|
||||||
this.sqlSearch = sqlSearch;
|
this.sqlSearch = sqlSearch;
|
||||||
this.officeId = officeId;
|
this.officeId = officeId;
|
||||||
this.externalId = externalId;
|
this.externalId = externalId;
|
||||||
@@ -126,6 +130,8 @@ public final class SearchParameters {
|
|||||||
this.sortOrder = sortOrder;
|
this.sortOrder = sortOrder;
|
||||||
this.staffId = staffId;
|
this.staffId = staffId;
|
||||||
this.accountNo = accountNo;
|
this.accountNo = accountNo;
|
||||||
|
this.loanId = loanId;
|
||||||
|
this.savingsId = savingsId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOrderByRequested() {
|
public boolean isOrderByRequested() {
|
||||||
@@ -224,4 +230,14 @@ public final class SearchParameters {
|
|||||||
return this.accountNo;
|
return this.accountNo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLoanIdPassed() {
|
||||||
|
return this.loanId != null && this.loanId != 0;
|
||||||
|
}
|
||||||
|
public boolean isSavingsIdPassed() {
|
||||||
|
return this.savingsId != null && this.savingsId != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getLoanId() {return this.loanId;}
|
||||||
|
|
||||||
|
public Long getSavingsId() {return this.savingsId;}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user