mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-08 15:42:52 +00:00
* fix: Taxes aren't discounted on early payment discount - Deductions in payment entry must be split into income loss and tax loss - Compute total discount in percentage, makes discounting different amounts proportionately easier (cherry picked from commit768c3a4927) * fix: Recalculate difference amount after setting deductions (cherry picked from commit75ec0a0a85) * fix: Set deductions in base currency - Use field precision to get more accurate values (cherry picked from commitdc2998f544) * fix: Back update discounted amount in Invoice based on discount type - Discount value was always trated as a percentage on back updation (cherry picked from commit2ae5834290) * test: PE from SI with early payment discount amount & PE assertions in discount % test (cherry picked from commitc217bb2018) * fix: Set deduction amount in company currency on Doctype - Even via JS, deductions amount is always in company currency - Since there is nothing dynamic about this field, set it in the doctype spec itself - fixed: Inconsistency between label currency and field currency formatted value (cherry picked from commit7f2e7badff) * fix: Don't add to deductions if amount is 0 - misc: better docstring (cherry picked from commitf02fc8acf0) * fix: Paid amount must be discounted considering accounting currency - Accounting is in the same currency if party currency and company currency is the same - If accounting is in the same currency, paid and recvd amount is in the base currency - Then, discount amount must also be in the base currency as it is deducted from paid amount - Received amount must be in base currency if not multi currency - cleanup: Deductions setting broken into smaller functions (cherry picked from commit761f68d7bf) * fix: Multi-currency SI with base currency PE - Return total discount loss in base currency - Allocate payment based on terms: Set allocated amount in references table in base currency if accounting is in that currency - Allocate payment based on terms: While back updating set paid amount (payment schedule) in transaction currency always - minor: discount msgprint in correct currency (cherry picked from commitb09c2381ca) * test: Multi currency SI with multi-currency accounting and single currency accounting + Early payment discount (cherry picked from commit9abf0ef615) # Conflicts: # erpnext/accounts/doctype/payment_entry/test_payment_entry.py * fix: Handle rounding more gracefully - Round off pending discount loss to avoid miniscule losses rounded to 0.0 that are added in deductions - Use base amounts to calculate base losses instead of using conversion factor which increases rounding error - Round of total base loss instead of individual income and tax losses to reduce rounding error - Use default round off account for pending rounding loss in deductions (cherry picked from commitcaa1a3dccf) * fix: Provision to apply early payment discount if payment is recorded late - Party could have paid on time but payment is recorded late - Prompt for reference date so that discount is applied while mapping - Prompt only if discount in payment schedule of valid doctypes - test: Reference date and impact on PE - `make_payment_entry` (JS) must be able to access `this` (cherry picked from commitd6d0163514) # Conflicts: # erpnext/accounts/doctype/payment_entry/payment_entry.py # erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js # erpnext/buying/doctype/purchase_order/purchase_order.js # erpnext/public/js/controllers/transaction.js * feat: Make Tax loss booking optional - Checkbox in Accounts Settings - Apply checkbox in PE deductions setting logic - Adjust tests (cherry picked from commit216a46bd66) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json * fix: Merge conflicts * fix: 'Donation' does not have `company_currency` field - Make sure check uses this field only for eligible documents --------- Co-authored-by: marination <maricadsouza221197@gmail.com>