fix: correct invoice order in payment reconcillaiton #46574
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue: When a query is executed without an ORDER BY clause, the data is sorted according to the primary key.
In a GROUP BY query, non-aggregate values are retrieved either randomly or from the first row of each aggregation (the exact behaviour is unclear). As a result, when retrieving outstanding invoices during payment reconciliation with limit, some invoices that have payments made on a later date do not appear because their posting dates are considered from the another payment ledger entry.
Steps to replicate:
2nd invoice will be fetched even though 1st invoice should be fetched because the first invoice's posting date will be from payment ledger entry of payment.
Query:
Before
For voucher, ACC-SINV-2025-00034-1 posting date is 26-03-2025 even though voucher is created on 01-09-2024
After:
Frappe Support Issue: https://support.frappe.io/app/hd-ticket/33761