From 9e808c832f4cce536fe5d4f16d3f550352ba6f49 Mon Sep 17 00:00:00 2001 From: Sudharsanan Ashok <135326972+Sudharsanan11@users.noreply.github.com> Date: Wed, 12 Mar 2025 16:10:14 +0530 Subject: [PATCH] fix: calculate due date based on payment term (#46416) --- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 8 +++++++- erpnext/accounts/party.py | 5 +++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index dd0d52f4fa2..1afd67c7822 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -679,7 +679,13 @@ class SalesInvoice(SellingController): "Account", self.debit_to, "account_currency", cache=True ) if not self.due_date and self.customer: - self.due_date = get_due_date(self.posting_date, "Customer", self.customer, self.company) + self.due_date = get_due_date( + self.posting_date, + "Customer", + self.customer, + self.company, + template_name=self.payment_terms_template, + ) super().set_missing_values(for_validate) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index f959af587f5..e6595c0e452 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -577,12 +577,13 @@ def validate_party_accounts(doc): @frappe.whitelist() -def get_due_date(posting_date, party_type, party, company=None, bill_date=None): +def get_due_date(posting_date, party_type, party, company=None, bill_date=None, template_name=None): """Get due date from `Payment Terms Template`""" due_date = None if (bill_date or posting_date) and party: due_date = bill_date or posting_date - template_name = get_payment_terms_template(party, party_type, company) + if not template_name: + template_name = get_payment_terms_template(party, party_type, company) if template_name: due_date = get_due_date_from_template(template_name, posting_date, bill_date).strftime("%Y-%m-%d")