Aman-Mittal opened a new issue, #757:
URL: https://github.com/apache/fineract-backoffice-ui/issues/757

   ### Summary
   After a loan transaction is reversed (Adjust Transaction with amount 0), the 
platform marks it `manuallyReversed: true` and stops counting it. The loan's 
**Transactions** tab keeps listing it as a normal transaction, with the same 
type, sign and amount and no reversed label or styling. Staff see payments that 
no longer count.
   
   ### Environment
   - App: https://aman-mittal.github.io/fineract-backoffice-ui (deployed 
`main`), `/loans/view/2` → Transactions
   - Backend: `sandbox.mifos.community`, tenant `default`
   - Role: superuser
   - 2026-10-16
   
   ### Preconditions
   An active loan with at least one repayment.
   
   ### Steps to reproduce
   1. Loan → **Transactions** → View (eye icon) on a repayment → **Adjust 
Transaction**.
   2. Set Transaction Amount to `0`, add a note, **Adjust Transaction** → 
**Confirm**.
   3. Reload the loan and open **Transactions**.
   
   ### Expected behavior
   The reversed transaction is clearly marked (for example a "Reversed" badge, 
struck-through amount or muted row), or hidden behind a "show reversed" toggle. 
The Overview totals and the list agree.
   
   ### Actual behavior
   ```
   POST /loans/2/transactions/6  {transactionAmount: 0, …} → 200
   GET  /loans/2?associations=transactions
        → tx 5 Repayment 100 manuallyReversed:false
          tx 6 Repayment 100 manuallyReversed:true
        → summary.totalRepayment 100, totalOutstanding 10252.91
   ```
   The UI list, after a full reload:
   ```
   5  15/10/2026  Repayment  + $100.00
   6  15/10/2026  Repayment  + $100.00      ← reversed, rendered identically
   ```
   Overview shows Total Outstanding $10,252.91, which matches only **one** 
repayment. So the list says $200 was paid and the balance says $100.
   
   ### Evidence
   API fields above. Row computed style has no decoration difference. 
Screenshot taken locally during the audit.
   
   ### Impact
   Reconciliation and customer disputes depend on this list. An officer 
explaining a balance to a borrower will count a payment that was cancelled. It 
also hides the trail of the very correction staff make after an error such as a 
double-posted repayment.
   
   ### Suggested investigation
   The Transactions tab mapper probably drops `manuallyReversed` (and possibly 
`reversedOnDate`). Render a reversed state, and exclude reversed rows from any 
client-side running totals.
   
   ### Verification status
   Reproduced, including after reload.
   
   ### Related endpoints
   `GET /loans/{id}?associations=transactions`, `POST 
/loans/{id}/transactions/{txId}`
   
   ### Acceptance criteria
   - A transaction with `manuallyReversed: true` is visibly marked as reversed 
in the loan Transactions tab (and the savings equivalent, if it has the same 
gap).
   - A unit test with a reversed transaction in the fixture asserts the marker.
   
   ### Related issues
   Found while reversing the duplicate repayment described in the double-submit 
issue filed alongside this one.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to