Implemented receipts for loan extensions
This commit is contained in:
parent
1b8c2e1e18
commit
9307604aa0
108
include/Cron.php
108
include/Cron.php
@ -19,9 +19,17 @@ class Cron {
|
||||
$this->strings = array(
|
||||
'en' => array(
|
||||
'new' => array(
|
||||
'single' => "The following loan has been registered in your name:",
|
||||
'multi' => "The following loans have been registered in your name:",
|
||||
'expiry' => "expires on",
|
||||
'serial' => "serial number",
|
||||
),
|
||||
'extend' => array(
|
||||
'single' => "The following loan has been extended:",
|
||||
'multi' => "The following loans have been extended:",
|
||||
'expiry' => "extended to",
|
||||
'serial' => "serial number",
|
||||
),
|
||||
'expiring' => array(
|
||||
'single' => "The following loan expires in less than $days days:",
|
||||
'multi' => "The following loans expire in less than $days days:",
|
||||
@ -37,9 +45,17 @@ class Cron {
|
||||
),
|
||||
'sv' => array(
|
||||
'new' => array(
|
||||
'single' => "Följande lån har registrerats på din användare:",
|
||||
'multi' => "Följande lån har registrerats på din användare:",
|
||||
'expiry' => "går ut",
|
||||
'serial' => "artikelnummer",
|
||||
),
|
||||
'extend' => array(
|
||||
'single' => "Följande lån har förlängts:",
|
||||
'multi' => "Följande lån har förlängts:",
|
||||
'expiry' => "förlängt till",
|
||||
'serial' => "artikelnummer",
|
||||
),
|
||||
'expiring' => array(
|
||||
'single' => "Följande lån går ut om mindre än $days dagar:",
|
||||
'multi' => "Följande lån går ut om mindre än $days dagar:",
|
||||
@ -71,13 +87,16 @@ class Cron {
|
||||
$user = new User($row['user']);
|
||||
$since_time = $row['since_time'];
|
||||
|
||||
$notify_loans = array();
|
||||
$new_loans = array();
|
||||
$extended_loans = array();
|
||||
foreach($user->get_loans('active') as $loan) {
|
||||
if($loan->get_starttime() >= $since_time) {
|
||||
$notify_loans[] = $loan;
|
||||
$new_loans[] = $loan;
|
||||
} else if($loan->get_last_extension() >= $since_time) {
|
||||
$extended_loans[] = $loan;
|
||||
}
|
||||
}
|
||||
$this->send_receipt($user, $notify_loans);
|
||||
$this->send_receipt($user, $new_loans, $extended_loans);
|
||||
$delete = prepare('delete from `pending_receipt`
|
||||
where `user` = ? and `send_time` < ?');
|
||||
bind($delete, 'ii', $user->get_id(), $this->now->getTimestamp());
|
||||
@ -86,44 +105,70 @@ class Cron {
|
||||
commit_trans();
|
||||
}
|
||||
|
||||
private function send_receipt($user, $loans) {
|
||||
private function make_receipt_subject($num_new, $num_extended) {
|
||||
$subject = "DSV Helpdesk: ";
|
||||
$messages = array();
|
||||
if($num_new > 1) {
|
||||
$messages[] = $num_new." nya";
|
||||
} else if($num_new > 0) {
|
||||
$messages[] = $num_new." nytt";
|
||||
}
|
||||
if($num_extended > 1) {
|
||||
$messages[] = $num_extended." förlängda";
|
||||
} else if($num_extended > 0) {
|
||||
$messages[] = $num_extended." förlängt";
|
||||
}
|
||||
return $subject.implode(" och ", $messages)." lån";
|
||||
}
|
||||
|
||||
private function send_receipt($user, $new, $extended) {
|
||||
$uid = $user->get_name();
|
||||
$name = $this->ldap->get_firstname($uid);
|
||||
|
||||
$count = count($loans);
|
||||
if($count > 1) {
|
||||
$new_sv = "nya lån";
|
||||
$new_en = "new loans";
|
||||
$have = "have";
|
||||
} else {
|
||||
$new_sv = "nytt lån";
|
||||
$new_en = "new loan";
|
||||
$have = "has";
|
||||
$new_count = count($new);
|
||||
$extended_count = count($extended);
|
||||
$subject = $this->make_receipt_subject($new_count, $extended_count);
|
||||
|
||||
$list_sv = array();
|
||||
$list_en = array();
|
||||
if($new_count > 0) {
|
||||
$list_sv[] = $this->make_notice('sv', 'new', $new);
|
||||
$list_en[] = $this->make_notice('en', 'new', $new);
|
||||
}
|
||||
$subject = "DSV Helpdesk: $count $new_sv";
|
||||
if($extended_count > 0) {
|
||||
$list_sv[] = $this->make_notice('sv', 'extend', $extended);
|
||||
$list_en[] = $this->make_notice('en', 'extend', $extended);
|
||||
}
|
||||
$list_sv = implode("\n\n", $list_sv);
|
||||
$list_en = implode("\n\n", $list_en);
|
||||
|
||||
$intro_sv = "";
|
||||
$intro_en = "$count $new_en $have been registered to your user:";
|
||||
|
||||
$list_sv = $this->make_notice('sv', 'new', $loans);
|
||||
$list_en = $this->make_notice('en', 'new', $loans);
|
||||
$info_sv = array();
|
||||
$info_en = array();
|
||||
if($new_count > 0) {
|
||||
$info_sv[] = "Eventuella artiklar du inte hämtat ut redan kan hämtas från Helpdesk.";
|
||||
$info_en[] = "Any products you haven't already picked up can be collected from Helpdesk.";
|
||||
}
|
||||
$info_sv[] = "Svara på det här mailet om du har några frågor.";
|
||||
$info_en[] = "Please reply to this email if you have any questions.";
|
||||
$info_sv = implode(' ', $info_sv);
|
||||
$info_en = implode(' ', $info_en);
|
||||
|
||||
$message = <<<EOF
|
||||
Hej $name!
|
||||
|
||||
Det här är ett automatiskt meddelande om att $count $new_sv har registrerats på din användare:
|
||||
Det här är ett automatiskt meddelande från Helpdesk.
|
||||
|
||||
$list_sv
|
||||
|
||||
Eventuella artiklar du inte hämtat ut redan kan hämtas från Helpdesk. Svara på det här mailet om du har några frågor.
|
||||
$info_sv
|
||||
|
||||
----
|
||||
|
||||
This is an automated message to inform you that $count $new_en $have been registered in your name:
|
||||
This is an automated message from Helpdesk.
|
||||
|
||||
$list_en
|
||||
|
||||
Any products you haven't already picked up can be collected from Helpdesk. Please reply to this email if you have any questions.
|
||||
$info_en
|
||||
|
||||
Mvh
|
||||
DSV Helpdesk
|
||||
@ -158,18 +203,18 @@ EOF;
|
||||
}
|
||||
}
|
||||
|
||||
private function make_subject($num_expiring, $num_expired) {
|
||||
private function make_reminder_subject($num_expiring, $num_expired) {
|
||||
$subject = "DSV Helpdesk: ";
|
||||
$messages = array();
|
||||
if($num_expiring > 0) {
|
||||
$messages[] = $num_expiring." utgående lån";
|
||||
$messages[] = $num_expiring." utgående";
|
||||
}
|
||||
if($num_expired > 1) {
|
||||
$messages[] = $num_expired." försenade lån";
|
||||
$messages[] = $num_expired." försenade";
|
||||
} elseif($num_expired > 0) {
|
||||
$messages[] = $num_expired." försenat lån";
|
||||
$messages[] = $num_expired." försenat";
|
||||
}
|
||||
return $subject.implode(" och ", $messages);
|
||||
return $subject.implode(" och ", $messages)." lån";
|
||||
}
|
||||
|
||||
private function make_notice($lang, $type, $list) {
|
||||
@ -197,10 +242,6 @@ EOF;
|
||||
." $serial, ".$strings['expiry']." $endtime";
|
||||
}
|
||||
|
||||
if($type === 'new') {
|
||||
return implode("\n", $lines);
|
||||
}
|
||||
|
||||
$msg = $strings['single'];
|
||||
if(count($list) > 1) {
|
||||
$msg = $strings['multi'];
|
||||
@ -244,7 +285,8 @@ EOF;
|
||||
$overdue_count = count($overdue);
|
||||
$total = $expiring_count + $overdue_count;
|
||||
|
||||
$subject = $this->make_subject($expiring_count, $overdue_count);
|
||||
$subject = $this->make_reminder_subject($expiring_count,
|
||||
$overdue_count);
|
||||
|
||||
$info_sv = array();
|
||||
$info_en = array();
|
||||
|
Loading…
x
Reference in New Issue
Block a user