diff --git a/erpnext/accounts/doctype/subscription/subscription.py b/erpnext/accounts/doctype/subscription/subscription.py index 02abd1b34916a57d740110de58ec54a9d8fea029..b7b8c7b072bc0f37554975f3f376c9aaaf64dce4 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 fe7d7de3ac6b14cfc6b2a2d876093d2d7631455d..a6bd7eb578c2c2baaff472dfa1aac6e7b8716393 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"], },