Skip to content

Commit 810af63

Browse files
authored
Merge pull request #1193 from itflow-org/cron-recurring-notify
Recurring items with next-run dates in the past
2 parents 9223b8c + b7df21a commit 810af63

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

post/user/ticket.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2260,7 +2260,7 @@
22602260
$count = count($_POST['recurring_ticket_ids']);
22612261

22622262
// Cycle through array and delete each recurring scheduled ticket
2263-
foreach ($recurring_ticket_ids as $recurring_ticket_id) {
2263+
foreach ($_POST['recurring_ticket_ids'] as $recurring_ticket_id) {
22642264

22652265
$recurring_ticket_id = intval($recurring_ticket_id);
22662266
mysqli_query($mysqli, "DELETE FROM recurring_tickets WHERE recurring_ticket_id = $recurring_ticket_id");

scripts/cron.php

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
chdir(dirname(__FILE__));
55

66
// Ensure we're running from command line
7-
if (php_sapi_name() !== 'cli') {
8-
die("This script must be run from the command line.\n");
9-
}
7+
//if (php_sapi_name() !== 'cli') {
8+
// die("This script must be run from the command line.\n");
9+
//}
1010

1111
require_once "../config.php";
1212

@@ -439,6 +439,13 @@
439439
}
440440
}
441441

442+
// Flag any active recurring "next run" dates that are in the past
443+
$sql_invalid_recurring_tickets = mysqli_query($mysqli, "SELECT * FROM recurring_tickets WHERE recurring_ticket_next_run < CURDATE()");
444+
while ($row = mysqli_fetch_array($sql_invalid_recurring_tickets)) {
445+
$subject = sanitizeInput($row['recurring_ticket_subject']);
446+
appNotify("Ticket", "Recurring ticket $subject next run date is in the past!", "recurring_tickets.php");
447+
}
448+
442449
// Logging
443450
// logAction("Cron", "Task", "Cron created sent out recurring tickets");
444451

@@ -871,6 +878,14 @@
871878

872879
} //End Recurring Invoices Loop
873880

881+
// Flag any active recurring "next run" dates that are in the past
882+
$sql_invalid_recurring_invoices = mysqli_query($mysqli, "SELECT * FROM recurring_invoices WHERE recurring_invoice_next_date < CURDATE()");
883+
while ($row = mysqli_fetch_array($sql_invalid_recurring_invoices)) {
884+
$invoice_prefix = sanitizeInput($row['recurring_invoice_prefix']);
885+
$invoice_number = intval($row['recurring_invoice_number']);
886+
appNotify("Invoice", "Recurring invoice $invoice_prefix$invoice_number next run date is in the past!", "recurring_invoices.php");
887+
}
888+
874889
// Logging
875890
// logAction("Cron", "Task", "Cron created invoices from recurring invoices and sent emails out");
876891

@@ -914,10 +929,17 @@
914929
mysqli_query($mysqli, "UPDATE recurring_expenses SET recurring_expense_last_sent = CURDATE(), recurring_expense_next_date = $next_date_query WHERE recurring_expense_id = $recurring_expense_id");
915930

916931

917-
} //End Recurring Invoices Loop
932+
} //End Recurring expenses loop
933+
934+
// Flag any active recurring "next run" dates that are in the past
935+
$sql_invalid_recurring_expenses = mysqli_query($mysqli, "SELECT * FROM recurring_expenses WHERE recurring_expense_next_date < CURDATE() AND recurring_expense_status = 1");
936+
while ($row = mysqli_fetch_array($sql_invalid_recurring_expenses)) {
937+
$recurring_expense_description = sanitizeInput($row['recurring_expense_description']);
938+
appNotify("Expense", "Recurring expense $recurring_expense_description next run date is in the past!", "recurring_expenses.php");
939+
}
918940

919941
// Logging
920-
logApp("Cron", "info", "Cron created expenses from recurring expenses");
942+
//logApp("Cron", "info", "Cron created expenses from recurring expenses");
921943

922944
// TELEMETRY
923945

0 commit comments

Comments
 (0)