16 define(
'SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_MONTHS_MIN',
'1');
17 define(
'SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_MONTHS_MAX',
'12');
18 define(
'SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_WEEKS_MIN',
'1');
19 define(
'SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_WEEKS_MAX',
'3');
20 define(
'SUBSCRIPTION_EXPIRY_REMINDER_AFTER_MONTHS_MIN',
'1');
21 define(
'SUBSCRIPTION_EXPIRY_REMINDER_AFTER_MONTHS_MAX',
'12');
22 define(
'SUBSCRIPTION_EXPIRY_REMINDER_AFTER_WEEKS_MIN',
'1');
23 define(
'SUBSCRIPTION_EXPIRY_REMINDER_AFTER_WEEKS_MAX',
'3');
25 import(
'lib.pkp.classes.form.Form');
48 $this->validNumMonthsBeforeExpiry = array(0 => __(
'common.disabled'));
49 for ($i=SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_MONTHS_MIN; $i<=SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_MONTHS_MAX; $i++) {
50 $this->validNumMonthsBeforeExpiry[$i] = __(
'manager.subscriptionPolicies.xMonths', array(
'x' => $i));
53 $this->validNumWeeksBeforeExpiry = array(0 => __(
'common.disabled'));
54 for ($i=SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_WEEKS_MIN; $i<=SUBSCRIPTION_EXPIRY_REMINDER_BEFORE_WEEKS_MAX; $i++) {
55 $this->validNumWeeksBeforeExpiry[$i] = __(
'manager.subscriptionPolicies.xWeeks', array(
'x' => $i));
58 $this->validNumMonthsAfterExpiry = array(0 => __(
'common.disabled'));
59 for ($i=SUBSCRIPTION_EXPIRY_REMINDER_AFTER_MONTHS_MIN; $i<=SUBSCRIPTION_EXPIRY_REMINDER_AFTER_MONTHS_MAX; $i++) {
60 $this->validNumMonthsAfterExpiry[$i] = __(
'manager.subscriptionPolicies.xMonths', array(
'x' => $i));
63 $this->validNumWeeksAfterExpiry = array(0 => __(
'common.disabled'));
64 for ($i=SUBSCRIPTION_EXPIRY_REMINDER_AFTER_WEEKS_MIN; $i<=SUBSCRIPTION_EXPIRY_REMINDER_AFTER_WEEKS_MAX; $i++) {
65 $this->validNumWeeksAfterExpiry[$i] = __(
'manager.subscriptionPolicies.xWeeks', array(
'x' => $i));
68 parent::__construct(
'payments/subscriptionPolicyForm.tpl');
71 $this->
addCheck(
new FormValidatorEmail($this,
'subscriptionEmail',
'optional',
'manager.subscriptionPolicies.subscriptionContactEmailValid'));
74 $this->
addCheck(
new FormValidatorInSet($this,
'numMonthsBeforeSubscriptionExpiryReminder',
'optional',
'manager.subscriptionPolicies.numMonthsBeforeSubscriptionExpiryReminderValid', array_keys($this->validNumMonthsBeforeExpiry)));
77 $this->
addCheck(
new FormValidatorInSet($this,
'numWeeksBeforeSubscriptionExpiryReminder',
'optional',
'manager.subscriptionPolicies.numWeeksBeforeSubscriptionExpiryReminderValid', array_keys($this->validNumWeeksBeforeExpiry)));
80 $this->
addCheck(
new FormValidatorInSet($this,
'numMonthsAfterSubscriptionExpiryReminder',
'optional',
'manager.subscriptionPolicies.numMonthsAfterSubscriptionExpiryReminderValid', array_keys($this->validNumMonthsAfterExpiry)));
83 $this->
addCheck(
new FormValidatorInSet($this,
'numWeeksAfterSubscriptionExpiryReminder',
'optional',
'manager.subscriptionPolicies.numWeeksAfterSubscriptionExpiryReminderValid', array_keys($this->validNumWeeksAfterExpiry)));
91 public function fetch($request, $template =
null, $display =
false) {
94 $templateMgr->assign(array(
95 'validNumMonthsBeforeExpiry' => $this->validNumMonthsBeforeExpiry,
96 'validNumWeeksBeforeExpiry' => $this->validNumWeeksBeforeExpiry,
97 'validNumMonthsAfterExpiry' => $this->validNumMonthsAfterExpiry,
98 'validNumWeeksAfterExpiry' => $this->validNumWeeksAfterExpiry,
99 'scheduledTasksEnabled' => (
boolean)
Config::getVar(
'general',
'scheduled_tasks'),
100 'paymentsEnabled' => $paymentManager->isConfigured(),
103 return parent::fetch($request, $template, $display);
111 $journal = $request->getJournal();
112 $this->_data = array(
113 'subscriptionName' => $journal->getData(
'subscriptionName'),
114 'subscriptionEmail' => $journal->getData(
'subscriptionEmail'),
115 'subscriptionPhone' => $journal->getData(
'subscriptionPhone'),
116 'subscriptionMailingAddress' => $journal->getData(
'subscriptionMailingAddress'),
117 'subscriptionAdditionalInformation' => $journal->getData(
'subscriptionAdditionalInformation'),
118 'enableOpenAccessNotification' => $journal->getData(
'enableOpenAccessNotification'),
119 'subscriptionExpiryPartial' => $journal->getData(
'subscriptionExpiryPartial'),
120 'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual' => $journal->getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual'),
121 'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional' => $journal->getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional'),
122 'enableSubscriptionOnlinePaymentNotificationRenewIndividual' => $journal->getData(
'enableSubscriptionOnlinePaymentNotificationRenewIndividual'),
123 'enableSubscriptionOnlinePaymentNotificationRenewInstitutional' => $journal->getData(
'enableSubscriptionOnlinePaymentNotificationRenewInstitutional'),
124 'numMonthsBeforeSubscriptionExpiryReminder' => $journal->getData(
'numMonthsBeforeSubscriptionExpiryReminder'),
125 'numWeeksBeforeSubscriptionExpiryReminder' => $journal->getData(
'numWeeksBeforeSubscriptionExpiryReminder'),
126 'numMonthsAfterSubscriptionExpiryReminder' => $journal->getData(
'numMonthsAfterSubscriptionExpiryReminder'),
127 'numWeeksAfterSubscriptionExpiryReminder' => $journal->getData(
'numWeeksAfterSubscriptionExpiryReminder'),
135 $this->
readUserVars(array(
'subscriptionName',
'subscriptionEmail',
'subscriptionPhone',
'subscriptionMailingAddress',
'subscriptionAdditionalInformation',
'enableOpenAccessNotification',
'subscriptionExpiryPartial',
'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual',
'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional',
'enableSubscriptionOnlinePaymentNotificationRenewIndividual',
'enableSubscriptionOnlinePaymentNotificationRenewInstitutional',
'numMonthsBeforeSubscriptionExpiryReminder',
'numWeeksBeforeSubscriptionExpiryReminder',
'numWeeksAfterSubscriptionExpiryReminder',
'numMonthsAfterSubscriptionExpiryReminder'));
137 $this->
addCheck(
new FormValidatorInSet($this,
'numMonthsBeforeSubscriptionExpiryReminder',
'required',
'manager.subscriptionPolicies.numMonthsBeforeSubscriptionExpiryReminderValid', array_keys($this->validNumMonthsBeforeExpiry)));
138 $this->
addCheck(
new FormValidatorInSet($this,
'numWeeksBeforeSubscriptionExpiryReminder',
'required',
'manager.subscriptionPolicies.numWeeksBeforeSubscriptionExpiryReminderValid', array_keys($this->validNumWeeksBeforeExpiry)));
139 $this->
addCheck(
new FormValidatorInSet($this,
'numMonthsAfterSubscriptionExpiryReminder',
'required',
'manager.subscriptionPolicies.numMonthsAfterSubscriptionExpiryReminderValid', array_keys($this->validNumMonthsAfterExpiry)));
140 $this->
addCheck(
new FormValidatorInSet($this,
'numWeeksAfterSubscriptionExpiryReminder',
'required',
'manager.subscriptionPolicies.numWeeksAfterSubscriptionExpiryReminderValid', array_keys($this->validNumWeeksAfterExpiry)));
148 return array(
'subscriptionAdditionalInformation');
154 public function execute(...$functionArgs) {
156 $journal = $request->getJournal();
158 $journal->setData(
'subscriptionName', $this->
getData(
'subscriptionName'));
159 $journal->setData(
'subscriptionEmail', $this->
getData(
'subscriptionEmail'));
160 $journal->setData(
'subscriptionPhone', $this->
getData(
'subscriptionPhone'));
161 $journal->setData(
'subscriptionMailingAddress', $this->
getData(
'subscriptionMailingAddress'));
162 $journal->setData(
'subscriptionAdditionalInformation', $this->
getData(
'subscriptionAdditionalInformation'));
163 $journal->setData(
'enableOpenAccessNotification', $this->
getData(
'enableOpenAccessNotification') ==
null ? 0 : $this->
getData(
'enableOpenAccessNotification'));
164 $journal->setData(
'subscriptionExpiryPartial', $this->
getData(
'subscriptionExpiryPartial') ==
null ? 0 : $this->
getData(
'subscriptionExpiryPartial'));
165 $journal->setData(
'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual', $this->
getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual') ==
null ? 0 : $this->
getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseIndividual'));
166 $journal->setData(
'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional', $this->
getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional') ==
null ? 0 : $this->
getData(
'enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional'));
167 $journal->setData(
'enableSubscriptionOnlinePaymentNotificationRenewIndividual', $this->
getData(
'enableSubscriptionOnlinePaymentNotificationRenewIndividual') ==
null ? 0 : $this->
getData(
'enableSubscriptionOnlinePaymentNotificationRenewIndividual'));
168 $journal->setData(
'enableSubscriptionOnlinePaymentNotificationRenewInstitutional', $this->
getData(
'enableSubscriptionOnlinePaymentNotificationRenewInstitutional') ==
null ? 0 : $this->
getData(
'enableSubscriptionOnlinePaymentNotificationRenewInstitutional'));
169 $journal->setData(
'numMonthsBeforeSubscriptionExpiryReminder', $this->
getData(
'numMonthsBeforeSubscriptionExpiryReminder'));
170 $journal->setData(
'numWeeksBeforeSubscriptionExpiryReminder', $this->
getData(
'numWeeksBeforeSubscriptionExpiryReminder'));
171 $journal->setData(
'numMonthsAfterSubscriptionExpiryReminder', $this->
getData(
'numMonthsAfterSubscriptionExpiryReminder'));
172 $journal->setData(
'numWeeksAfterSubscriptionExpiryReminder', $this->
getData(
'numWeeksAfterSubscriptionExpiryReminder'));
174 parent::execute(...$functionArgs);
177 $journalDao->updateObject($journal);