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(
|
$this->strings = array(
|
||||||
'en' => array(
|
'en' => array(
|
||||||
'new' => 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",
|
'expiry' => "expires on",
|
||||||
'serial' => "serial number",
|
'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(
|
'expiring' => array(
|
||||||
'single' => "The following loan expires in less than $days days:",
|
'single' => "The following loan expires in less than $days days:",
|
||||||
'multi' => "The following loans expire in less than $days days:",
|
'multi' => "The following loans expire in less than $days days:",
|
||||||
@ -37,9 +45,17 @@ class Cron {
|
|||||||
),
|
),
|
||||||
'sv' => array(
|
'sv' => array(
|
||||||
'new' => 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",
|
'expiry' => "går ut",
|
||||||
'serial' => "artikelnummer",
|
'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(
|
'expiring' => array(
|
||||||
'single' => "Följande lån går ut om mindre än $days dagar:",
|
'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:",
|
'multi' => "Följande lån går ut om mindre än $days dagar:",
|
||||||
@ -71,13 +87,16 @@ class Cron {
|
|||||||
$user = new User($row['user']);
|
$user = new User($row['user']);
|
||||||
$since_time = $row['since_time'];
|
$since_time = $row['since_time'];
|
||||||
|
|
||||||
$notify_loans = array();
|
$new_loans = array();
|
||||||
|
$extended_loans = array();
|
||||||
foreach($user->get_loans('active') as $loan) {
|
foreach($user->get_loans('active') as $loan) {
|
||||||
if($loan->get_starttime() >= $since_time) {
|
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`
|
$delete = prepare('delete from `pending_receipt`
|
||||||
where `user` = ? and `send_time` < ?');
|
where `user` = ? and `send_time` < ?');
|
||||||
bind($delete, 'ii', $user->get_id(), $this->now->getTimestamp());
|
bind($delete, 'ii', $user->get_id(), $this->now->getTimestamp());
|
||||||
@ -86,44 +105,70 @@ class Cron {
|
|||||||
commit_trans();
|
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();
|
$uid = $user->get_name();
|
||||||
$name = $this->ldap->get_firstname($uid);
|
$name = $this->ldap->get_firstname($uid);
|
||||||
|
|
||||||
$count = count($loans);
|
$new_count = count($new);
|
||||||
if($count > 1) {
|
$extended_count = count($extended);
|
||||||
$new_sv = "nya lån";
|
$subject = $this->make_receipt_subject($new_count, $extended_count);
|
||||||
$new_en = "new loans";
|
|
||||||
$have = "have";
|
$list_sv = array();
|
||||||
} else {
|
$list_en = array();
|
||||||
$new_sv = "nytt lån";
|
if($new_count > 0) {
|
||||||
$new_en = "new loan";
|
$list_sv[] = $this->make_notice('sv', 'new', $new);
|
||||||
$have = "has";
|
$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 = "";
|
$info_sv = array();
|
||||||
$intro_en = "$count $new_en $have been registered to your user:";
|
$info_en = array();
|
||||||
|
if($new_count > 0) {
|
||||||
$list_sv = $this->make_notice('sv', 'new', $loans);
|
$info_sv[] = "Eventuella artiklar du inte hämtat ut redan kan hämtas från Helpdesk.";
|
||||||
$list_en = $this->make_notice('en', 'new', $loans);
|
$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
|
$message = <<<EOF
|
||||||
Hej $name!
|
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
|
$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
|
$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
|
Mvh
|
||||||
DSV Helpdesk
|
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: ";
|
$subject = "DSV Helpdesk: ";
|
||||||
$messages = array();
|
$messages = array();
|
||||||
if($num_expiring > 0) {
|
if($num_expiring > 0) {
|
||||||
$messages[] = $num_expiring." utgående lån";
|
$messages[] = $num_expiring." utgående";
|
||||||
}
|
}
|
||||||
if($num_expired > 1) {
|
if($num_expired > 1) {
|
||||||
$messages[] = $num_expired." försenade lån";
|
$messages[] = $num_expired." försenade";
|
||||||
} elseif($num_expired > 0) {
|
} 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) {
|
private function make_notice($lang, $type, $list) {
|
||||||
@ -197,10 +242,6 @@ EOF;
|
|||||||
." $serial, ".$strings['expiry']." $endtime";
|
." $serial, ".$strings['expiry']." $endtime";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($type === 'new') {
|
|
||||||
return implode("\n", $lines);
|
|
||||||
}
|
|
||||||
|
|
||||||
$msg = $strings['single'];
|
$msg = $strings['single'];
|
||||||
if(count($list) > 1) {
|
if(count($list) > 1) {
|
||||||
$msg = $strings['multi'];
|
$msg = $strings['multi'];
|
||||||
@ -244,7 +285,8 @@ EOF;
|
|||||||
$overdue_count = count($overdue);
|
$overdue_count = count($overdue);
|
||||||
$total = $expiring_count + $overdue_count;
|
$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_sv = array();
|
||||||
$info_en = array();
|
$info_en = array();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user