PK w~3Y
†ÝæÎ Î index.htmnu „[µü¤
403 Forbidden
Forbidden
You don't have permission to access this folder.
PK w~3YÇùw½V V email_overdue_tickets.phpnu „[µü¤ #!/usr/bin/php -q
3
AND `overdue_email_sent` = '0'";
$successful_emails = 0;
$failed_emails = 0;
$rs = hesk_dbQuery($sql);
$number_of_tickets = hesk_dbNumRows($rs);
hesk_overdue_ticket_log(sprintf($hesklang['overdue_ticket_count'], $number_of_tickets));
if (!$number_of_tickets) {
exit();
}
$user_rs = hesk_dbQuery("SELECT `id`, `isadmin`, `categories`, `email`, `name`, `notify_overdue_unassigned`, `notify_overdue_my`,
CASE WHEN `heskprivileges` LIKE '%can_view_unassigned%' THEN 1 ELSE 0 END AS `can_view_unassigned`
FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users`
WHERE (`notify_overdue_unassigned` = '1' OR `notify_overdue_my` = '1')
AND (`heskprivileges` LIKE '%can_view_tickets%' OR `isadmin` = '1')");
$users = array();
while ($row = hesk_dbFetchAssoc($user_rs)) {
$users[$row['id']] = $row;
}
$tickets_to_flag = array();
$tickets_log_sql = array();
while ($ticket = hesk_dbFetchAssoc($rs)) {
hesk_overdue_ticket_log("=======================");
// Make sure all values are properly formatted for email
$ticket['dt'] = hesk_date($ticket['dt'], true);
$ticket['lastchange'] = hesk_date($ticket['lastchange'], true);
$ticket['last_reply_by'] = hesk_getReplierName($ticket);
$ticket['due_date_sql'] = $ticket['due_date'];
$ticket['due_date'] = hesk_format_due_date($ticket['due_date']);
$ticket = hesk_ticketToPlain($ticket, 1, 0);
$owner_email = (!empty($ticket['user_email'])) ? $ticket['user_email'] : $hesklang['unas'];
if (!$hesk_settings['simulate_overdue_tickets']) {
if ($ticket['owner'] && ( ! isset($users[$ticket['owner']]) || $users[$ticket['owner']]['notify_overdue_my'] != 1)) {
hesk_overdue_ticket_log("[{$hesklang['success']}]\n{$hesklang['trackID']}: {$ticket['trackid']}\n{$hesklang['email']}: {$owner_email}");
} elseif (hesk_sendOverdueTicketReminder($ticket, $users)) {
$tickets_to_flag[] = $ticket['id'];
$tickets_log_sql[] = "('".intval($ticket['id'])."', '".intval($ticket['category'])."', '".intval($ticket['priority'])."', '".intval($ticket['status'])."', '".intval($ticket['owner'])."', '".hesk_dbEscape($ticket['due_date_sql'])."')";
$successful_emails++;
hesk_overdue_ticket_log("[{$hesklang['success']}]\n{$hesklang['trackID']}: {$ticket['trackid']}\n{$hesklang['email']}: {$owner_email}");
// Let's force flag/insert into log every 1000 tickets to make sure we don't hit the max_allowed_packet limit, and to free some memory
if ($successful_emails % 1000 == 0) {
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."log_overdue` (`ticket`, `category`, `priority`, `status`, `owner`, `due_date`) VALUES " . implode(',', $tickets_log_sql));
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` SET `overdue_email_sent` = '1', `history`=CONCAT(`history`,'" . hesk_dbEscape(sprintf($hesklang['thist21'], hesk_date())) . "') WHERE `id` IN (" . implode(',', $tickets_to_flag) . ")");
$tickets_to_flag = array();
$tickets_log_sql = array();
}
} else {
$failed_emails++;
hesk_overdue_ticket_log("[{$hesklang['error']}]\n{$hesklang['trackID']}: {$ticket['trackid']}\n{$hesklang['email']}: {$owner_email}");
}
} else {
hesk_overdue_ticket_log("{$hesklang['trackID']}: {$ticket['trackid']}\n{$hesklang['email']}: {$owner_email}");
}
hesk_overdue_ticket_log("=======================");
}
// Flag/insert any remaning tickets
if (count($tickets_to_flag) > 0 && !$hesk_settings['simulate_overdue_tickets']) {
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."log_overdue` (`ticket`, `category`, `priority`, `status`, `owner`, `due_date`) VALUES " . implode(',', $tickets_log_sql));
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` SET `overdue_email_sent` = '1', `history`=CONCAT(`history`,'" . hesk_dbEscape(sprintf($hesklang['thist21'], hesk_date())) . "') WHERE `id` IN (" . implode(',', $tickets_to_flag) . ")");
}
hesk_overdue_ticket_log(sprintf($hesklang['overdue_finished'], $successful_emails, $failed_emails));
function hesk_overdue_ticket_log($message, $do_die=false) {
global $hesk_settings;
if ($hesk_settings['debug_mode']) {
echo $message . "\n";
}
if ($do_die) {
die();
}
} // END hesk_overdue_ticket_log
PK w~3Y
†ÝæÎ Î index.htmnu „[µü¤ PK w~3YÇùw½V V email_overdue_tickets.phpnu „[µü¤ PK ¢ ¦!