diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.js b/erpnext/accounts/doctype/accounts_settings/accounts_settings.js index 586db2d1566..79d9138a886 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.js +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.js @@ -10,6 +10,9 @@ frappe.ui.form.on("Accounts Settings", { }, }; }); + if (!frm.naming_controller) frm.naming_controller = new erpnext.NamingSeriesController(frm); + + frm.naming_controller.render_table("transaction_naming_html", get_transactions(frm)); }, enable_immutable_ledger: function (frm) { if (!frm.doc.enable_immutable_ledger) { @@ -49,3 +52,16 @@ function toggle_tax_settings(frm, field_name) { frm.set_value(other_field, 0); } } + +function get_transactions(frm) { + const transactions = [ + { label: __("Journal Entry"), doctype: "Journal Entry" }, + { label: __("Payment Entry"), doctype: "Payment Entry" }, + { label: __("Purchase Invoice"), doctype: "Purchase Invoice" }, + { label: __("Purchase Order"), doctype: "Purchase Order" }, + { label: __("Purchase Receipt"), doctype: "Purchase Receipt" }, + { label: __("Sales Invoice"), doctype: "Sales Invoice" }, + ]; + + return transactions; +} diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index 9256138ba63..6806947b681 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -22,9 +22,9 @@ "allow_multi_currency_invoices_against_single_party_account", "confirm_before_resetting_posting_date", "analytics_section", + "enable_discounts_and_margin", "enable_accounting_dimensions", "column_break_vtnr", - "enable_discounts_and_margin", "journals_section", "merge_similar_account_heads", "deferred_accounting_settings_section", @@ -43,7 +43,6 @@ "print_settings", "show_inclusive_tax_in_print", "show_taxes_as_table_in_print", - "column_break_12", "show_payment_schedule_in_print", "item_price_settings_section", "maintain_same_internal_transaction_rate", @@ -59,29 +58,30 @@ "payments_tab", "section_break_jpd0", "auto_reconcile_payments", + "exchange_gain_loss_posting_date", "auto_reconciliation_job_trigger", "reconciliation_queue_size", "column_break_resa", - "exchange_gain_loss_posting_date", "repost_section", + "column_break_mfor", "repost_allowed_types", "payment_options_section", + "fetch_payment_schedule_in_payment_request", "enable_loyalty_point_program", "column_break_ctam", - "fetch_payment_schedule_in_payment_request", "invoicing_settings_tab", "accounts_transactions_settings_section", - "over_billing_allowance", - "column_break_11", - "role_allowed_to_over_bill", - "credit_controller", "make_payment_via_journal_entry", + "over_billing_allowance", + "credit_controller", + "role_allowed_to_over_bill", + "column_break_11", "assets_tab", "asset_settings_section", - "calculate_depr_using_total_days", - "column_break_gjcc", "book_asset_depreciation_entry_automatically", + "calculate_depr_using_total_days", "role_to_notify_on_depreciation_failure", + "column_break_gjcc", "closing_settings_tab", "period_closing_settings_section", "ignore_account_closing_balance", @@ -90,8 +90,8 @@ "reports_tab", "remarks_section", "general_ledger_remarks_length", - "column_break_lvjk", "receivable_payable_remarks_length", + "column_break_lvjk", "accounts_receivable_payable_tuning_section", "receivable_payable_fetch_method", "default_ageing_range", @@ -103,11 +103,14 @@ "show_balance_in_coa", "banking_section", "enable_party_matching", + "automatically_run_rules_on_unreconciled_transactions", "enable_fuzzy_matching", "payment_request_section", "create_pr_in_draft_status", "budget_section", - "use_legacy_budget_controller" + "use_legacy_budget_controller", + "document_naming_tab", + "transaction_naming_html" ], "fields": [ { @@ -115,14 +118,14 @@ "description": "Address used to determine Tax Category in transactions", "fieldname": "determine_address_tax_category_from", "fieldtype": "Select", - "label": "Determine Address Tax Category From", + "label": "Determine Address Tax Category from", "options": "Billing Address\nShipping Address" }, { "fieldname": "credit_controller", "fieldtype": "Link", "in_list_view": 1, - "label": "Role allowed to bypass Credit Limit", + "label": "Role allowed to bypass credit limit", "options": "Role" }, { @@ -130,7 +133,7 @@ "description": "Enabling this ensures each Purchase Invoice has a unique value in Supplier Invoice No. field within a particular fiscal year", "fieldname": "check_supplier_invoice_uniqueness", "fieldtype": "Check", - "label": "Check Supplier Invoice Number Uniqueness" + "label": "Check Supplier invoice number uniqueness" }, { "default": "0", @@ -141,27 +144,29 @@ }, { "default": "1", + "documentation_url": "https://docs.frappe.io/erpnext/accounts-settings#4-unlink-payment-on-cancellation-of-invoice", "fieldname": "unlink_payment_on_cancellation_of_invoice", "fieldtype": "Check", - "label": "Unlink Payment on Cancellation of Invoice" + "label": "Unlink Payment on cancellation of invoice" }, { "default": "1", + "documentation_url": "https://docs.frappe.io/erpnext/accounts-settings#8-unlink-advance-payment-on-cancellation-of-order", "fieldname": "unlink_advance_payment_on_cancelation_of_order", "fieldtype": "Check", - "label": "Unlink Advance Payment on Cancellation of Order" + "label": "Unlink Advance Payment on cancellation of order" }, { "default": "1", "fieldname": "book_asset_depreciation_entry_automatically", "fieldtype": "Check", - "label": "Book Asset Depreciation Entry Automatically" + "label": "Book Asset Depreciation entry automatically" }, { "default": "1", "fieldname": "add_taxes_from_item_tax_template", "fieldtype": "Check", - "label": "Automatically Add Taxes and Charges from Item Tax Template" + "label": "Automatically add Taxes and Charges from Item Tax Template" }, { "fieldname": "print_settings", @@ -172,17 +177,13 @@ "default": "0", "fieldname": "show_inclusive_tax_in_print", "fieldtype": "Check", - "label": "Show Inclusive Tax in Print" - }, - { - "fieldname": "column_break_12", - "fieldtype": "Column Break" + "label": "Show inclusive tax in print" }, { "default": "0", "fieldname": "show_payment_schedule_in_print", "fieldtype": "Check", - "label": "Show Payment Schedule in Print" + "label": "Show Payment Schedule in print" }, { "fieldname": "currency_exchange_section", @@ -208,7 +209,7 @@ "description": "Payment Terms from orders will be fetched into the invoices as is", "fieldname": "automatically_fetch_payment_terms", "fieldtype": "Check", - "label": "Automatically Fetch Payment Terms from Order/Quotation" + "label": "Automatically fetch Payment Terms from Order/Quotation" }, { "description": "The percentage you are allowed to bill more against the amount ordered. For example, if the order value is $100 for an item and tolerance is set as 10%, then you are allowed to bill up to $110 ", @@ -220,7 +221,7 @@ "default": "1", "fieldname": "automatically_process_deferred_accounting_entry", "fieldtype": "Check", - "label": "Automatically Process Deferred Accounting Entry" + "label": "Automatically process deferred Accounting entry" }, { "fieldname": "deferred_accounting_settings_section", @@ -236,7 +237,7 @@ "description": "If this is unchecked, direct GL entries will be created to book deferred revenue or expense", "fieldname": "book_deferred_entries_via_journal_entry", "fieldtype": "Check", - "label": "Book Deferred Entries Via Journal Entry" + "label": "Book deferred entries via Journal Entry" }, { "default": "0", @@ -244,38 +245,37 @@ "description": "If this is unchecked Journal Entries will be saved in a Draft state and will have to be submitted manually", "fieldname": "submit_journal_entries", "fieldtype": "Check", - "label": "Submit Journal Entries" + "label": "Submit Journal entries" }, { "default": "Days", "description": "If \"Months\" is selected, a fixed amount will be booked as deferred revenue or expense for each month irrespective of the number of days in a month. It will be prorated if deferred revenue or expense is not booked for an entire month", "fieldname": "book_deferred_entries_based_on", "fieldtype": "Select", - "label": "Book Deferred Entries Based On", + "label": "Book Deferred entries based on", "options": "Days\nMonths" }, { "default": "0", "fieldname": "delete_linked_ledger_entries", "fieldtype": "Check", - "label": "Delete Accounting and Stock Ledger Entries on deletion of Transaction" + "label": "Delete Accounting and Stock Ledger entries on deletion of transaction" }, { + "depends_on": "eval: doc.over_billing_allowance > 0", "description": "Users with this role are allowed to over bill above the allowance percentage", "fieldname": "role_allowed_to_over_bill", "fieldtype": "Link", - "label": "Role Allowed to Over Bill ", + "label": "Role Allowed to over bill ", "options": "Role" }, { "fieldname": "period_closing_settings_section", - "fieldtype": "Section Break", - "label": "Period Closing Settings" + "fieldtype": "Section Break" }, { "fieldname": "accounts_transactions_settings_section", - "fieldtype": "Section Break", - "label": "Credit Limit Settings" + "fieldtype": "Section Break" }, { "fieldname": "column_break_11", @@ -360,14 +360,14 @@ "default": "1", "fieldname": "show_balance_in_coa", "fieldtype": "Check", - "label": "Show Balances in Chart Of Accounts" + "label": "Show balances in Chart of Accounts" }, { "default": "0", "description": "Split Early Payment Discount Loss into Income and Tax Loss", "fieldname": "book_tax_discount_loss", "fieldtype": "Check", - "label": "Book Tax Loss on Early Payment Discount" + "label": "Book tax loss on early payment discount" }, { "fieldname": "journals_section", @@ -379,7 +379,7 @@ "description": "Rows with Same Account heads will be merged on Ledger", "fieldname": "merge_similar_account_heads", "fieldtype": "Check", - "label": "Merge Similar Account Heads" + "label": "Merge similar Account Heads" }, { "fieldname": "section_break_jpd0", @@ -390,13 +390,13 @@ "default": "0", "fieldname": "auto_reconcile_payments", "fieldtype": "Check", - "label": "Auto Reconcile Payments" + "label": "Auto reconcile Payments" }, { "default": "0", "fieldname": "show_taxes_as_table_in_print", "fieldtype": "Check", - "label": "Show Taxes as Table in Print" + "label": "Show taxes as table in print" }, { "default": "0", @@ -418,14 +418,14 @@ "description": "Financial reports will be generated using GL Entry doctypes (should be enabled if Period Closing Voucher is not posted for all years sequentially or missing) ", "fieldname": "ignore_account_closing_balance", "fieldtype": "Check", - "label": "Ignore Account Closing Balance" + "label": "Ignore Account closing balance" }, { "default": "0", "description": "Tax Amount will be rounded on a row(items) level", "fieldname": "round_row_wise_tax", "fieldtype": "Check", - "label": "Round Tax Amount Row-wise" + "label": "Round tax amount row-wise" }, { "fieldname": "reports_tab", @@ -437,14 +437,14 @@ "description": "Truncates 'Remarks' column to set character length", "fieldname": "general_ledger_remarks_length", "fieldtype": "Int", - "label": "General Ledger" + "label": "General Ledger remarks length" }, { "default": "0", "description": "Truncates 'Remarks' column to set character length", "fieldname": "receivable_payable_remarks_length", "fieldtype": "Int", - "label": "Accounts Receivable/Payable" + "label": "Accounts Receivable / Payable remarks length" }, { "fieldname": "column_break_lvjk", @@ -478,7 +478,7 @@ "description": "Payment Requests made from Sales / Purchase Invoice will be put in Draft explicitly", "fieldname": "create_pr_in_draft_status", "fieldtype": "Check", - "label": "Create in Draft Status" + "label": "Create payment requests in Draft status" }, { "fieldname": "column_break_yuug", @@ -493,14 +493,14 @@ "description": "Interval should be between 1 to 59 MInutes", "fieldname": "auto_reconciliation_job_trigger", "fieldtype": "Int", - "label": "Auto Reconciliation Job Trigger" + "label": "Auto Reconciliation job trigger" }, { "default": "5", "description": "Documents Processed on each trigger. Queue Size should be between 5 and 100", "fieldname": "reconciliation_queue_size", "fieldtype": "Int", - "label": "Reconciliation Queue Size" + "label": "Reconciliation queue size" }, { "default": "0", @@ -514,14 +514,14 @@ "description": "Only applies for Normal Payments", "fieldname": "exchange_gain_loss_posting_date", "fieldtype": "Select", - "label": "Posting Date Inheritance for Exchange Gain / Loss", + "label": "Posting Date inheritance for exchange gain / loss", "options": "Invoice\nPayment\nReconciliation Date" }, { "default": "Buffered Cursor", "fieldname": "receivable_payable_fetch_method", "fieldtype": "Select", - "label": "Data Fetch Method", + "label": "Data fetch method", "options": "Buffered Cursor\nUnBuffered Cursor" }, { @@ -538,14 +538,14 @@ "default": "0", "fieldname": "maintain_same_internal_transaction_rate", "fieldtype": "Check", - "label": "Maintain Same Rate Throughout Internal Transaction" + "label": "Maintain same rate throughout internal Transaction" }, { "default": "Stop", "depends_on": "maintain_same_internal_transaction_rate", "fieldname": "maintain_same_rate_action", "fieldtype": "Select", - "label": "Action if Same Rate is Not Maintained Throughout Internal Transaction", + "label": "Action if same rate is not maintained throughout internal transaction", "mandatory_depends_on": "maintain_same_internal_transaction_rate", "options": "Stop\nWarn" }, @@ -553,7 +553,7 @@ "depends_on": "eval: doc.maintain_same_internal_transaction_rate && doc.maintain_same_rate_action == 'Stop'", "fieldname": "role_to_override_stop_action", "fieldtype": "Link", - "label": "Role Allowed to Override Stop Action", + "label": "Role allowed to override stop action", "options": "Role" }, { @@ -585,7 +585,7 @@ "description": "If no taxes are set, and Taxes and Charges Template is selected, the system will automatically apply the taxes from the chosen template.", "fieldname": "add_taxes_from_taxes_and_charges_template", "fieldtype": "Check", - "label": "Automatically Add Taxes from Taxes and Charges Template" + "label": "Automatically add taxes from Taxes and Charges Template" }, { "fieldname": "column_break_ntmi", @@ -595,19 +595,20 @@ "default": "0", "fieldname": "fetch_valuation_rate_for_internal_transaction", "fieldtype": "Check", - "label": "Fetch Valuation Rate for Internal Transaction" + "label": "Fetch valuation rate for internal Transaction" }, { "default": "0", + "description": "Enable this if you are experiencing issues with the new budget controller. Uses the older budget validation logic", "fieldname": "use_legacy_budget_controller", "fieldtype": "Check", - "label": "Use Legacy Budget Controller" + "label": "Use legacy Budget Controller" }, { "default": "1", "fieldname": "use_legacy_controller_for_pcv", "fieldtype": "Check", - "label": "Use Legacy Controller For Period Closing Voucher" + "label": "Use legacy controller for Period Closing Voucher" }, { "description": "Users with this role will be notified if the asset depreciation gets failed", @@ -625,7 +626,7 @@ { "fieldname": "chart_of_accounts_section", "fieldtype": "Section Break", - "label": "Chart Of Accounts" + "label": "Chart of Accounts" }, { "fieldname": "banking_section", @@ -670,6 +671,7 @@ }, { "default": "0", + "documentation_url": "https://docs.frappe.io/erpnext/loyalty-program", "fieldname": "enable_loyalty_point_program", "fieldtype": "Check", "label": "Enable Loyalty Point Program" @@ -696,7 +698,7 @@ "default": "1", "fieldname": "fetch_payment_schedule_in_payment_request", "fieldtype": "Check", - "label": "Fetch Payment Schedule In Payment Request" + "label": "Fetch Payment Schedule in Payment Request" }, { "fieldname": "repost_section", @@ -706,8 +708,22 @@ { "fieldname": "repost_allowed_types", "fieldtype": "Table", - "label": "Allowed Doctypes", + "label": "Allowed DocTypes", "options": "Repost Allowed Types" + }, + { + "fieldname": "document_naming_tab", + "fieldtype": "Tab Break", + "label": "Document Naming" + }, + { + "fieldname": "transaction_naming_html", + "fieldtype": "HTML" + }, + { + "description": "Changing the account in any transaction of the DocTypes listed below will trigger a repost. To prevent reposting, remove the relevant DocType from the list.", + "fieldname": "column_break_mfor", + "fieldtype": "Column Break" } ], "grid_page_length": 50, @@ -717,7 +733,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2026-05-18 12:16:33.679345", + "modified": "2026-06-03 13:11:54.721495", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings",