diff --git a/erpnext/accounts/doctype/dunning/dunning.js b/erpnext/accounts/doctype/dunning/dunning.js index c9955c7e359..10d6043605b 100644 --- a/erpnext/accounts/doctype/dunning/dunning.js +++ b/erpnext/accounts/doctype/dunning/dunning.js @@ -234,8 +234,10 @@ frappe.ui.form.on("Dunning", { dn: frm.doc.name, }, callback: function (r) { - var doc = frappe.model.sync(r.message); - frappe.set_route("Form", doc[0].doctype, doc[0].name); + if (!r.exc) { + var doc = frappe.model.sync(r.message); + frappe.set_route("Form", doc[0].doctype, doc[0].name); + } }, }); }, diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index bccf718f4a6..2069593992d 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1526,6 +1526,7 @@ def get_payment_entry_against_order( dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None ): ref_doc = frappe.get_doc(dt, dn) + ref_doc.check_permission() if flt(ref_doc.per_billed, 2) > 0: frappe.throw(_("Can only make payment against unbilled {0}").format(dt)) @@ -1571,6 +1572,8 @@ def get_payment_entry_against_invoice( dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None ): ref_doc = frappe.get_doc(dt, dn) + ref_doc.check_permission() + if dt == "Sales Invoice": party_type = "Customer" party_account = get_party_account_based_on_invoice_discounting(dn) or ref_doc.debit_to @@ -1606,6 +1609,8 @@ def get_payment_entry_against_invoice( def get_payment_entry(ref_doc, args): + frappe.has_permission("Journal Entry", ptype="create", throw=True) + cost_center = ref_doc.get("cost_center") or frappe.get_cached_value( "Company", ref_doc.company, "cost_center" ) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 2746de2b99b..a16e6d01639 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -2894,10 +2894,13 @@ def get_payment_entry( party_type=None, payment_type=None, reference_date=None, - ignore_permissions=False, created_from_payment_request=False, ): + frappe.has_permission("Payment Entry", ptype="create", throw=True) + doc = frappe.get_doc(dt, dn) + doc.check_permission() + over_billing_allowance = frappe.db.get_single_value("Accounts Settings", "over_billing_allowance") if dt in ("Sales Order", "Purchase Order") and flt(doc.per_billed, 2) >= (100.0 + over_billing_allowance): frappe.throw(_("Can only make payment against unbilled {0}").format(_(dt))) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 7a133acaf9e..54c13bd0dff 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -2367,8 +2367,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe method: me.get_method_for_payment(), args: args, callback: function(r) { - var doclist = frappe.model.sync(r.message); - frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + if (!r.exc) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + } } }); }