function processHoldQueue($id) { //Check to see if there are any copies available for the next person $holdings = $this->getHolding($id); $holdingSummary = $this->getStatusSummary($id, $holdings); if ($holdingSummary['availableCopies'] >= 1) { $eContentHold = new EContentHold(); $eContentHold->recordId = $id; $eContentHold->status = 'active'; $eContentHold->orderBy('datePlaced ASC'); $eContentHold->limit(0, 1); if ($eContentHold->find(true)) { //The next user in the list should get the hold $eContentHold->status = 'available'; $eContentHold->dateUpdated = time(); $eContentHold->update(); } } }
public function cancelHold($itemId) { global $user; if (!$user) { return array('result' => false, 'message' => 'You must be logged in to cancel a hold'); } else { require_once ROOT_DIR . '/sys/eContent/EContentHold.php'; $eContentHold = new EContentHold(); $eContentHold->userId = $user->id; $eContentHold->recordId = $this->getUniqueID(); $eContentHold->itemId = $itemId; $eContentHold->whereAdd("status IN ('active', 'suspended')"); if ($eContentHold->find(true)) { $eContentHold->status = 'cancelled'; $eContentHold->dateUpdated = time(); if ($eContentHold->update()) { return array('result' => true, 'message' => 'Successfully cancelled this hold for you.'); } else { return array('result' => false, 'message' => 'There was an unknown error cancelling your hold on this title.'); } } else { return array('result' => false, 'message' => 'Sorry, this title is not on hold for you.'); } } }