From 5342cc8312ca83e6f1c541c911f8b776dc51f043 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 11 Jan 2024 07:56:42 +0100 Subject: [PATCH] fix: Auto set state when an invoice is validated manually --- erpnext/accounts/doctype/subscription/subscription.py | 11 +++++++++++ erpnext/hooks.py | 1 + 2 files changed, 12 insertions(+) diff --git a/erpnext/accounts/doctype/subscription/subscription.py b/erpnext/accounts/doctype/subscription/subscription.py index 02abd1b3491..b7b8c7b072b 100644 --- a/erpnext/accounts/doctype/subscription/subscription.py +++ b/erpnext/accounts/doctype/subscription/subscription.py @@ -587,3 +587,14 @@ def make_subscription(source_name, target_doc=None, ignore_permissions=False) -> def update_item(obj, target, source_parent): if booked_item := frappe.db.get_value("Item", obj.get("item_code"), "booked_item"): target.booked_item = booked_item + + +def update_subscription_state(doc, method=None): + if doc.subscription: + subscription = frappe.get_doc("Subscription", doc.subscription) + if ( + doc.docstatus == 1 + and doc.from_date == subscription.current_invoice_start + and doc.to_date == subscription.current_invoice_end + ): + subscription.set_state("invoice", doc.name) diff --git a/erpnext/hooks.py b/erpnext/hooks.py index fe7d7de3ac6..a6bd7eb578c 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -381,6 +381,7 @@ doc_events = { "on_submit": [ "erpnext.regional.italy.utils.sales_invoice_on_submit", "erpnext.venue.doctype.booking_credit.booking_credit.add_booking_credits", + "erpnext.accounts.doctype.subscription.subscription.update_subscription_state", ], "on_cancel": ["erpnext.regional.italy.utils.sales_invoice_on_cancel"], }, -- GitLab