/** * 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; }