From 1ff473b615fddfffb928fcb67fa79de3efe6671b Mon Sep 17 00:00:00 2001 From: RitvikSardana Date: Wed, 31 Jan 2024 11:34:20 +0530 Subject: [PATCH] fix: add ignore_permissions flag while creating a payment entry --- .../accounts/doctype/journal_entry/journal_entry.py | 6 ++++-- .../accounts/doctype/payment_entry/payment_entry.py | 13 +++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index f722c907be..689dbe376b 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1155,7 +1155,9 @@ class JournalEntry(AccountsController): @frappe.whitelist() -def get_default_bank_cash_account(company, account_type=None, mode_of_payment=None, account=None): +def get_default_bank_cash_account( + company, account_type=None, mode_of_payment=None, account=None, ignore_permissions=False +): from erpnext.accounts.doctype.sales_invoice.sales_invoice import get_bank_cash_account if mode_of_payment: @@ -1193,7 +1195,7 @@ def get_default_bank_cash_account(company, account_type=None, mode_of_payment=No return frappe._dict( { "account": account, - "balance": get_balance_on(account), + "balance": get_balance_on(account, ignore_account_permission=ignore_permissions), "account_currency": account_details.account_currency, "account_type": account_details.account_type, } diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 7e88b6b7c9..309f072d27 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -2220,6 +2220,7 @@ def get_payment_entry( party_type=None, payment_type=None, reference_date=None, + ignore_permissions=False, ): doc = frappe.get_doc(dt, dn) over_billing_allowance = frappe.db.get_single_value("Accounts Settings", "over_billing_allowance") @@ -2242,14 +2243,14 @@ def get_payment_entry( ) # bank or cash - bank = get_bank_cash_account(doc, bank_account) + bank = get_bank_cash_account(doc, bank_account, ignore_permissions=ignore_permissions) # if default bank or cash account is not set in company master and party has default company bank account, fetch it if party_type in ["Customer", "Supplier"] and not bank: party_bank_account = get_party_bank_account(party_type, doc.get(scrub(party_type))) if party_bank_account: account = frappe.db.get_value("Bank Account", party_bank_account, "account") - bank = get_bank_cash_account(doc, account) + bank = get_bank_cash_account(doc, account, ignore_permissions=ignore_permissions) paid_amount, received_amount = set_paid_amount_and_received_amount( dt, party_account_currency, bank, outstanding_amount, payment_type, bank_amount, doc @@ -2389,9 +2390,13 @@ def update_accounting_dimensions(pe, doc): pe.set(dimension, doc.get(dimension)) -def get_bank_cash_account(doc, bank_account): +def get_bank_cash_account(doc, bank_account, ignore_permissions=False): bank = get_default_bank_cash_account( - doc.company, "Bank", mode_of_payment=doc.get("mode_of_payment"), account=bank_account + doc.company, + "Bank", + mode_of_payment=doc.get("mode_of_payment"), + account=bank_account, + ignore_permissions=ignore_permissions, ) if not bank: