diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java index 36facf649..9cd21cff8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java @@ -354,10 +354,10 @@ public class ShareAccount extends AbstractPersistable { } public void updateRequestedShares(ShareAccountTransaction purchased) { - if (!this.shareAccountTransactions.isEmpty()) { - Iterator iter = this.shareAccountTransactions.iterator(); - ShareAccountTransaction existing = iter.next(); - existing.update(purchased.getPurchasedDate(), purchased.getTotalShares(), purchased.getPurchasePrice()); + for(ShareAccountTransaction transaction: this.shareAccountTransactions) { + if(!transaction.isChargeTransaction() && transaction.getId().equals(purchased.getId())) { + transaction.update(purchased.getPurchasedDate(), purchased.getTotalShares(), purchased.getPurchasePrice()); + } } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java index 384e94ff5..662b2cd53 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java @@ -112,7 +112,7 @@ public class ShareAccountTransaction extends AbstractPersistable { final Integer status = PurchasedSharesStatusType.APPROVED.getValue() ; final Integer type = PurchasedSharesStatusType.CHARGE_PAYMENT.getValue() ; BigDecimal amount = charge.percentageOrAmount() ; - BigDecimal chargeAmount = amount ; + BigDecimal chargeAmount = null ; return new ShareAccountTransaction(transactionDate, totalShares, unitPrice, status, type, amount, chargeAmount) ; }