This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 7b55951a3 FINERACT-1681: Filter Journal entry by submitted on date
7b55951a3 is described below

commit 7b55951a3aa53a3cfcd3dfbc6dea9f0d100e2b2e
Author: Adam Saghy <[email protected]>
AuthorDate: Fri Aug 5 12:14:11 2022 +0200

    FINERACT-1681: Filter Journal entry by submitted on date
---
 .../api/JournalEntriesApiResource.java             |  26 +++--
 .../journalentry/data/JournalEntryData.java        | 106 ++-----------------
 .../service/JournalEntryReadPlatformService.java   |   3 +-
 .../JournalEntryReadPlatformServiceImpl.java       | 112 ++++++++++++---------
 4 files changed, 95 insertions(+), 152 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java
 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java
index bb3aeee7b..1f46fe07e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java
@@ -79,10 +79,10 @@ import org.springframework.stereotype.Component;
 @RequiredArgsConstructor
 public class JournalEntriesApiResource {
 
-    private static final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(
-            Arrays.asList("id", "officeId", "officeName", "glAccountName", 
"glAccountId", "glAccountCode", "glAccountType",
-                    "transactionDate", "entryType", "amount", "transactionId", 
"manualEntry", "entityType", "entityId", "createdByUserId",
-                    "createdDate", "createdByUserName", "comments", 
"reversed", "referenceNumber", "currency", "transactionDetails"));
+    private static final Set<String> RESPONSE_DATA_PARAMETERS = new 
HashSet<>(Arrays.asList("id", "officeId", "officeName", "glAccountName",
+            "glAccountId", "glAccountCode", "glAccountType", 
"transactionDate", "entryType", "amount", "transactionId", "manualEntry",
+            "entityType", "entityId", "createdByUserId", "createdDate", 
"submittedOnDate", "createdByUserName", "comments", "reversed",
+            "referenceNumber", "currency", "transactionDetails"));
 
     private final String resourceNameForPermission = "JOURNALENTRY";
 
@@ -111,6 +111,8 @@ public class JournalEntriesApiResource {
             @QueryParam("manualEntriesOnly") @Parameter(description = 
"manualEntriesOnly") final Boolean onlyManualEntries,
             @QueryParam("fromDate") @Parameter(description = "fromDate") final 
DateParam fromDateParam,
             @QueryParam("toDate") @Parameter(description = "toDate") final 
DateParam toDateParam,
+            @QueryParam("submittedOnDateFrom") @Parameter(description = 
"submittedOnDateFrom") final DateParam submittedOnDateFromParam,
+            @QueryParam("submittedOnDateTo") @Parameter(description = 
"submittedOnDateTo") final DateParam submittedOnDateToParam,
             @QueryParam("transactionId") @Parameter(description = 
"transactionId") final String transactionId,
             @QueryParam("entityType") @Parameter(description = "entityType") 
final Integer entityType,
             @QueryParam("offset") @Parameter(description = "offset") final 
Integer offset,
@@ -135,13 +137,23 @@ public class JournalEntriesApiResource {
             toDate = toDateParam.getDate("toDate", dateFormat, locale);
         }
 
+        LocalDate submittedOnDateFrom = null;
+        if (submittedOnDateFromParam != null) {
+            submittedOnDateFrom = 
submittedOnDateFromParam.getDate("submittedOnDateFrom", dateFormat, locale);
+        }
+        LocalDate submittedOnDateTo = null;
+        if (submittedOnDateToParam != null) {
+            submittedOnDateTo = 
submittedOnDateToParam.getDate("submittedOnDateTo", dateFormat, locale);
+        }
+
         final SearchParameters searchParameters = 
SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder, 
loanId,
                 savingsId);
         JournalEntryAssociationParametersData associationParametersData = new 
JournalEntryAssociationParametersData(transactionDetails,
                 runningBalance);
 
         final Page<JournalEntryData> glJournalEntries = 
this.journalEntryReadPlatformService.retrieveAll(searchParameters, glAccountId,
-                onlyManualEntries, fromDate, toDate, transactionId, 
entityType, associationParametersData);
+                onlyManualEntries, fromDate, toDate, submittedOnDateFrom, 
submittedOnDateTo, transactionId, entityType,
+                associationParametersData);
         final ApiRequestJsonSerializationSettings settings = 
this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
         return this.apiJsonSerializerService.serialize(settings, 
glJournalEntries, RESPONSE_DATA_PARAMETERS);
     }
@@ -234,8 +246,8 @@ public class JournalEntriesApiResource {
         this.context.authenticatedUser();
         String transactionId = "P" + entryId;
         SearchParameters params = SearchParameters.forPagination(offset, 
limit);
-        Page<JournalEntryData> entries = 
this.journalEntryReadPlatformService.retrieveAll(params, null, null, null, 
null, transactionId,
-                PortfolioProductType.PROVISIONING.getValue(), null);
+        Page<JournalEntryData> entries = 
this.journalEntryReadPlatformService.retrieveAll(params, null, null, null, 
null, null, null,
+                transactionId, PortfolioProductType.PROVISIONING.getValue(), 
null);
         final ApiRequestJsonSerializationSettings settings = 
this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
         return this.apiJsonSerializerService.serialize(settings, entries, 
RESPONSE_DATA_PARAMETERS);
     }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java
index 3fe017943..5c4acc155 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java
@@ -21,6 +21,7 @@ package org.apache.fineract.accounting.journalentry.data;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.List;
+import lombok.Getter;
 import org.apache.fineract.accounting.glaccount.data.GLAccountData;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.organisation.monetary.data.CurrencyData;
@@ -30,6 +31,7 @@ import 
org.apache.fineract.organisation.monetary.data.CurrencyData;
  *
  * Note: no getter/setters required as google will produce json from fields of 
object.
  */
+@Getter
 public class JournalEntryData {
 
     private final Long id;
@@ -76,6 +78,8 @@ public class JournalEntryData {
 
     @SuppressWarnings("unused")
     private final TransactionDetailData transactionDetails;
+    @SuppressWarnings("unused")
+    private final LocalDate submittedOnDate;
 
     // import fields
     private transient Integer rowIndex;
@@ -132,6 +136,7 @@ public class JournalEntryData {
         this.organizationRunningBalance = null;
         this.runningBalanceComputed = null;
         this.transactionDetails = null;
+        this.submittedOnDate = null;
     }
 
     public static JournalEntryData importInstance(Long officeId, LocalDate 
transactionDate, String currencyCode, Long paymentTypeId,
@@ -179,6 +184,7 @@ public class JournalEntryData {
         this.entityType = null;
         this.entityId = null;
         this.createdByUserId = null;
+        this.submittedOnDate = null;
         this.createdDate = null;
         this.createdByUserName = null;
         this.reversed = null;
@@ -209,7 +215,7 @@ public class JournalEntryData {
     public JournalEntryData(final Long id, final Long officeId, final String 
officeName, final String glAccountName, final Long glAccountId,
             final String glAccountCode, final EnumOptionData 
glAccountClassification, final LocalDate transactionDate,
             final EnumOptionData entryType, final BigDecimal amount, final 
String transactionId, final Boolean manualEntry,
-            final EnumOptionData entityType, final Long entityId, final Long 
createdByUserId, final LocalDate createdDate,
+            final EnumOptionData entityType, final Long entityId, final Long 
createdByUserId, final LocalDate submittedOnDate,
             final String createdByUserName, final String comments, final 
Boolean reversed, final String referenceNumber,
             final BigDecimal officeRunningBalance, final BigDecimal 
organizationRunningBalance, final Boolean runningBalanceComputed,
             final TransactionDetailData transactionDetailData, final 
CurrencyData currency) {
@@ -228,7 +234,8 @@ public class JournalEntryData {
         this.entityType = entityType;
         this.entityId = entityId;
         this.createdByUserId = createdByUserId;
-        this.createdDate = createdDate;
+        this.createdDate = submittedOnDate;
+        this.submittedOnDate = submittedOnDate;
         this.createdByUserName = createdByUserName;
         this.comments = comments;
         this.reversed = reversed;
@@ -240,40 +247,6 @@ public class JournalEntryData {
         this.currency = currency;
     }
 
-    public JournalEntryData(final Long id, final Long officeId, final String 
glAccountName, final Long glAccountId,
-            final String glAccountCode, final EnumOptionData 
glAccountClassification, final LocalDate transactionDate,
-            final EnumOptionData entryType, final BigDecimal amount, final 
String transactionId, final Boolean manualEntry,
-            final EnumOptionData entityType, final Long entityId, final 
LocalDate createdDate, final String currencyCode,
-            final Long savingTransactionId) {
-        this.id = id;
-        this.officeId = officeId;
-        this.officeName = null;
-        this.glAccountName = glAccountName;
-        this.glAccountId = glAccountId;
-        this.glAccountCode = glAccountCode;
-        this.glAccountType = glAccountClassification;
-        this.transactionDate = transactionDate;
-        this.entryType = entryType;
-        this.amount = amount;
-        this.transactionId = transactionId;
-        this.savingTransactionId = savingTransactionId;
-        this.manualEntry = manualEntry;
-        this.entityType = entityType;
-        this.entityId = entityId;
-        this.createdByUserId = null;
-        this.createdDate = createdDate;
-        this.createdByUserName = null;
-        this.comments = null;
-        this.reversed = false;
-        this.referenceNumber = null;
-        this.officeRunningBalance = null;
-        this.organizationRunningBalance = null;
-        this.runningBalanceComputed = null;
-        this.transactionDetails = null;
-        this.currency = null;
-        this.currencyCode = currencyCode;
-    }
-
     public static JournalEntryData fromGLAccountData(final GLAccountData 
glAccountData) {
 
         final Long id = null;
@@ -291,7 +264,7 @@ public class JournalEntryData {
         final EnumOptionData entityType = null;
         final Long entityId = null;
         final Long createdByUserId = null;
-        final LocalDate createdDate = null;
+        final LocalDate submittedOnDate = null;
         final String createdByUserName = null;
         final String comments = null;
         final Boolean reversed = null;
@@ -302,65 +275,8 @@ public class JournalEntryData {
         final TransactionDetailData transactionDetailData = null;
         final CurrencyData currency = null;
         return new JournalEntryData(id, officeId, officeName, glAccountName, 
glAccountId, glAccountCode, glAccountClassification,
-                transactionDate, entryType, amount, transactionId, 
manualEntry, entityType, entityId, createdByUserId, createdDate,
+                transactionDate, entryType, amount, transactionId, 
manualEntry, entityType, entityId, createdByUserId, submittedOnDate,
                 createdByUserName, comments, reversed, referenceNumber, 
officeRunningBalance, organizationRunningBalance,
                 runningBalanceComputed, transactionDetailData, currency);
     }
-
-    public Long getId() {
-        return this.id;
-    }
-
-    public Long getGlAccountId() {
-        return this.glAccountId;
-    }
-
-    public EnumOptionData getGlAccountType() {
-        return this.glAccountType;
-    }
-
-    public BigDecimal getAmount() {
-        return this.amount;
-    }
-
-    public EnumOptionData getEntryType() {
-        return this.entryType;
-    }
-
-    public Long getOfficeId() {
-        return this.officeId;
-    }
-
-    public String getTransactionId() {
-        return transactionId;
-    }
-
-    public Long getSavingTransactionId() {
-        return this.savingTransactionId;
-    }
-
-    public String getCurrencyCode() {
-        return this.currencyCode;
-    }
-
-    public boolean isManualEntry() {
-        return this.manualEntry;
-    }
-
-    public EnumOptionData getEntityType() {
-        return this.entityType;
-    }
-
-    public Long getEntityId() {
-        return this.entityId;
-    }
-
-    public LocalDate getCreatedDate() {
-        return this.createdDate;
-    }
-
-    public Long getPaymentTypeId() {
-        return this.paymentTypeId;
-    }
-
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformService.java
 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformService.java
index cb867c8c4..6b778fb0b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformService.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformService.java
@@ -30,7 +30,8 @@ public interface JournalEntryReadPlatformService {
     JournalEntryData retrieveGLJournalEntryById(long glJournalEntryId, 
JournalEntryAssociationParametersData associationParametersData);
 
     Page<JournalEntryData> retrieveAll(SearchParameters searchParameters, Long 
glAccountId, Boolean onlyManualEntries, LocalDate fromDate,
-            LocalDate toDate, String transactionId, Integer entityType, 
JournalEntryAssociationParametersData associationParametersData);
+            LocalDate toDate, LocalDate submittedOnDateFrom, LocalDate 
submittedOnDateTo, String transactionId, Integer entityType,
+            JournalEntryAssociationParametersData associationParametersData);
 
     OfficeOpeningBalancesData retrieveOfficeOpeningBalances(Long officeId, 
String currencyCode);
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java
index 907286de7..d1b93c996 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java
@@ -22,11 +22,10 @@ import java.math.BigDecimal;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.time.format.DateTimeFormatterBuilder;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.fineract.accounting.common.AccountingEnumerations;
@@ -85,11 +84,8 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
         private final JournalEntryAssociationParametersData 
associationParametersData;
 
         GLJournalEntryMapper(final JournalEntryAssociationParametersData 
associationParametersData) {
-            if (associationParametersData == null) {
-                this.associationParametersData = new 
JournalEntryAssociationParametersData();
-            } else {
-                this.associationParametersData = associationParametersData;
-            }
+            this.associationParametersData = 
Objects.requireNonNullElseGet(associationParametersData,
+                    JournalEntryAssociationParametersData::new);
         }
 
         public String schema() {
@@ -101,7 +97,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
                     .append(" journalEntry.type_enum as 
entryType,journalEntry.amount as amount, journalEntry.transaction_id as 
transactionId,")
                     .append(" journalEntry.entity_type_enum as entityType, 
journalEntry.entity_id as entityId, creatingUser.id as createdByUserId, ")
                     .append(" creatingUser.username as createdByUserName, 
journalEntry.description as comments, ")
-                    .append(" journalEntry.submitted_on_date as createdDate, 
journalEntry.reversed as reversed, ")
+                    .append(" journalEntry.submitted_on_date as 
submittedOnDate, journalEntry.reversed as reversed, ")
                     .append(" journalEntry.currency_code as currencyCode, 
curr.name as currencyName, curr.internationalized_name_code as 
currencyNameCode, ")
                     .append(" curr.display_symbol as currencyDisplaySymbol, 
curr.decimal_places as currencyDigits, curr.currency_multiplesof as 
inMultiplesOf ");
             if (associationParametersData.isRunningBalanceRequired()) {
@@ -159,7 +155,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
 
             final Long entityId = JdbcSupport.getLong(rs, "entityId");
             final Long createdByUserId = rs.getLong("createdByUserId");
-            final LocalDate createdDate = JdbcSupport.getLocalDate(rs, 
"createdDate");
+            final LocalDate submittedOnDate = JdbcSupport.getLocalDate(rs, 
"submittedOnDate");
             final String createdByUserName = rs.getString("createdByUserName");
             final String comments = rs.getString("comments");
             final Boolean reversed = rs.getBoolean("reversed");
@@ -226,20 +222,21 @@ public class JournalEntryReadPlatformServiceImpl 
implements JournalEntryReadPlat
                 transactionDetailData = new TransactionDetailData(transaction, 
paymentDetailData, noteData, transactionTypeEnumData);
             }
             return new JournalEntryData(id, officeId, officeName, 
glAccountName, glAccountId, glCode, accountType, transactionDate,
-                    entryType, amount, transactionId, manualEntry, entityType, 
entityId, createdByUserId, createdDate, createdByUserName,
-                    comments, reversed, referenceNumber, officeRunningBalance, 
organizationRunningBalance, runningBalanceComputed,
-                    transactionDetailData, currency);
+                    entryType, amount, transactionId, manualEntry, entityType, 
entityId, createdByUserId, submittedOnDate,
+                    createdByUserName, comments, reversed, referenceNumber, 
officeRunningBalance, organizationRunningBalance,
+                    runningBalanceComputed, transactionDetailData, currency);
         }
     }
 
     @Override
     public Page<JournalEntryData> retrieveAll(final SearchParameters 
searchParameters, final Long glAccountId,
-            final Boolean onlyManualEntries, final LocalDate fromDate, final 
LocalDate toDate, final String transactionId,
-            final Integer entityType, final 
JournalEntryAssociationParametersData associationParametersData) {
+            final Boolean onlyManualEntries, final LocalDate fromDate, final 
LocalDate toDate, final LocalDate submittedOnDateFrom,
+            final LocalDate submittedOnDateTo, final String transactionId, 
final Integer entityType,
+            final JournalEntryAssociationParametersData 
associationParametersData) {
 
         GLJournalEntryMapper rm = new 
GLJournalEntryMapper(associationParametersData);
         final StringBuilder sqlBuilder = new StringBuilder(200);
-        sqlBuilder.append("select " + sqlGenerator.calcFoundRows() + " ");
+        sqlBuilder.append("select 
").append(sqlGenerator.calcFoundRows()).append(" ");
         sqlBuilder.append(rm.schema());
 
         final Object[] objectArray = new Object[15];
@@ -247,7 +244,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
         String whereClose = " where ";
 
         if (StringUtils.isNotBlank(transactionId)) {
-            sqlBuilder.append(whereClose + " journalEntry.transaction_id = ?");
+            sqlBuilder.append(whereClose).append(" journalEntry.transaction_id 
= ?");
             objectArray[arrayPos] = transactionId;
             arrayPos = arrayPos + 1;
 
@@ -256,7 +253,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
 
         if (entityType != null && entityType != 0 && (onlyManualEntries == 
null)) {
 
-            sqlBuilder.append(whereClose + " journalEntry.entity_type_enum = 
?");
+            sqlBuilder.append(whereClose).append(" 
journalEntry.entity_type_enum = ?");
 
             objectArray[arrayPos] = entityType;
             arrayPos = arrayPos + 1;
@@ -265,7 +262,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
         }
 
         if (searchParameters.isOfficeIdPassed()) {
-            sqlBuilder.append(whereClose + " journalEntry.office_id = ?");
+            sqlBuilder.append(whereClose).append(" journalEntry.office_id = 
?");
             objectArray[arrayPos] = searchParameters.getOfficeId();
             arrayPos = arrayPos + 1;
 
@@ -273,7 +270,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
         }
 
         if (searchParameters.isCurrencyCodePassed()) {
-            sqlBuilder.append(whereClose + " journalEntry.currency_code = ?");
+            sqlBuilder.append(whereClose).append(" journalEntry.currency_code 
= ?");
             objectArray[arrayPos] = searchParameters.getCurrencyCode();
             arrayPos = arrayPos + 1;
 
@@ -281,7 +278,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
         }
 
         if (glAccountId != null && glAccountId != 0) {
-            sqlBuilder.append(whereClose + " journalEntry.account_id = ?");
+            sqlBuilder.append(whereClose).append(" journalEntry.account_id = 
?");
             objectArray[arrayPos] = glAccountId;
             arrayPos = arrayPos + 1;
 
@@ -289,50 +286,69 @@ public class JournalEntryReadPlatformServiceImpl 
implements JournalEntryReadPlat
         }
 
         if (fromDate != null || toDate != null) {
-            final DateTimeFormatter df = new 
DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd").toFormatter();
-            String fromDateString = null;
-            String toDateString = null;
             if (fromDate != null && toDate != null) {
-                fromDateString = df.format(fromDate);
-                toDateString = df.format(toDate);
-                sqlBuilder.append(whereClose + " journalEntry.entry_date 
between '" + fromDateString + "' and '" + toDateString + "' ");
-
+                sqlBuilder.append(whereClose).append(" journalEntry.entry_date 
between ? and ? ");
                 whereClose = " and ";
+                objectArray[arrayPos] = fromDate;
+                arrayPos = arrayPos + 1;
+                objectArray[arrayPos] = toDate;
+                arrayPos = arrayPos + 1;
             } else if (fromDate != null) {
-                fromDateString = df.format(fromDate);
-                sqlBuilder.append(whereClose + " journalEntry.entry_date >= '" 
+ fromDateString + "' ");
+                sqlBuilder.append(whereClose).append(" journalEntry.entry_date 
>= ? ");
                 whereClose = " and ";
+                objectArray[arrayPos] = fromDate;
+                arrayPos = arrayPos + 1;
+            } else {
+                sqlBuilder.append(whereClose).append(" journalEntry.entry_date 
<= ? ");
+                whereClose = " and ";
+                objectArray[arrayPos] = toDate;
+                arrayPos = arrayPos + 1;
+            }
+        }
 
-            } else if (toDate != null) {
-                toDateString = df.format(toDate);
-                sqlBuilder.append(whereClose + " journalEntry.entry_date <= '" 
+ toDateString + "' ");
-
+        if (submittedOnDateFrom != null || submittedOnDateTo != null) {
+            if (submittedOnDateFrom != null && toDate != null) {
+                sqlBuilder.append(whereClose).append(" 
journalEntry.submitted_on_date between ? and ? ");
                 whereClose = " and ";
+                objectArray[arrayPos] = submittedOnDateFrom;
+                arrayPos = arrayPos + 1;
+                objectArray[arrayPos] = submittedOnDateTo;
+                arrayPos = arrayPos + 1;
+            } else if (fromDate != null) {
+                sqlBuilder.append(whereClose).append(" 
journalEntry.submitted_on_date >= ? ");
+                whereClose = " and ";
+                objectArray[arrayPos] = submittedOnDateFrom;
+                arrayPos = arrayPos + 1;
+            } else {
+                sqlBuilder.append(whereClose).append(" 
journalEntry.submitted_on_date <= ? ");
+                whereClose = " and ";
+                objectArray[arrayPos] = submittedOnDateTo;
+                arrayPos = arrayPos + 1;
             }
         }
 
         if (onlyManualEntries != null) {
             if (onlyManualEntries) {
-                sqlBuilder.append(whereClose + " journalEntry.manual_entry = 
true");
-
+                sqlBuilder.append(whereClose).append(" 
journalEntry.manual_entry = ?");
                 whereClose = " and ";
+                objectArray[arrayPos] = Boolean.TRUE;
+                arrayPos = arrayPos + 1;
             }
         }
 
         if (searchParameters.isLoanIdPassed()) {
-            sqlBuilder.append(whereClose + " journalEntry.loan_transaction_id  
in (select id from m_loan_transaction where loan_id = ?)");
+            sqlBuilder.append(whereClose)
+                    .append(" 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 = ?)");
+            sqlBuilder.append(whereClose).append(
+                    " 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()) {
@@ -368,9 +384,7 @@ public class JournalEntryReadPlatformServiceImpl implements 
JournalEntryReadPlat
             final GLJournalEntryMapper rm = new 
GLJournalEntryMapper(associationParametersData);
             final String sql = "select " + rm.schema() + " where 
journalEntry.id = ?";
 
-            final JournalEntryData glJournalEntryData = 
this.jdbcTemplate.queryForObject(sql, rm, new Object[] { glJournalEntryId }); 
// NOSONAR
-
-            return glJournalEntryData;
+            return this.jdbcTemplate.queryForObject(sql, rm, glJournalEntryId);
         } catch (final EmptyResultDataAccessException e) {
             throw new JournalEntriesNotFoundException(glJournalEntryId, e);
         }
@@ -428,10 +442,8 @@ public class JournalEntryReadPlatformServiceImpl 
implements JournalEntryReadPlat
 
         final LocalDate transactionDate = DateUtils.getBusinessLocalDate();
 
-        final OfficeOpeningBalancesData officeOpeningBalancesData = 
OfficeOpeningBalancesData.createNew(officeId, officeData.name(),
-                transactionDate, contraAccount, assetAccountOpeningBalances, 
liabityAccountOpeningBalances, incomeAccountOpeningBalances,
-                equityAccountOpeningBalances, expenseAccountOpeningBalances);
-        return officeOpeningBalancesData;
+        return OfficeOpeningBalancesData.createNew(officeId, 
officeData.name(), transactionDate, contraAccount, assetAccountOpeningBalances,
+                liabityAccountOpeningBalances, incomeAccountOpeningBalances, 
equityAccountOpeningBalances, expenseAccountOpeningBalances);
     }
 
     private List<JournalEntryData> populateOpeningBalances(final 
List<JournalEntryData> existingOpeningBalanceTransactions,
@@ -493,14 +505,16 @@ public class JournalEntryReadPlatformServiceImpl 
implements JournalEntryReadPlat
         final Boolean onlyManualEntries = null;
         final LocalDate fromDate = null;
         final LocalDate toDate = null;
+        final LocalDate submittedOnDateFrom = null;
+        final LocalDate submittedOnDateTo = null;
         final JournalEntryAssociationParametersData associationParametersData 
= null;
         final Long loanId = null;
         final Long savingsId = null;
 
         final SearchParameters searchParameters = 
SearchParameters.forJournalEntries(officeId, offset, limit, orderBy, sortOrder, 
loanId,
                 savingsId, currencyCode);
-        return retrieveAll(searchParameters, contraId, onlyManualEntries, 
fromDate, toDate, transactionId, entityType,
-                associationParametersData);
+        return retrieveAll(searchParameters, contraId, onlyManualEntries, 
fromDate, toDate, submittedOnDateFrom, submittedOnDateTo,
+                transactionId, entityType, associationParametersData);
 
     }
 

Reply via email to