/** * Retrieve individual subscriptions matching a particular journal ID. * @param $journalId int * @param $status int * @param $searchField int * @param $searchMatch string "is" or "contains" or "startsWith" * @param $search String to look in $searchField for * @param $dateField int * @param $dateFrom String date to search from * @param $dateTo String date to search to * @return object DAOResultFactory containing matching IndividualSubscriptions */ function &getSubscriptionsByJournalId($journalId, $status = null, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null) { $params = array($journalId); $searchSql = parent::_generateSearchSQL($status, $searchField, $searchMatch, $search, $dateField, $dateFrom, $dateTo, $params); $sql = 'SELECT s.* FROM subscriptions s, subscription_types st, users u WHERE s.type_id = st.type_id AND st.institutional = 0 AND s.user_id = u.user_id AND s.journal_id = ?'; $result =& $this->retrieveRange($sql . ' ' . $searchSql . ' ORDER BY u.last_name ASC, s.subscription_id', count($params) === 1 ? array_shift($params) : $params, $rangeInfo); $returner = new DAOResultFactory($result, $this, '_returnSubscriptionFromRow'); return $returner; }