From c09613389729f26026dd7918bb2da12087edda43 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Thu, 29 Feb 2024 17:42:25 +0530 Subject: [PATCH] fix: auto-update due date for invoices via data import --- erpnext/controllers/accounts_controller.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 9896cad8c3a..9ce01a44479 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -600,23 +600,32 @@ class AccountsController(TransactionBase): ) def validate_due_date(self): - if self.get("is_pos"): + if self.get("is_pos") or self.doctype not in ["Sales Invoice", "Purchase Invoice"]: return from erpnext.accounts.party import validate_due_date - if self.doctype == "Sales Invoice": + posting_date = ( + self.posting_date if self.doctype == "Sales Invoice" else (self.bill_date or self.posting_date) + ) + via_data_import = ( + self.flags.updater_reference and self.flags.updater_reference.get("doctype") == "Data Import" + ) + if via_data_import and getdate(self.due_date) < getdate(posting_date): + self.due_date = posting_date + + elif self.doctype == "Sales Invoice": if not self.due_date: frappe.throw(_("Due Date is mandatory")) validate_due_date( - self.posting_date, + posting_date, self.due_date, self.payment_terms_template, ) elif self.doctype == "Purchase Invoice": validate_due_date( - self.bill_date or self.posting_date, + posting_date, self.due_date, self.bill_date, self.payment_terms_template,