From 6d15640ae4da71960490e8b9627a298f7f62ff04 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Wed, 29 Oct 2025 18:15:21 -0400 Subject: [PATCH] [Feature] Recurring Ticket - Add Three Day and Biweekly to the Frequency options --- agent/modals/recurring_ticket/recurring_ticket_add.php | 2 ++ agent/modals/recurring_ticket/recurring_ticket_edit.php | 2 ++ cron/cron.php | 9 +++++++-- scripts/cron.php | 9 +++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/agent/modals/recurring_ticket/recurring_ticket_add.php b/agent/modals/recurring_ticket/recurring_ticket_add.php index bac158ef..69bb9f12 100644 --- a/agent/modals/recurring_ticket/recurring_ticket_add.php +++ b/agent/modals/recurring_ticket/recurring_ticket_add.php @@ -190,7 +190,9 @@ + + diff --git a/cron/cron.php b/cron/cron.php index 14d34a9a..a0bd5e8f 100644 --- a/cron/cron.php +++ b/cron/cron.php @@ -406,10 +406,15 @@ if (mysqli_num_rows($sql_recurring_tickets) > 0) { addToMailQueue($data); // Set the next run date - if ($frequency == "weekly") { - // Note: We seemingly have to initialize a new datetime for each loop to avoid stacking the dates + if ($frequency == "three days") { + $now = new DateTime(); + $next_run = date_add($now, date_interval_create_from_date_string('3 days')); + } elseif ($frequency == "weekly") { $now = new DateTime(); $next_run = date_add($now, date_interval_create_from_date_string('1 week')); + } elseif ($frequency == "biweekly") { + $now = new DateTime(); + $next_run = date_add($now, date_interval_create_from_date_string('2 weeks')); } elseif ($frequency == "monthly") { $now = new DateTime(); $next_run = date_add($now, date_interval_create_from_date_string('1 month')); diff --git a/scripts/cron.php b/scripts/cron.php index 14d34a9a..a0bd5e8f 100644 --- a/scripts/cron.php +++ b/scripts/cron.php @@ -406,10 +406,15 @@ if (mysqli_num_rows($sql_recurring_tickets) > 0) { addToMailQueue($data); // Set the next run date - if ($frequency == "weekly") { - // Note: We seemingly have to initialize a new datetime for each loop to avoid stacking the dates + if ($frequency == "three days") { + $now = new DateTime(); + $next_run = date_add($now, date_interval_create_from_date_string('3 days')); + } elseif ($frequency == "weekly") { $now = new DateTime(); $next_run = date_add($now, date_interval_create_from_date_string('1 week')); + } elseif ($frequency == "biweekly") { + $now = new DateTime(); + $next_run = date_add($now, date_interval_create_from_date_string('2 weeks')); } elseif ($frequency == "monthly") { $now = new DateTime(); $next_run = date_add($now, date_interval_create_from_date_string('1 month'));