16 import(
'classes.subscription.form.SubscriptionForm');
26 parent::__construct(
'payments/individualSubscriptionForm.tpl', $subscriptionId);
28 $subscriptionId = isset($subscriptionId) ? (int) $subscriptionId :
null;
29 $journal = $request->getJournal();
30 $journalId = $journal->getId();
32 if (isset($subscriptionId)) {
34 if ($subscriptionDao->subscriptionExists($subscriptionId)) {
35 $this->subscription = $subscriptionDao->getById($subscriptionId);
40 $subscriptionTypeIterator = $subscriptionTypeDao->getByInstitutional($journalId,
false);
41 $this->subscriptionTypes = array();
42 while ($subscriptionType = $subscriptionTypeIterator->next()) {
43 $this->subscriptionTypes[$subscriptionType->getId()] = $subscriptionType->getSummaryString();
46 if (count($this->subscriptionTypes) == 0) {
47 $this->
addError(
'typeId', __(
'manager.subscriptions.form.typeRequired'));
52 $this->
addCheck(
new FormValidatorCustom($this,
'typeId',
'required',
'manager.subscriptions.form.typeIdValid',
function($typeId) use ($journalId) {
54 return ($subscriptionTypeDao->subscriptionTypeExistsByTypeId($typeId, $journalId) && $subscriptionTypeDao->getSubscriptionTypeInstitutional($typeId) == 0);
58 if (!isset($subscriptionId)) {
59 $this->
addCheck(
new FormValidatorCustom($this,
'userId',
'required',
'manager.subscriptions.form.subscriptionExists', array(
DAORegistry::getDAO(
'IndividualSubscriptionDAO'),
'subscriptionExistsByUserForJournal'), array($journalId),
true));
61 $this->
addCheck(
new FormValidatorCustom($this,
'userId',
'required',
'manager.subscriptions.form.subscriptionExists',
function(
$userId) use ($journalId, $subscriptionId) {
63 $checkSubscription = $subscriptionDao->getByUserIdForJournal(
$userId, $journalId);
64 return (!$checkSubscription || $checkSubscription->getId() == $subscriptionId) ? true :
false;
74 if (!isset($this->subscription)) {
75 import(
'classes.subscription.IndividualSubscription');
80 parent::execute(...$functionArgs);
84 $individualSubscriptionDao->insertObject($this->subscription);
86 $individualSubscriptionDao->updateObject($this->subscription);
90 if ($this->_data[
'notifyEmail'] == 1) {
93 import(
'classes.notification.NotificationManager');
96 $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array(
'contents' => __(
'email.compose.error')));