You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by na...@apache.org on 2016/08/24 11:29:48 UTC

incubator-fineract git commit: [FINERACT-211] Corrected code to avoid detached entity persist exception

Repository: incubator-fineract
Updated Branches:
  refs/heads/develop f33b58308 -> ff58f74d7


[FINERACT-211] Corrected code to avoid detached entity persist exception


Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/ff58f74d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/ff58f74d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/ff58f74d

Branch: refs/heads/develop
Commit: ff58f74d79e5ac62e304c00624fa9497e4ff1df9
Parents: f33b583
Author: Adi Narayana Raju <ad...@confluxtechnologies.com>
Authored: Wed Aug 24 15:35:21 2016 +0530
Committer: Adi Narayana Raju <ad...@confluxtechnologies.com>
Committed: Wed Aug 24 15:35:21 2016 +0530

----------------------------------------------------------------------
 ...andingInstructionWritePlatformServiceImpl.java | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/ff58f74d/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
index 6cb3c4a..8a19139 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
@@ -233,17 +233,21 @@ public class StandingInstructionWritePlatformServiceImpl implements StandingInst
             }
 
             if (isDueForTransfer && transactionAmount != null && transactionAmount.compareTo(BigDecimal.ZERO) > 0) {
-                final AccountTransferDetails accountTransferDetails = this.accountTransferDetailRepository.findOne(data.accountDetailId());
                 final SavingsAccount fromSavingsAccount = null;
                 final boolean isRegularTransaction = true;
                 final boolean isExceptionForBalanceCheck = false;
-                accountTransferDetails.accountTransferStandingInstruction().updateLatsRunDate(transactionDate.toDate());
                 AccountTransferDTO accountTransferDTO = new AccountTransferDTO(transactionDate, transactionAmount, data.fromAccountType(),
                         data.toAccountType(), data.fromAccount().accountId(), data.toAccount().accountId(), data.name()
                                 + " Standing instruction trasfer ", null, null, null, null, data.toTransferType(), null, null, data
-                                .transferType().getValue(), accountTransferDetails, null, null, null, null, fromSavingsAccount,
+                                .transferType().getValue(), null, null, null, null, null, fromSavingsAccount,
                         isRegularTransaction, isExceptionForBalanceCheck);
-                transferAmount(sb, accountTransferDTO, data.getId());
+                final boolean transferCompleted = transferAmount(sb, accountTransferDTO, data.getId());
+
+                if(transferCompleted){
+                    final String updateQuery = "UPDATE m_account_transfer_standing_instructions SET last_run_date = ? where id = ?";
+                    this.jdbcTemplate.update(updateQuery, transactionDate.toDate(), data.getId());
+                }
+
             }
         }
         if (sb.length() > 0) { throw new JobExecutionException(sb.toString()); }
@@ -254,7 +258,8 @@ public class StandingInstructionWritePlatformServiceImpl implements StandingInst
      * @param sb
      * @param accountTransferDTO
      */
-    private void transferAmount(final StringBuilder sb, final AccountTransferDTO accountTransferDTO, final Long instructionId) {
+    private boolean transferAmount(final StringBuilder sb, final AccountTransferDTO accountTransferDTO, final Long instructionId) {
+        boolean transferCompleted = true;
         StringBuffer errorLog = new StringBuffer();
         StringBuffer updateQuery = new StringBuffer(
                 "INSERT INTO `m_account_transfer_standing_instructions_history` (`standing_instruction_id`, `status`, `amount`,`execution_time`, `error_log`) VALUES (");
@@ -284,6 +289,7 @@ public class StandingInstructionWritePlatformServiceImpl implements StandingInst
         }
         updateQuery.append(instructionId).append(",");
         if (errorLog.length() > 0) {
+            transferCompleted = false;
             updateQuery.append("'failed'").append(",");
         } else {
             updateQuery.append("'success'").append(",");
@@ -292,6 +298,6 @@ public class StandingInstructionWritePlatformServiceImpl implements StandingInst
         updateQuery.append(", now(),");
         updateQuery.append("'").append(errorLog.toString()).append("')");
         this.jdbcTemplate.update(updateQuery.toString());
-
+        return transferCompleted;
     }
 }
\ No newline at end of file