Mail notifications get pushed forward in time when a new loan is created if there is a pending notification.

This way the user can add multiple loans over time without the notification getting sent prematurely.
This commit is contained in:
Erik Thuning 2023-01-11 10:43:57 +01:00
parent 9307604aa0
commit fa46874ae3
2 changed files with 10 additions and 11 deletions

@ -42,16 +42,24 @@ class Loan extends Event {
protected function queue_receipt($user) {
$now = time();
$sendtime = $now + 3600;
$pending = prepare('select * from `pending_receipt` where `user` = ?
and `since_time` < ? and `send_time` > ?');
bind($pending, 'iii', $user->get_id(), $now, $now);
execute($pending);
if(result_single($pending) === null) {
$result = result_single($pending);
if($result === null) {
$add = prepare('insert into `pending_receipt`
(`user`, `since_time`, `send_time`)
values(?, ?, ?)');
bind($add, 'iii', $user->get_id(), $now, $now + 3600);
bind($add, 'iii', $user->get_id(), $now, $sendtime);
execute($add);
} else {
$update = prepare('update `pending_receipt` set `send_time` = ?
where `user` = ? and `since_time` < ?
and `send_time` > ?');
bind($update, 'iiii', $sendtime, $user->get_id(), $now, $now);
execute($update);
}
}

@ -1,9 +0,0 @@
create table `pending_receipt` (
`user` bigint(20) not null,
primary key (`user`),
constraint `pr_f_user`
foreign key(`user`) references `user`(`id`),
`send_time` bigint(20) not null,
`since_time` bigint(20) not null
) character set utf8mb4,
collate utf8mb4_unicode_ci;