Open Journal Systems  3.3.0
InstitutionalSubscriptionDAO.inc.php
1 <?php
2 
17 import('classes.subscription.SubscriptionDAO');
18 import('classes.subscription.InstitutionalSubscription');
19 
20 define('SUBSCRIPTION_INSTITUTION_NAME', 0x20);
21 define('SUBSCRIPTION_DOMAIN', 0x21);
22 define('SUBSCRIPTION_IP_RANGE', 0x22);
23 
24 
32  function getById($subscriptionId, $journalId = null) {
33  $params = array((int) $subscriptionId);
34  if ($journalId) $params[] = (int) $journalId;
35  $result = $this->retrieve(
36  'SELECT s.*, iss.*
37  FROM subscriptions s
38  JOIN subscription_types st ON (s.type_id = st.type_id)
39  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
40  WHERE st.institutional = 1
41  AND s.subscription_id = ?
42  ' . ($journalId?' AND s.journal_id = ?':''),
43  $params
44  );
45 
46  $returner = null;
47  if ($result->RecordCount() != 0) {
48  $returner = $this->_fromRow($result->GetRowAssoc(false));
49  }
50 
51  $result->Close();
52  return $returner;
53  }
54 
60  function getByUserId($userId, $rangeInfo = null) {
61  $result = $this->retrieveRange(
62  'SELECT s.*, iss.*
63  FROM subscriptions s
64  JOIN subscription_types st ON (st.type_id = s.type_id)
65  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
66  WHERE st.institutional = 1
67  AND s.user_id = ?',
68  (int) $userId,
69  $rangeInfo
70  );
71  return new DAOResultFactory($result, $this, '_fromRow');
72  }
73 
81  function getByUserIdForJournal($userId, $journalId, $rangeInfo = null) {
82  $result = $this->retrieveRange(
83  'SELECT s.*, iss.*
84  FROM subscriptions s
85  JOIN subscription_types st ON (s.type_id = st.type_id)
86  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
87  WHERE st.institutional = 1
88  AND s.user_id = ?
89  AND s.journal_id = ?',
90  array(
91  (int) $userId,
92  (int) $journalId
93  ),
94  $rangeInfo
95  );
96  return new DAOResultFactory($result, $this, '_fromRow');
97  }
98 
107  function getByInstitutionName($institutionName, $journalId, $exactMatch = true, $rangeInfo = null) {
108  $result = $this->retrieveRange(
109  'SELECT s.*, iss.*
110  FROM subscriptions s
111  JOIN subscription_types st ON (s.type_id = st.type_id)
112  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
113  WHERE AND st.institutional = 1' .
114  $exactMatch ? ' AND LOWER(iss.institution_name) = LOWER(?)'
115  : ' AND LOWER(iss.institution_name) LIKE LOWER(?)'
116  . ' AND s.journal_id = ?',
117  array(
118  $institutionName,
119  (int) $journalId
120  ),
121  $rangeInfo
122  );
123  return new DAOResultFactory($result, $this, '_fromRow');
124  }
125 
131  function getStatusCount($journalId, $status = null) {
132  $params = array((int) $journalId);
133  if ($status !== null) $params[] = (int) $status;
134  $result = $this->retrieve(
135  'SELECT COUNT(*)
136  FROM subscriptions s,
137  JOIN subscription_types st ON (s.type_id = st.type_id)
138  WHERE st.institutional = 1 AND
139  s.journal_id = ?
140  ' . ($status !== null?' AND s.status = ?':''),
141  $params
142  );
143  $returner = isset($result->fields[0]) ? $result->fields[0] : 0;
144  $result->Close();
145  return $returner;
146  }
147 
153  function getSubscribedUserCount($journalId) {
154  return $this->getStatusCount($journalId);
155  }
156 
163  function subscriptionExists($subscriptionId, $journalId = null) {
164  $params = array((int) $subscriptionId);
165  if ($journalId) $params[] = (int) $journalId;
166  $result = $this->retrieve(
167  'SELECT COUNT(*)
168  FROM subscriptions s
169  JOIN subscription_types st ON (s.type_id = st.type_id)
170  WHERE st.institutional = 1
171  AND s.subscription_id = ?
172  ' . ($journalId?' AND s.journal_id = ?':''),
173  $params
174  );
175  $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true : false;
176  $result->Close();
177  return $returner;
178  }
179 
186  function subscriptionExistsByUser($subscriptionId, $userId) {
187  $result = $this->retrieve(
188  'SELECT COUNT(*)
189  FROM subscriptions s
190  JOIN subscription_types st ON (s.type_id = st.type_id)
191  WHERE st.institutional = 1
192  AND s.subscription_id = ?
193  AND s.user_id = ?',
194  array(
195  (int) $subscriptionId,
196  (int) $userId
197  )
198  );
199  $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true : false;
200  $result->Close();
201  return $returner;
202  }
203 
210  function subscriptionExistsByUserForJournal($userId, $journalId) {
211  $result = $this->retrieve(
212  'SELECT COUNT(*)
213  FROM subscriptions s
214  JOIN subscription_types st ON (s.type_id = st.type_id)
215  WHERE st.institutional = 1
216  AND s.user_id = ?
217  AND s.journal_id = ?',
218  array(
219  (int) $userId,
220  (int) $journalId
221  )
222  );
223  $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true : false;
224  $result->Close();
225  return $returner;
226  }
227 
235  function subscriptionExistsByInstitutionName($institutionName, $journalId, $exactMatch = true) {
236  $result = $this->retrieve(
237  'SELECT COUNT(*)
238  FROM subscriptions s
239  JOIN subscription_types st ON (s.type_id = st.type_id)
240  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
241  WHERE st.institutional = 1' .
242  $exactMatch ? ' AND LOWER(iss.institution_name) = LOWER(?)'
243  : ' AND LOWER(iss.institution_name) LIKE LOWER(?)'
244  . ' AND s.journal_id = ?',
245  array(
246  $institutionName,
247  (int) $journalId
248  )
249  );
250  $returner = isset($result->fields[0]) && $result->fields[0] != 0 ? true : false;
251  $result->Close();
252  return $returner;
253  }
254 
260  function insertObject($institutionalSubscription) {
261  $subscriptionId = null;
262  if ($this->_insertObject($institutionalSubscription)) {
263  $subscriptionId = $institutionalSubscription->getId();
264 
265  $this->update(
266  'INSERT INTO institutional_subscriptions
267  (subscription_id, institution_name, mailing_address, domain)
268  VALUES
269  (?, ?, ?, ?)',
270  array(
271  (int) $subscriptionId,
272  $institutionalSubscription->getInstitutionName(),
273  $institutionalSubscription->getInstitutionMailingAddress(),
274  $institutionalSubscription->getDomain()
275  )
276  );
277 
278  $this->_insertSubscriptionIPRanges($subscriptionId, $institutionalSubscription->getIPRanges());
279  }
280 
281  return $subscriptionId;
282  }
283 
289  function updateObject($institutionalSubscription) {
290  $this->_updateObject($institutionalSubscription);
291 
292  $this->update(
293  'UPDATE institutional_subscriptions
294  SET institution_name = ?,
295  mailing_address = ?,
296  domain = ?
297  WHERE subscription_id = ?',
298  array(
299  $institutionalSubscription->getInstitutionName(),
300  $institutionalSubscription->getInstitutionMailingAddress(),
301  $institutionalSubscription->getDomain(),
302  (int) $institutionalSubscription->getId()
303  )
304  );
305 
306  $this->_deleteSubscriptionIPRanges($institutionalSubscription->getId());
307  $this->_insertSubscriptionIPRanges($institutionalSubscription->getId(), $institutionalSubscription->getIPRanges());
308  }
309 
314  function deleteById($subscriptionId, $journalId = null) {
315  if (!$this->subscriptionExists($subscriptionId, $journalId)) return;
316 
317  $this->update('DELETE FROM subscriptions WHERE subscription_id = ?', (int) $subscriptionId);
318  $this->update('DELETE FROM institutional_subscriptions WHERE subscription_id = ?', (int) $subscriptionId);
319  $this->_deleteSubscriptionIPRanges($subscriptionId);
320  }
321 
326  function deleteByJournalId($journalId) {
327  $result = $this->retrieve(
328  'SELECT s.subscription_id
329  FROM subscriptions s
330  WHERE s.journal_id = ?',
331  (int) $journalId
332  );
333 
334  if ($result->RecordCount() != 0) {
335  while (!$result->EOF) {
336  $subscriptionId = $result->fields[0];
337  $this->deleteById($subscriptionId);
338  $result->MoveNext();
339  }
340  }
341 
342  $result->Close();
343  }
344 
349  function deleteByUserId($userId) {
350  $result = $this->retrieve('SELECT s.subscription_id FROM subscriptions s WHERE s.user_id = ?', (int) $userId);
351  if ($result->RecordCount() != 0) {
352  while (!$result->EOF) {
353  $subscriptionId = $result->fields[0];
354  $this->deleteById($subscriptionId);
355  $result->MoveNext();
356  }
357  }
358 
359  $result->Close();
360  }
361 
367  function deleteByUserIdForJournal($userId, $journalId) {
368  $result = $this->retrieve(
369  'SELECT s.subscription_id FROM subscriptions s WHERE s.user_id = ? AND s.journal_id = ?',
370  array((int) $userId, (int) $journalId)
371  );
372 
373  if ($result->RecordCount() != 0) {
374  while (!$result->EOF) {
375  $subscriptionId = $result->fields[0];
376  $this->deleteById($subscriptionId);
377  $result->MoveNext();
378  }
379  }
380 
381  $result->Close();
382  }
383 
388  function deleteByTypeId($subscriptionTypeId) {
389  $result = $this->retrieve('SELECT s.subscription_id FROM subscriptions s WHERE s.type_id = ?', (int) $subscriptionTypeId);
390 
391  if ($result->RecordCount() != 0) {
392  while (!$result->EOF) {
393  $subscriptionId = $result->fields[0];
394  $this->deleteById($subscriptionId);
395  $result->MoveNext();
396  }
397  }
398 
399  $result->Close();
400  }
401 
406  function getAll($rangeInfo = null) {
407  $result = $this->retrieveRange(
408  'SELECT s.*, iss.*
409  FROM subscriptions s
410  JOIN subscription_types st ON (s.type_id = st.type_id)
411  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
412  WHERE st.institutional = 1
413  ORDER BY iss.institution_name ASC, s.subscription_id',
414  false,
415  $rangeInfo
416  );
417  return new DAOResultFactory($result, $this, '_fromRow');
418  }
419 
432  function getByJournalId($journalId, $status = null, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null) {
433  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
434  $params = array_merge($userDao->getFetchParameters(), array((int) $journalId));
435  $ipRangeSql1 = $ipRangeSql2 = '';
436  $searchSql = $this->_generateSearchSQL($status, $searchField, $searchMatch, $search, $dateField, $dateFrom, $dateTo, $params);
437 
438  if (!empty($search)) switch ($searchField) {
439  case SUBSCRIPTION_INSTITUTION_NAME:
440  if ($searchMatch === 'is') {
441  $searchSql = ' AND LOWER(iss.institution_name) = LOWER(?)';
442  } elseif ($searchMatch === 'contains') {
443  $searchSql = ' AND LOWER(iss.institution_name) LIKE LOWER(?)';
444  $search = '%' . $search . '%';
445  } else { // $searchMatch === 'startsWith'
446  $searchSql = ' AND LOWER(iss.institution_name) LIKE LOWER(?)';
447  $search = $search . '%';
448  }
449  $params[] = $search;
450  break;
451  case SUBSCRIPTION_DOMAIN:
452  if ($searchMatch === 'is') {
453  $searchSql = ' AND LOWER(iss.domain) = LOWER(?)';
454  } elseif ($searchMatch === 'contains') {
455  $searchSql = ' AND LOWER(iss.domain) LIKE LOWER(?)';
456  $search = '%' . $search . '%';
457  } else { // $searchMatch === 'startsWith'
458  $searchSql = ' AND LOWER(iss.domain) LIKE LOWER(?)';
459  $search = $search . '%';
460  }
461  $params[] = $search;
462  break;
463  case SUBSCRIPTION_IP_RANGE:
464  if ($searchMatch === 'is') {
465  $searchSql = ' AND LOWER(isip.ip_string) = LOWER(?)';
466  } elseif ($searchMatch === 'contains') {
467  $searchSql = ' AND LOWER(isip.ip_string) LIKE LOWER(?)';
468  $search = '%' . $search . '%';
469  } else { // $searchMatch === 'startsWith'
470  $searchSql = ' AND LOWER(isip.ip_string) LIKE LOWER(?)';
471  $search = $search . '%';
472  }
473  $params[] = $search;
474  $ipRangeSql1 = ', institutional_subscription_ip isip' ;
475  $ipRangeSql2 = ' AND s.subscription_id = isip.subscription_id';
476  break;
477  }
478 
479 
480  $result = $this->retrieveRange(
481  'SELECT DISTINCT s.*, iss.*,
482  ' . $userDao->getFetchColumns() .'
483  FROM subscriptions s
484  JOIN subscription_types st ON (s.type_id = st.type_id)
485  JOIN users u ON (s.user_id = u.user_id)
486  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
487  ' . $userDao->getFetchJoins() . '
488  ' . $ipRangeSql1 . '
489  WHERE st.institutional = 1
490  ' . $ipRangeSql2 . '
491  AND s.journal_id = ?
492  ' . $searchSql . ' ORDER BY iss.institution_name ASC, s.subscription_id',
493  $params,
494  $rangeInfo
495  );
496 
497  return new DAOResultFactory($result, $this, '_fromRow');
498  }
499 
509  function isValidInstitutionalSubscription($domain, $IP, $journalId, $check = SUBSCRIPTION_DATE_BOTH, $checkDate = null) {
510  if (empty($journalId) || (empty($domain) && empty($IP))) return false;
511  $returner = false;
512 
513  $today = $this->dateToDB(Core::getCurrentDate());
514 
515  if ($checkDate == null) {
516  $checkDate = $today;
517  } else {
518  $checkDate = $this->dateToDB($checkDate);
519  }
520 
521  switch($check) {
522  case SUBSCRIPTION_DATE_START:
523  $dateSql = sprintf('%s >= s.date_start AND %s >= s.date_start', $checkDate, $today);
524  break;
525  case SUBSCRIPTION_DATE_END:
526  $dateSql = sprintf('%s <= s.date_end AND %s >= s.date_start', $checkDate, $today);
527  break;
528  default:
529  $dateSql = sprintf('%s >= s.date_start AND %s <= s.date_end', $checkDate, $checkDate);
530  }
531 
532  // Check if domain match
533  if (!empty($domain)) {
534  $result = $this->retrieve('
535  SELECT iss.subscription_id
536  FROM institutional_subscriptions iss
537  JOIN subscriptions s ON (iss.subscription_id = s.subscription_id)
538  JOIN subscription_types st ON (s.type_id = st.type_id)
539  WHERE POSITION(UPPER(LPAD(iss.domain, LENGTH(iss.domain)+1, \'.\')) IN UPPER(LPAD(?, LENGTH(?)+1, \'.\'))) != 0
540  AND iss.domain != \'\'
541  AND s.journal_id = ?
542  AND s.status = ' . SUBSCRIPTION_STATUS_ACTIVE . '
543  AND st.institutional = 1
544  AND ((st.non_expiring = 1) OR (st.non_expiring = 0 AND (' . $dateSql . ')))
545  AND (st.format = ' . SUBSCRIPTION_TYPE_FORMAT_ONLINE . '
546  OR st.format = ' . SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE . ')',
547  array(
548  $domain,
549  $domain,
550  (int) $journalId
551  )
552  );
553 
554  if ($result->RecordCount() != 0) {
555  $returner = $result->fields[0];
556  }
557 
558  $result->Close();
559 
560  if ($returner) {
561  return $returner;
562  }
563  }
564 
565  // Check for IP match
566  if (!empty($IP)) {
567  $IP = sprintf('%u', ip2long($IP));
568 
569  $result = $this->retrieve(
570  'SELECT isip.subscription_id
571  FROM institutional_subscription_ip isip
572  JOIN subscriptions s ON (isip.subscription_id = s.subscription_id)
573  JOIN subscription_types st ON (s.type_id = st.type_id)
574  WHERE ((isip.ip_end IS NOT NULL
575  AND ? >= isip.ip_start AND ? <= isip.ip_end
576  AND s.journal_id = ?
577  AND s.status = ' . SUBSCRIPTION_STATUS_ACTIVE . '
578  AND st.institutional = 1
579  AND ((st.non_expiring = 1) OR (st.non_expiring = 0 AND (' . $dateSql . ')))
580  AND (st.format = ' . SUBSCRIPTION_TYPE_FORMAT_ONLINE . '
581  OR st.format = ' . SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE . '))
582  OR (isip.ip_end IS NULL
583  AND ? = isip.ip_start
584  AND s.journal_id = ?
585  AND s.status = ' . SUBSCRIPTION_STATUS_ACTIVE . '
586  AND st.institutional = 1
587  AND ((st.non_expiring = 1) OR (st.non_expiring = 0 AND (' . $dateSql . ')))
588  AND (st.format = ' . SUBSCRIPTION_TYPE_FORMAT_ONLINE . '
589  OR st.format = ' . SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE . ')))',
590  array (
591  $IP,
592  $IP,
593  (int) $journalId,
594  $IP,
595  (int) $journalId
596  )
597  );
598 
599  if ($result->RecordCount() != 0) {
600  $returner = $result->fields[0];
601  }
602 
603  $result->Close();
604  }
605 
606  return $returner;
607  }
608 
615  function getByDateEnd($dateEnd, $journalId, $rangeInfo = null) {
616  $dateEnd = explode('-', $dateEnd);
617 
618  $result = $this->retrieveRange(
619  'SELECT s.*, iss.*
620  FROM subscriptions s
621  JOIN subscription_types st ON (s.type_id = st.type_id)
622  JOIN institutional_subscriptions iss ON (s.subscription_id = iss.subscription_id)
623  WHERE s.status = ' . SUBSCRIPTION_STATUS_ACTIVE . '
624  AND st.institutional = 1
625  AND EXTRACT(YEAR FROM s.date_end) = ?
626  AND EXTRACT(MONTH FROM s.date_end) = ?
627  AND EXTRACT(DAY FROM s.date_end) = ?
628  AND s.journal_id = ?
629  ORDER BY iss.institution_name ASC, s.subscription_id',
630  array(
631  $dateEnd[0],
632  $dateEnd[1],
633  $dateEnd[2],
634  (int) $journalId
635  ), $rangeInfo
636  );
637 
638  return new DAOResultFactory($result, $this, '_fromRow');
639  }
640 
647  function renewSubscription($institutionalSubscription) {
648  return $this->_renewSubscription($institutionalSubscription);
649  }
650 
655  function newDataObject() {
656  return new InstitutionalSubscription();
657  }
658 
664  function _fromRow($row) {
665  $institutionalSubscription = parent::_fromRow($row);
666 
667  $institutionalSubscription->setInstitutionName($row['institution_name']);
668  $institutionalSubscription->setInstitutionMailingAddress($row['mailing_address']);
669  $institutionalSubscription->setDomain($row['domain']);
670 
671  $ipResult = $this->retrieve(
672  'SELECT ip_string
673  FROM institutional_subscription_ip
674  WHERE subscription_id = ?
675  ORDER BY institutional_subscription_ip_id ASC',
676  (int) $institutionalSubscription->getId()
677  );
678 
679  $ipRanges = array();
680  while (!$ipResult->EOF) {
681  $ipRow = $ipResult->GetRowAssoc(false);
682  $ipRanges[] = $ipRow['ip_string'];
683  $ipResult->MoveNext();
684  }
685 
686  $institutionalSubscription->setIPRanges($ipRanges);
687  $ipResult->Close();
688 
689  HookRegistry::call('InstitutionalSubscriptionDAO::_fromRow', array(&$institutionalSubscription, &$row));
690 
691  return $institutionalSubscription;
692  }
693 
700  function _insertSubscriptionIPRanges($subscriptionId, $ipRanges) {
701  if (empty($ipRanges)) {
702  return true;
703  }
704 
705  if (empty($subscriptionId)) {
706  return false;
707  }
708 
709  $returner = true;
710 
711  while (list(, $curIPString) = each($ipRanges)) {
712  $ipStart = null;
713  $ipEnd = null;
714 
715  // Parse and check single IP string
716  if (strpos($curIPString, SUBSCRIPTION_IP_RANGE_RANGE) === false) {
717 
718  // Check for wildcards in IP
719  if (strpos($curIPString, SUBSCRIPTION_IP_RANGE_WILDCARD) === false) {
720 
721  // Get non-CIDR IP
722  if (strpos($curIPString, '/') === false) {
723  $ipStart = sprintf("%u", ip2long(trim($curIPString)));
724 
725  // Convert CIDR IP to IP range
726  } else {
727  list($cidrIPString, $cidrBits) = explode('/', trim($curIPString));
728 
729  if ($cidrBits == 0) {
730  $cidrMask = 0;
731  } else {
732  $cidrMask = (0xffffffff << (32 - $cidrBits));
733  }
734 
735  $ipStart = sprintf('%u', ip2long($cidrIPString) & $cidrMask);
736 
737  if ($cidrBits != 32) {
738  $ipEnd = sprintf('%u', ip2long($cidrIPString) | (~$cidrMask & 0xffffffff));
739  }
740  }
741 
742  // Convert wildcard IP to IP range
743  } else {
744  $ipStart = sprintf('%u', ip2long(str_replace(SUBSCRIPTION_IP_RANGE_WILDCARD, '0', trim($curIPString))));
745  $ipEnd = sprintf('%u', ip2long(str_replace(SUBSCRIPTION_IP_RANGE_WILDCARD, '255', trim($curIPString))));
746  }
747 
748  // Convert wildcard IP range to IP range
749  } else {
750  list($ipStart, $ipEnd) = explode(SUBSCRIPTION_IP_RANGE_RANGE, $curIPString);
751 
752  // Replace wildcards in start and end of range
753  $ipStart = sprintf('%u', ip2long(str_replace(SUBSCRIPTION_IP_RANGE_WILDCARD, '0', trim($ipStart))));
754  $ipEnd = sprintf('%u', ip2long(str_replace(SUBSCRIPTION_IP_RANGE_WILDCARD, '255', trim($ipEnd))));
755  }
756 
757  // Insert IP or IP range
758  if (($ipStart != null) && ($returner)) {
759  $returner = $this->update(
760  'INSERT INTO institutional_subscription_ip
761  (subscription_id, ip_string, ip_start, ip_end)
762  VALUES
763  (?, ?, ?, ?)',
764  array(
765  (int) $subscriptionId,
766  $curIPString,
767  $ipStart,
768  $ipEnd
769  )
770  );
771  } else {
772  $returner = false;
773  break;
774  }
775  }
776 
777  return $returner;
778  }
779 
785  function _deleteSubscriptionIPRanges($subscriptionId) {
786  return $this->update(
787  'DELETE FROM institutional_subscription_ip WHERE subscription_id = ?', (int) $subscriptionId
788  );
789  }
790 }
791 
792 
InstitutionalSubscriptionDAO\getByJournalId
getByJournalId($journalId, $status=null, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:432
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
InstitutionalSubscriptionDAO\getByInstitutionName
getByInstitutionName($institutionName, $journalId, $exactMatch=true, $rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:107
SubscriptionDAO\_insertObject
_insertObject($subscription)
Definition: SubscriptionDAO.inc.php:334
InstitutionalSubscriptionDAO\newDataObject
newDataObject()
Definition: InstitutionalSubscriptionDAO.inc.php:655
DAO\retrieveRange
& retrieveRange($sql, $params=false, $dbResultRange=null, $callHooks=true)
Definition: DAO.inc.php:176
InstitutionalSubscriptionDAO\getStatusCount
getStatusCount($journalId, $status=null)
Definition: InstitutionalSubscriptionDAO.inc.php:131
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
InstitutionalSubscriptionDAO\getByUserIdForJournal
getByUserIdForJournal($userId, $journalId, $rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:81
InstitutionalSubscriptionDAO\renewSubscription
renewSubscription($institutionalSubscription)
Definition: InstitutionalSubscriptionDAO.inc.php:647
SubscriptionDAO\_generateSearchSQL
_generateSearchSQL($status=null, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, &$params)
Definition: SubscriptionDAO.inc.php:184
DAO\dateToDB
dateToDB($d)
Definition: DAO.inc.php:309
InstitutionalSubscription
Basic class describing an institutional subscription.
Definition: InstitutionalSubscription.inc.php:28
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
InstitutionalSubscriptionDAO\deleteById
deleteById($subscriptionId, $journalId=null)
Definition: InstitutionalSubscriptionDAO.inc.php:314
SubscriptionDAO
Abstract class for retrieving and modifying subscriptions.
Definition: SubscriptionDAO.inc.php:25
InstitutionalSubscriptionDAO\getByDateEnd
getByDateEnd($dateEnd, $journalId, $rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:615
InstitutionalSubscriptionDAO\deleteByTypeId
deleteByTypeId($subscriptionTypeId)
Definition: InstitutionalSubscriptionDAO.inc.php:388
InstitutionalSubscriptionDAO\getByUserId
getByUserId($userId, $rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:60
InstitutionalSubscriptionDAO\_deleteSubscriptionIPRanges
_deleteSubscriptionIPRanges($subscriptionId)
Definition: InstitutionalSubscriptionDAO.inc.php:785
InstitutionalSubscriptionDAO\_insertSubscriptionIPRanges
_insertSubscriptionIPRanges($subscriptionId, $ipRanges)
Definition: InstitutionalSubscriptionDAO.inc.php:700
InstitutionalSubscriptionDAO\subscriptionExists
subscriptionExists($subscriptionId, $journalId=null)
Definition: InstitutionalSubscriptionDAO.inc.php:163
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
InstitutionalSubscriptionDAO\insertObject
insertObject($institutionalSubscription)
Definition: InstitutionalSubscriptionDAO.inc.php:260
InstitutionalSubscriptionDAO\subscriptionExistsByUserForJournal
subscriptionExistsByUserForJournal($userId, $journalId)
Definition: InstitutionalSubscriptionDAO.inc.php:210
InstitutionalSubscriptionDAO\subscriptionExistsByInstitutionName
subscriptionExistsByInstitutionName($institutionName, $journalId, $exactMatch=true)
Definition: InstitutionalSubscriptionDAO.inc.php:235
InstitutionalSubscriptionDAO\deleteByJournalId
deleteByJournalId($journalId)
Definition: InstitutionalSubscriptionDAO.inc.php:326
InstitutionalSubscriptionDAO\isValidInstitutionalSubscription
isValidInstitutionalSubscription($domain, $IP, $journalId, $check=SUBSCRIPTION_DATE_BOTH, $checkDate=null)
Definition: InstitutionalSubscriptionDAO.inc.php:509
InstitutionalSubscriptionDAO\deleteByUserId
deleteByUserId($userId)
Definition: InstitutionalSubscriptionDAO.inc.php:349
Core\getCurrentDate
static getCurrentDate($ts=null)
Definition: Core.inc.php:63
InstitutionalSubscriptionDAO\deleteByUserIdForJournal
deleteByUserIdForJournal($userId, $journalId)
Definition: InstitutionalSubscriptionDAO.inc.php:367
SubscriptionDAO\_renewSubscription
_renewSubscription($subscription)
Definition: SubscriptionDAO.inc.php:402
InstitutionalSubscriptionDAO\subscriptionExistsByUser
subscriptionExistsByUser($subscriptionId, $userId)
Definition: InstitutionalSubscriptionDAO.inc.php:186
InstitutionalSubscriptionDAO\_fromRow
_fromRow($row)
Definition: InstitutionalSubscriptionDAO.inc.php:664
SubscriptionDAO\_updateObject
_updateObject($subscription)
Definition: SubscriptionDAO.inc.php:365
InstitutionalSubscriptionDAO\updateObject
updateObject($institutionalSubscription)
Definition: InstitutionalSubscriptionDAO.inc.php:289
InstitutionalSubscriptionDAO\getAll
getAll($rangeInfo=null)
Definition: InstitutionalSubscriptionDAO.inc.php:406
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
InstitutionalSubscriptionDAO\getById
getById($subscriptionId, $journalId=null)
Definition: InstitutionalSubscriptionDAO.inc.php:32
InstitutionalSubscriptionDAO
Operations for retrieving and modifying InstitutionalSubscription objects.
Definition: InstitutionalSubscriptionDAO.inc.php:25
InstitutionalSubscriptionDAO\getSubscribedUserCount
getSubscribedUserCount($journalId)
Definition: InstitutionalSubscriptionDAO.inc.php:153