17 import(
'classes.subscription.SubscriptionDAO');
18 import(
'classes.subscription.IndividualSubscription');
27 function getById($subscriptionId, $journalId =
null) {
28 $params = array((
int) $subscriptionId);
29 if ($journalId) $params[] = (int) $journalId;
33 JOIN subscription_types st ON (s.type_id = st.type_id)
34 WHERE st.institutional = 0
35 AND s.subscription_id = ?
36 ' . ($journalId?
' AND s.journal_id = ?':
''),
41 if ($result->RecordCount() != 0) {
42 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
61 WHERE s.type_id = st.type_id
62 AND st.institutional = 0
64 AND s.journal_id = ?',
72 if ($result->RecordCount() != 0) {
73 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
92 WHERE s.type_id = st.type_id
93 AND st.institutional = 0
109 $params = array((
int) $journalId);
110 if ($status !==
null) $params[] = (int) $status;
114 FROM subscriptions s,
115 subscription_types st
116 WHERE s.type_id = st.type_id AND
117 st.institutional = 0 AND
119 ' . ($status !==
null?
' AND s.status = ?':
''),
123 $returner = isset($result->fields[0]) ? $result->fields[0] : 0;
148 subscription_types st
149 WHERE s.type_id = st.type_id
150 AND st.institutional = 0
151 AND s.subscription_id = ?',
152 (
int) $subscriptionId
155 $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true :
false;
172 subscription_types st
173 WHERE s.type_id = st.type_id
174 AND st.institutional = 0
175 AND s.subscription_id = ?
178 (
int) $subscriptionId,
183 $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true :
false;
200 subscription_types st
201 WHERE s.type_id = st.type_id
202 AND st.institutional = 0
204 AND s.journal_id = ?',
211 $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true :
false;
231 $individualSubscription = parent::_fromRow($row);
232 HookRegistry::call(
'IndividualSubscriptionDAO::_fromRow', array(&$individualSubscription, &$row));
234 return $individualSubscription;
260 $params = array((
int) $subscriptionId);
261 if ($journalId) $params[] = (int) $journalId;
263 'DELETE FROM subscriptions
264 WHERE subscription_id = ?'
265 .($journalId ?
' AND journal_id = ?' :
''),
277 'SELECT s.subscription_id
280 WHERE s.journal_id = ?',
285 if ($result->RecordCount() != 0) {
286 while (!$result->EOF) {
287 $subscriptionId = $result->fields[0];
288 $returner = $this->
deleteById($subscriptionId);
307 'SELECT s.subscription_id
310 WHERE s.user_id = ?',
315 if ($result->RecordCount() != 0) {
316 while (!$result->EOF) {
317 $subscriptionId = $result->fields[0];
318 $returner = $this->
deleteById($subscriptionId);
338 'SELECT s.subscription_id
342 AND s.journal_id = ?',
350 if ($result->RecordCount() != 0) {
351 while (!$result->EOF) {
352 $subscriptionId = $result->fields[0];
353 $returner = $this->
deleteById($subscriptionId);
372 'SELECT s.subscription_id
375 WHERE s.type_id = ?',
376 (
int) $subscriptionTypeId
380 if ($result->RecordCount() != 0) {
381 while (!$result->EOF) {
382 $subscriptionId = $result->fields[0];
383 $returner = $this->
deleteById($subscriptionId);
404 ' . $userDao->getFetchColumns() .
'
407 subscription_types st,
409 ' . $userDao->getFetchJoins() .
'
410 WHERE s.type_id = st.type_id
411 AND st.institutional = 0
412 AND s.user_id = u.user_id
413 ' . $userDao->getOrderBy() .
',
415 $userDao->getFetchParameters(),
434 function getByJournalId($journalId, $status =
null, $searchField =
null, $searchMatch =
null, $search =
null, $dateField =
null, $dateFrom =
null, $dateTo =
null, $rangeInfo =
null) {
436 $params = array_merge($userDao->getFetchParameters(), array((
int) $journalId));
439 ' . $userDao->getFetchColumns() .
'
441 JOIN subscription_types st ON (s.type_id = st.type_id)
442 JOIN users u ON (s.user_id = u.user_id)
443 ' . $userDao->getFetchJoins() .
'
444 WHERE st.institutional = 0
445 AND s.journal_id = ? ' .
446 parent::_generateSearchSQL($status, $searchField, $searchMatch, $search, $dateField, $dateFrom, $dateTo, $params) .
' ' .
447 $userDao->getOrderBy() .
', s.subscription_id',
463 if (empty($userId) || empty($journalId)) {
469 if ($checkDate ==
null) {
472 $checkDate = $this->
dateToDB($checkDate);
476 case SUBSCRIPTION_DATE_START:
477 $dateSql = sprintf(
'%s >= s.date_start AND %s >= s.date_start', $checkDate, $today);
479 case SUBSCRIPTION_DATE_END:
480 $dateSql = sprintf(
'%s <= s.date_end AND %s >= s.date_start', $checkDate, $today);
483 $dateSql = sprintf(
'%s >= s.date_start AND %s <= s.date_end', $checkDate, $checkDate);
487 SELECT s.subscription_id
489 JOIN subscription_types st ON (s.type_id = st.type_id)
492 AND s.status = ' . SUBSCRIPTION_STATUS_ACTIVE .
'
493 AND st.institutional = 0
494 AND ((st.non_expiring = 1) OR (st.non_expiring = 0 AND (' . $dateSql .
')))
495 AND (st.format = ' . SUBSCRIPTION_TYPE_FORMAT_ONLINE .
'
496 OR st.format = ' . SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE .
')',
503 if ($result->RecordCount() != 0) $returner = (boolean) $result->fields[0];
504 else $returner =
false;
519 $dateEnd = explode(
'-', $dateEnd);
520 $params = array_merge(
521 $userDao->getFetchParameters(),
531 ' . $userDao->getFetchColumns() .
'
533 JOIN subscription_types st ON (s.type_id = st.type_id)
534 JOIN users u ON (u.user_id = s.user_id)
535 ' . $userDao->getFetchJoins() .
'
536 WHERE s.status = ' . SUBSCRIPTION_STATUS_ACTIVE .
'
537 AND st.institutional = 0
538 AND EXTRACT(YEAR FROM s.date_end) = ?
539 AND EXTRACT(MONTH FROM s.date_end) = ?
540 AND EXTRACT(DAY FROM s.date_end) = ?
542 ' . $userDao->getOrderBy() .
', s.subscription_id',