Merge pull request #48778 from aerele/payment-term-template-sales-invoice

fix: fetch payment term template from order
This commit is contained in:
Diptanil Saha
2025-07-28 20:24:35 +05:30
committed by GitHub

View File

@@ -10,6 +10,7 @@ from frappe.model.mapper import get_mapped_doc
from frappe.model.utils import get_fetch_values
from frappe.utils import cint, flt
from erpnext.accounts.party import get_due_date
from erpnext.controllers.accounts_controller import get_taxes_and_charges, merge_taxes
from erpnext.controllers.selling_controller import SellingController
@@ -918,8 +919,25 @@ def make_sales_invoice(source_name, target_doc=None, args=None):
automatically_fetch_payment_terms = cint(
frappe.get_single_value("Accounts Settings", "automatically_fetch_payment_terms")
)
if automatically_fetch_payment_terms and not doc.is_return:
doc.set_payment_schedule()
if not doc.is_return:
so, doctype, fieldname = doc.get_order_details()
if (
doc.linked_order_has_payment_terms(so, fieldname, doctype)
and not automatically_fetch_payment_terms
):
payment_terms_template = frappe.db.get_value(doctype, so, "payment_terms_template")
doc.payment_terms_template = payment_terms_template
doc.due_date = get_due_date(
doc.posting_date,
"Customer",
doc.customer,
doc.company,
template_name=doc.payment_terms_template,
)
elif automatically_fetch_payment_terms:
doc.set_payment_schedule()
return doc