diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py index 270ad53aa8d..80ba0f5563d 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.py +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py @@ -137,8 +137,8 @@ class GLEntry(Document): if not self.is_cancelled and not (self.party_type and self.party): account_type = frappe.get_cached_value("Account", self.account, "account_type") - # skipping validation for payroll entry creation in case party is not required - if not frappe.flags.party_not_required_for_receivable_payable: + + if not frappe.flags.party_not_required: # skipping validation if party is not required if account_type == "Receivable": frappe.throw( _("{0} {1}: Customer is required against Receivable account {2}").format( diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.json b/erpnext/accounts/doctype/journal_entry/journal_entry.json index f2998008722..7058cd90461 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.json +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.json @@ -64,6 +64,7 @@ "addtional_info", "mode_of_payment", "payment_order", + "party_not_required", "column_break3", "is_opening", "stock_entry", @@ -577,6 +578,14 @@ "fieldname": "get_balance_for_periodic_accounting", "fieldtype": "Button", "label": "Get Balance" + }, + { + "default": "0", + "fieldname": "party_not_required", + "fieldtype": "Check", + "hidden": 1, + "label": "Party Not Required", + "no_copy": 1 } ], "icon": "fa fa-file-text", @@ -591,7 +600,7 @@ "table_fieldname": "payment_entries" } ], - "modified": "2025-07-06 15:22:58.465131", + "modified": "2025-09-29 13:05:46.982277", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry", diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 1c044ddd95e..b95e140b706 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -72,6 +72,7 @@ class JournalEntry(AccountsController): mode_of_payment: DF.Link | None multi_currency: DF.Check naming_series: DF.Literal["ACC-JV-.YYYY.-"] + party_not_required: DF.Check pay_to_recd_from: DF.Data | None payment_order: DF.Link | None periodic_entry_difference_account: DF.Link | None @@ -645,10 +646,10 @@ class JournalEntry(AccountsController): for d in self.get("accounts"): account_type = frappe.get_cached_value("Account", d.account, "account_type") - # skipping validation for payroll entry creation - skip_validation = frappe.flags.party_not_required_for_receivable_payable if account_type in ["Receivable", "Payable"]: - if not (d.party_type and d.party) and not skip_validation: + if ( + not (d.party_type and d.party) and not self.party_not_required + ): # skipping validation if party_not_required is passed via payroll entry frappe.throw( _( "Row {0}: Party Type and Party is required for Receivable / Payable account {1}" @@ -1240,6 +1241,11 @@ class JournalEntry(AccountsController): } ) + # set flag to skip party validation + account_type = frappe.get_cached_value("Account", d.account, "account_type") + if account_type in ["Receivable", "Payable"] and self.party_not_required: + frappe.flags.party_not_required = True + gl_map.append( self.get_gl_dict( row, @@ -1267,6 +1273,7 @@ class JournalEntry(AccountsController): merge_entries=merge_entries, update_outstanding=update_outstanding, ) + frappe.flags.party_not_required = False if cancel: cancel_exchange_gain_loss_journal(frappe._dict(doctype=self.doctype, name=self.name)) diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json index 45dc903c068..e6f2ff7cf56 100644 --- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json +++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json @@ -285,7 +285,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2025-07-25 04:45:28.117715", + "modified": "2025-09-29 13:01:48.916517", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry Account",