From 70b401e610c51adbb221bbe83b89cca664c3c755 Mon Sep 17 00:00:00 2001 From: SowmyaArunachalam Date: Wed, 28 Jan 2026 15:38:17 +0530 Subject: [PATCH] feat(selling-settings): add checkbox to recalculate payment date --- erpnext/selling/doctype/quotation/quotation.py | 10 ++++++++-- .../doctype/selling_settings/selling_settings.json | 7 +++++++ .../doctype/selling_settings/selling_settings.py | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index 603aeb9c7ec..a7ab743acd8 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -8,7 +8,7 @@ import frappe from frappe import _ from frappe.model.document import Document from frappe.model.mapper import get_mapped_doc -from frappe.utils import flt, getdate, nowdate +from frappe.utils import cint, flt, getdate, nowdate from erpnext.controllers.selling_controller import SellingController @@ -467,13 +467,19 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False, ar }, "Sales Taxes and Charges": {"doctype": "Sales Taxes and Charges", "reset_value": True}, "Sales Team": {"doctype": "Sales Team", "add_if_empty": True}, - "Payment Schedule": {"doctype": "Payment Schedule", "add_if_empty": True}, }, target_doc, set_missing_values, ignore_permissions=ignore_permissions, ) + automatically_fetch_payment_terms = cint( + frappe.get_single_value("Selling Settings", "automatically_fetch_payment_terms_from_quotation") + ) + + if automatically_fetch_payment_terms: + doclist.set_payment_schedule() + return doclist diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.json b/erpnext/selling/doctype/selling_settings/selling_settings.json index 53e9d42a7ab..375d2e2d465 100644 --- a/erpnext/selling/doctype/selling_settings/selling_settings.json +++ b/erpnext/selling/doctype/selling_settings/selling_settings.json @@ -41,6 +41,7 @@ "allow_zero_qty_in_quotation", "allow_zero_qty_in_sales_order", "set_zero_rate_for_expired_batch", + "automatically_fetch_payment_terms_from_quotation", "section_break_avhb", "enable_utm", "experimental_section", @@ -320,6 +321,12 @@ "fieldname": "enable_utm", "fieldtype": "Check", "label": "Enable UTM" + }, + { + "default": "0", + "fieldname": "automatically_fetch_payment_terms_from_quotation", + "fieldtype": "Check", + "label": "Automatically Fetch Payment Terms from Quotation" } ], "grid_page_length": 50, diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.py b/erpnext/selling/doctype/selling_settings/selling_settings.py index 8621f5f066d..837b6357825 100644 --- a/erpnext/selling/doctype/selling_settings/selling_settings.py +++ b/erpnext/selling/doctype/selling_settings/selling_settings.py @@ -38,6 +38,7 @@ class SellingSettings(Document): allow_sales_order_creation_for_expired_quotation: DF.Check allow_zero_qty_in_quotation: DF.Check allow_zero_qty_in_sales_order: DF.Check + automatically_fetch_payment_terms_from_quotation: DF.Check blanket_order_allowance: DF.Float cust_master_name: DF.Literal["Customer Name", "Naming Series", "Auto Name"] customer_group: DF.Link | None