[ 
https://issues.apache.org/jira/browse/FINERACT-2895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Saghy resolved FINERACT-2895.
----------------------------------
    Resolution: Fixed

> Reverse-replay replaces a WAIVE_CHARGES transaction without its charge link, 
> so the waiver can no longer be undone
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: FINERACT-2895
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2895
>             Project: Apache Fineract
>          Issue Type: Bug
>          Components: Charges
>    Affects Versions: 1.15.0
>            Reporter: Piotr Wargulak
>            Assignee: Piotr Wargulak
>            Priority: Major
>             Fix For: 1.16.0
>
>
> On a progressive loan (advanced payment allocation), reprocessing after a 
> backdated or reversed transaction can replace a WAIVE_CHARGES transaction, 
> even though waivers are not reprocessed.
> AdvancedPaymentScheduleTransactionProcessor#useOldTransactionIfApplicable 
> keeps the original waiver only when nothing else on the same date was 
> replaced. Otherwise it returns null, and the caller creates a new waiver 
> transaction. copyTransactionProperties copies charge links 
> (m_loan_charge_paid_by) only for CHARGE_PAYMENT and 
> REPAYMENT_AT_DISBURSEMENT, so the new waiver has no link to the charge it 
> waived.
> Result: undo-waive fails on the copy ("loan charge cannot be found") and on 
> the reversed original ("already reversed"). The charge stays waived with no 
> supported way back. Balances remain correct, so the problem stays hidden 
> until someone tries to undo the waiver.
> *Steps to reproduce:*
>  # Create a progressive loan with a specified-due-date fee.
>  # Make two repayments on the same day, then waive the fee on that day.
>  # Reverse the first repayment.
>  # Try to undo the waiver.
> *Proposed fix:* in useOldTransactionIfApplicable, always keep the original 
> WAIVE_CHARGES transaction. This matches the existing comment there 
> ("WAIVE_CHARGES is not reprocessed"). Add a unit test covering a same-day 
> replacement.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to