Erik Thuning 2aee184390 Several changes:
* Added a user notes field to the checkout page
 * Added user suggestions to the checkout page
 * Refactored suggestion generation
 * Proper pluralization on reminder emails
 * Improved the feedback message when returning a product
2019-04-11 17:03:59 +02:00

94 lines
2.6 KiB
PHP
Executable File

<?php
require_once('./include/view.php');
header('Content-Type: text/html; charset=UTF-8');
$cron = new Cron(time());
$cron->run();
class Cron {
private $kvs;
private $now = 0;
public function __construct($now) {
$this->now = $now;
$this->kvs = new Kvs();
}
public function run() {
$lastrun = $this->kvs->get_value('lastrun');
$interval = 3600*24; //1 day in seconds
if($lastrun && $this->now - $lastrun < $interval) {
return;
}
$this->kvs->set_key('lastrun', $this->now);
$users = get_items('user');
foreach($users as $user) {
$this->check_loans($user);
}
}
private function check_loans($user) {
$overdue = $user->get_overdue_loans();
if($overdue) {
$this->send_reminder($user, $overdue);
}
}
private function send_reminder($user, $loans) {
$subject_template = "DSV Helpdesk: Du har ¤count¤ ¤late¤ lån";
$reminder_template = "¤name¤, försenad sedan ¤due¤\n";
$message_template = <<<EOF
Hej ¤name¤
Vi vill påminna dig om att ditt lån av följande ¤product¤ har gått ut:
¤list¤
Vänligen återlämna dem till Helpdesk så snart som möjligt, alternativt kontakta
oss för att få lånet förlängt.
Mvh
DSV Helpdesk
helpdesk@dsv.su.se
08 - 16 16 48
EOF;
$overdue_count = count($loans);
$reminder_list = '';
$late = 'försenat';
$product = 'artikel';
if($count > 1) {
$late = 'försenade';
$product = 'artiklar';
}
foreach($loans as $loan) {
$replacements = array('name' => $loan->get_product()->get_name(),
'due' => $loan->get_duration()['end']);
$reminder_list .= replace($replacements, $reminder_template);
}
$subject = replace(array('count' => $overdue_count,
'late' => $late), $subject_template);
$message = replace(array('name' => $user->get_displayname(),
'list' => $reminder_list,
'product' => $product), $message_template);
try {
mb_send_mail($user->get_email(),
$subject,
$message,
'From: noreply-boka@dsv.su.se');
} catch(Exception $e) {
mb_send_mail('root@dsv.su.se',
"Kunde inte skicka påminnelse",
"Påminnelse kunde inte skickas till "
.$user->get_name());
}
}
}
?>