* 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 commit 768c3a4927)
* fix: Recalculate difference amount after setting deductions
(cherry picked from commit 75ec0a0a85)
* fix: Set deductions in base currency
- Use field precision to get more accurate values
(cherry picked from commit dc2998f544)
* 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 commit 2ae5834290)
* test: PE from SI with early payment discount amount & PE assertions in discount % test
(cherry picked from commit c217bb2018)
* 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 commit 7f2e7badff)
* fix: Don't add to deductions if amount is 0
- misc: better docstring
(cherry picked from commit f02fc8acf0)
* 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 commit 761f68d7bf)
* 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 commit b09c2381ca)
* test: Multi currency SI with multi-currency accounting and single currency accounting + Early payment discount
(cherry picked from commit 9abf0ef615)
# 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 commit caa1a3dccf)
* 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 commit d6d0163514)
# 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 commit 216a46bd66)
# 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>
fix(minor): Dirty the form after clicking on Get advances button in Invoices (#34323)
fix(minor): Dirty form after clicking on Get advances button
(cherry picked from commit 2feb27e399)
Co-authored-by: Marica <maricadsouza221197@gmail.com>
fix(UX): dont apply price list when changing batch on mapped docs (#31503)
fix(UX): dont apply price list batch change on mapped docs
(cherry picked from commit 7e40c86c56)
Co-authored-by: Ankush Menat <ankush@frappe.io>
* fix: transaction date gets unset in material request (#31327)
* fix: set date correctly in material request
* fix: use only `transaction_date` in `get_item_details`
* fix: resolve merge conflict
Co-authored-by: Sagar Vora <sagar@resilient.tech>
- `set_missing_values` in SE will set actual qty, transfer qty and calculate rate/amount
- Re-use `set_missing_values` wherever SE is doc is being mapped
(cherry picked from commit 90a8e924f5)
* fix: Fetch conversion factor even if it already existed in row, on item change
* fix: Retain manually changed conversion factor
- If item code changes, reset conversion factor on client side
- Keep API behavious consistent, if conversion factor is sent, same must come back
- API should not ideally reset values in most cases
(cherry picked from commit 235fc127b3)
Co-authored-by: Marica <maricadsouza221197@gmail.com>