diff --git a/erpnext/accounts/doctype/subscription/subscription_state_manager.py b/erpnext/accounts/doctype/subscription/subscription_state_manager.py index 7087362c9f501b74bf8778f7b53bb423d9e0d80a..78bcf7940ed727acf1b26f7b7e45ba074674118b 100644 --- a/erpnext/accounts/doctype/subscription/subscription_state_manager.py +++ b/erpnext/accounts/doctype/subscription/subscription_state_manager.py @@ -88,13 +88,25 @@ class SubscriptionPeriod: and self.subscription.get_doc_before_save().current_invoice_start != self.subscription.current_invoice_start ): - return min(self.get_next_period_end(), self.subscription.cancellation_date) if self.subscription.cancellation_date else self.get_next_period_end() + return ( + min(self.get_next_period_end(), self.subscription.cancellation_date) + if self.subscription.cancellation_date + else self.get_next_period_end() + ) elif getdate(self.subscription.current_invoice_end) < getdate( self.subscription.current_invoice_start ): - return min(self.get_next_period_end(), self.subscription.cancellation_date) if self.subscription.cancellation_date else self.get_next_period_end() + return ( + min(self.get_next_period_end(), self.subscription.cancellation_date) + if self.subscription.cancellation_date + else self.get_next_period_end() + ) else: - return min(self.subscription.current_invoice_end, self.subscription.cancellation_date) if self.subscription.cancellation_date else self.subscription.current_invoice_end + return ( + min(self.subscription.current_invoice_end, self.subscription.cancellation_date) + if self.subscription.cancellation_date + else self.subscription.current_invoice_end + ) def get_next_period_start(self): if not self.subscription.current_invoice_start: @@ -144,12 +156,14 @@ class SubscriptionStateManager: self.sales_order = ( frappe.get_cached_doc("Sales Order", self.subscription_state.get("sales_order")) if self.subscription_state.get("sales_order") + and frappe.db.exists("Sales Order", self.subscription_state.get("sales_order")) else None ) self.sales_invoice = ( frappe.get_cached_doc("Sales Invoice", self.subscription_state.get("sales_invoice")) if self.subscription_state.get("sales_invoice") + and frappe.db.exists("Sales Invoice", self.subscription_state.get("sales_invoice")) else None )