示例#1
0
 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.');
         }
     }
 }