mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-20 17:59:57 +00:00
* feat(accounts): add Bank Charges account for Payment Entry deductions Add an optional Bank Charges Account field on Company. When a Payment Entry has a difference between the paid and received amount (e.g. a same-currency Internal Transfer where the bank deducted a fee), that amount now books to the Bank Charges account in the deductions table instead of always going to the Exchange Gain/Loss account. Left blank, behavior is unchanged. Mirrors the resolution on both the server (set_exchange_gain_loss) and client (set_exchange_gain_loss_deduction) so the deduction row is pre-filled consistently before and after save. A user's manual account edit on an existing deduction row is preserved across recalculation, same as before this change. * fix(accounts): only route Payment Entry difference to Bank Charges for same-currency transfers Cross-currency Payment Entries were also matching the unconditional bank_charges_account precedence, misrouting a genuine exchange gain/loss into the Bank Charges account. Only prefer Bank Charges Account when paid_from and paid_to share a currency; cross-currency differences continue to book to Exchange Gain/Loss Account. * test(payment_entry): assert against actual exchange gain/loss account, not a hardcoded name CI failed: _Test Company's exchange_gain_loss_account is auto-provisioned as "Exchange Gain/Loss - _TC" by the standard chart of accounts, not the "_Test Exchange Gain/Loss - _TC" account used only by a sibling test. * fix(accounts): auto-set Bank Charges Account from chart of accounts default The standard chart of accounts already ships a "Bank Charges" ledger account, but set_default_accounts() never picked it up into the Company's bank_charges_account field, unlike its write_off_account and exchange_gain_loss_account siblings. New and existing companies now get it auto-populated the same way. --------- Co-authored-by: test <test@test.com>