Beispiel #1
0
 /**
  * Get Patron Call Slips. Gets local call slips from the database,
  * then remote callslips via the API.
  *
  * This is responsible for retrieving all call slips by a specific patron.
  *
  * @param array $patron The patron array from patronLogin
  *
  * @return mixed        Array of the patron's holds on success, PEAR_Error
  * otherwise.
  * @access public
  */
 public function getMyCallSlips($patron)
 {
     $callslips = parent::getMyCallSlips($patron);
     if (PEAR::isError($callslips)) {
         return $callslips;
     }
     // Build Hierarchy
     $hierarchy = array('patron' => $patron['id'], 'circulationActions' => 'requests', 'callslips' => false);
     // Add Required Params
     $params = array("patron_homedb" => $this->ws_patronHomeUbId, "view" => "full");
     $results = $this->makeRequest($hierarchy, $params);
     if ($results === false) {
         return new PEAR_Error('System error fetching call slips');
     }
     $replyCode = (string) $results->{'reply-code'};
     if ($replyCode != 0 && $replyCode != 8) {
         return new PEAR_Error('System error fetching call slips');
     }
     if (isset($results->callslips->institution)) {
         foreach ($results->callslips->institution as $institution) {
             if ((string) $institution->attributes()->id == 'LOCAL') {
                 // Ignore local callslips, we have them already
                 continue;
             }
             foreach ($institution->callslip as $callslip) {
                 $item = $callslip->requestItem;
                 $callslips[] = array('id' => '', 'type' => (string) $item->holdType, 'location' => (string) $item->pickupLocation, 'expired' => (string) $item->expiredDate ? $this->dateFormat->convertToDisplayDate('Y-m-d', (string) $item->expiredDate) : '', 'created' => (string) $item->expiredDate ? $this->dateFormat->convertToDisplayDate('Y-m-d', (string) $item->expiredDate) : '', 'position' => (string) $item->queuePosition, 'available' => (string) $item->status == '4', 'reqnum' => (string) $item->holdRecallId, 'item_id' => (string) $item->itemId, 'volume' => '', 'publication_year' => '', 'title' => (string) $item->itemTitle, 'institution_id' => (string) $institution->attributes()->id, 'institution_name' => (string) $item->dbName, 'institution_dbkey' => (string) $item->dbKey, 'processed' => substr((string) $item->statusText, 0, 6) == 'Filled' ? $this->dateFormat->convertToDisplayDate('Y-m-d', substr((string) $item->statusText, 7)) : '');
             }
         }
     }
     return $callslips;
 }
 /**
  * Protected support method for getMyTransactions.
  *
  * @param array $sqlRow An array of keyed data
  * @param array $patron An array of keyed patron data
  *
  * @return array Keyed data for display by template files
  * @access protected
  */
 protected function processMyTransactionsData($sqlRow, $patron)
 {
     $transactions = parent::processMyTransactionsData($sqlRow, $patron);
     $renewData = $this->_isRenewable($patron['id'], $transactions['item_id']);
     $transactions['renewable'] = $renewData['renewable'];
     $transactions['message'] = $renewData['message'];
     return $transactions;
 }