From 45c19f6db3e837c5a3b35c74c018736b1f70a712 Mon Sep 17 00:00:00 2001 From: Sanket322 Date: Tue, 16 Apr 2024 22:34:51 +0530 Subject: [PATCH] fix: handle_on_cancel_for_reco_tool --- .../doctype/bill_of_entry/bill_of_entry.py | 13 +++++++++++++ .../gst_india/overrides/purchase_invoice.py | 15 +++++++++++++++ india_compliance/hooks.py | 1 + 3 files changed, 29 insertions(+) diff --git a/india_compliance/gst_india/doctype/bill_of_entry/bill_of_entry.py b/india_compliance/gst_india/doctype/bill_of_entry/bill_of_entry.py index 9241025e09..36bea1de34 100644 --- a/india_compliance/gst_india/doctype/bill_of_entry/bill_of_entry.py +++ b/india_compliance/gst_india/doctype/bill_of_entry/bill_of_entry.py @@ -135,6 +135,19 @@ def on_cancel(self): self.ignore_linked_doctypes = ("GL Entry",) make_reverse_gl_entries(voucher_type=self.doctype, voucher_no=self.name) + if self.reconciliation_status == "Reconciled": + doc_name = frappe.get_list( + "GST Inward Supply", filters={"link_name": self.name}, pluck="name" + ) + updated_data = { + "match_status": "", + "link_name": "", + "link_doctype": "", + } + if doc_name: + for name in doc_name: + frappe.db.set_value("GST Inward Supply", name, updated_data) + # Code adapted from AccountsController.on_trash def on_trash(self): if not frappe.db.get_single_value( diff --git a/india_compliance/gst_india/overrides/purchase_invoice.py b/india_compliance/gst_india/overrides/purchase_invoice.py index 4dd0a8b060..a6ee4db133 100644 --- a/india_compliance/gst_india/overrides/purchase_invoice.py +++ b/india_compliance/gst_india/overrides/purchase_invoice.py @@ -50,6 +50,21 @@ def validate(doc, method=None): set_reconciliation_status(doc) +def on_cancel(doc, method=None): + if doc.reconciliation_status == "Reconciled": + doc_name = frappe.get_list( + "GST Inward Supply", filters={"link_name": doc.name}, pluck="name" + ) + updated_data = { + "match_status": "", + "link_name": "", + "link_doctype": "", + } + if doc_name: + for name in doc_name: + frappe.db.set_value("GST Inward Supply", name, updated_data) + + def set_reconciliation_status(doc): reconciliation_status = "Not Applicable" diff --git a/india_compliance/hooks.py b/india_compliance/hooks.py index 7e69063fbe..5b8f33c56c 100644 --- a/india_compliance/hooks.py +++ b/india_compliance/hooks.py @@ -142,6 +142,7 @@ "before_gl_preview": "india_compliance.gst_india.overrides.ineligible_itc.update_valuation_rate", "before_sl_preview": "india_compliance.gst_india.overrides.ineligible_itc.update_valuation_rate", "after_mapping": "india_compliance.gst_india.overrides.transaction.after_mapping", + "on_cancel": "india_compliance.gst_india.overrides.purchase_invoice.on_cancel", }, "Purchase Order": { "onload": "india_compliance.gst_india.overrides.transaction.onload",