From 6cc70605fa4d4b61b329a323aec49b6005ad7af4 Mon Sep 17 00:00:00 2001 From: Sanket322 Date: Tue, 24 Dec 2024 16:38:51 +0530 Subject: [PATCH] fix: clear payment schedule in purchase invoice for is_paid (cherry picked from commit e1fc239f3d6e737d1acf022db274fedf4a396af0) --- .../doctype/purchase_invoice/purchase_invoice.js | 2 ++ erpnext/controllers/accounts_controller.py | 14 ++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js index be429689b5a1..dd8758e68a31 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -399,6 +399,8 @@ erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying. hide_fields(this.frm.doc); if (cint(this.frm.doc.is_paid)) { this.frm.set_value("allocate_advances_automatically", 0); + this.frm.set_value("payment_terms_template", ""); + this.frm.set_value("payment_schedule", []); if (!this.frm.doc.company) { this.frm.set_value("is_paid", 0); frappe.msgprint(__("Please specify Company to proceed")); diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 20b5885bfdcc..c09475db9bd5 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -464,10 +464,14 @@ def validate_deferred_start_and_end_date(self): ) def validate_invoice_documents_schedule(self): - if self.is_return: + if ( + self.is_return + or (self.doctype == "Purchase Invoice" and self.is_paid) + or (self.doctype == "Sales Invoice" and self.is_pos) + or self.get("is_opening") == "Yes" + ): self.payment_terms_template = "" self.payment_schedule = [] - return self.validate_payment_schedule_dates() self.set_due_date() @@ -2342,9 +2346,6 @@ def validate_payment_schedule_dates(self): dates = [] li = [] - if self.doctype == "Sales Invoice" and self.is_pos: - return - for d in self.get("payment_schedule"): if self.doctype == "Sales Order" and getdate(d.due_date) < getdate(self.transaction_date): frappe.throw( @@ -2361,9 +2362,6 @@ def validate_payment_schedule_dates(self): frappe.throw(_("Rows with duplicate due dates in other rows were found: {0}").format(duplicates)) def validate_payment_schedule_amount(self): - if (self.doctype == "Sales Invoice" and self.is_pos) or self.get("is_opening") == "Yes": - return - party_account_currency = self.get("party_account_currency") if not party_account_currency: party_type, party = self.get_party()