Added a function to get the latest loan extension.
Broke receipt queueing into a function. Changed $this->id to $this->get_id() for the sake of consistency.
This commit is contained in:
parent
b967c7dde2
commit
4e9e5b93af
@ -13,19 +13,7 @@ class Loan extends Event {
|
||||
bind($insert, 'iii', $event_id, $user->get_id(), strtotime($endtime));
|
||||
execute($insert);
|
||||
$loan = new Loan($event_id);
|
||||
|
||||
$now = time();
|
||||
$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) {
|
||||
$add = prepare('insert into `pending_receipt`
|
||||
(`user`, `since_time`, `send_time`)
|
||||
values(?, ?, ?)');
|
||||
bind($add, 'iii', $user->get_id(), $now, $now + 3600);
|
||||
execute($add);
|
||||
}
|
||||
$loan->queue_receipt($user);
|
||||
commit_trans();
|
||||
return $loan;
|
||||
}
|
||||
@ -45,13 +33,28 @@ class Loan extends Event {
|
||||
protected function update_fields() {
|
||||
parent::update_fields();
|
||||
$get = prepare('select * from `loan` where `event`=?');
|
||||
bind($get, 'i', $this->id);
|
||||
bind($get, 'i', $this->get_id());
|
||||
execute($get);
|
||||
$loan = result_single($get);
|
||||
$this->user = $loan['user'];
|
||||
$this->endtime = $loan['endtime'];
|
||||
}
|
||||
|
||||
protected function queue_receipt($user) {
|
||||
$now = time();
|
||||
$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) {
|
||||
$add = prepare('insert into `pending_receipt`
|
||||
(`user`, `since_time`, `send_time`)
|
||||
values(?, ?, ?)');
|
||||
bind($add, 'iii', $user->get_id(), $now, $now + 3600);
|
||||
execute($add);
|
||||
}
|
||||
}
|
||||
|
||||
public function get_user() {
|
||||
return new User($this->user);
|
||||
}
|
||||
@ -61,18 +64,40 @@ class Loan extends Event {
|
||||
}
|
||||
|
||||
public function extend($time) {
|
||||
$oldend = $this->get_endtime();
|
||||
$now = time();
|
||||
$ts = strtotime($time . ' 13:00');
|
||||
$query = prepare('update `loan` set `endtime`=? where `event`=?');
|
||||
bind($query, 'ii', $ts, $this->id);
|
||||
execute($query);
|
||||
|
||||
begin_trans();
|
||||
$extend = prepare('update `loan` set `endtime`=? where `event`=?');
|
||||
bind($extend, 'ii', $ts, $this->get_id());
|
||||
execute($extend);
|
||||
|
||||
$log = prepare('insert into `loan_extension`
|
||||
(`loan`, `extend_time`, `old_end`, `new_end`)
|
||||
values (?, ?, ?, ?)');
|
||||
bind($log, 'iiii', $this->get_id(), $now, $oldend, $ts);
|
||||
execute($log);
|
||||
|
||||
$this->queue_receipt($this->get_user());
|
||||
|
||||
$this->endtime = $ts;
|
||||
commit_trans();
|
||||
return true;
|
||||
}
|
||||
|
||||
public function get_last_extension() {
|
||||
$select = prepare('select max(`extend_time`) as `extend_time`
|
||||
from `loan_extension` where `loan`=?');
|
||||
bind($select, 'i', $this->get_id());
|
||||
execute($select);
|
||||
return result_single($select)['max(`extend_time`)'];
|
||||
}
|
||||
|
||||
public function end() {
|
||||
$now = time();
|
||||
$query = prepare('update `event` set `returntime`=? where `id`=?');
|
||||
bind($query, 'ii', $now, $this->id);
|
||||
bind($query, 'ii', $now, $this->get_id());
|
||||
execute($query);
|
||||
$this->returntime = $now;
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user