From 52939ac9be8d2c376643beb329e2af422c2f5b01 Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Fri, 24 Jan 2025 15:35:18 +0530 Subject: [PATCH] refactor: pass data while calling set auto repeat as complete --- .../automation/doctype/auto_repeat/auto_repeat.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/frappe/automation/doctype/auto_repeat/auto_repeat.py b/frappe/automation/doctype/auto_repeat/auto_repeat.py index 0e6adf704a..60062b04d1 100644 --- a/frappe/automation/doctype/auto_repeat/auto_repeat.py +++ b/frappe/automation/doctype/auto_repeat/auto_repeat.py @@ -335,6 +335,9 @@ class AutoRepeat(Document): days = self.get_days(next_date) next_date = add_days(next_date, days) + if self.end_date and getdate(next_date) > getdate(self.end_date): + next_date = schedule_date + return next_date def get_days(self, schedule_date): @@ -481,9 +484,8 @@ def make_auto_repeat_entry(): date = getdate(today()) data = get_auto_repeat_entries(date) frappe.enqueue(enqueued_method, data=data) - - # Set auto-repeat to complete when all auto-repeats are added to the queue - set_auto_repeat_as_completed() + # Set auto-repeat to complete when all auto-repeats are added to the queue + set_auto_repeat_as_completed(data) def create_repeated_entries(data): @@ -510,13 +512,12 @@ def get_auto_repeat_entries(date=None): query = query.where( (auto_repeat.next_schedule_date <= date) & (auto_repeat.status == "Active") - & ((auto_repeat.end_date <= auto_repeat.next_schedule_date) | (auto_repeat.end_date.isnull())) + & ((auto_repeat.end_date >= auto_repeat.next_schedule_date) | (auto_repeat.end_date.isnull())) ) return query.run(as_dict=1) -def set_auto_repeat_as_completed(): - auto_repeat = frappe.get_all("Auto Repeat", filters={"status": ["!=", "Disabled"]}) +def set_auto_repeat_as_completed(auto_repeat): for entry in auto_repeat: doc = frappe.get_doc("Auto Repeat", entry.name) if doc.is_completed():