diff --git a/docs/upgrades/upgrade_6.8.7-6.99.0.pl b/docs/upgrades/upgrade_6.8.7-6.99.0.pl index 0370b67ef..93fe3054f 100644 --- a/docs/upgrades/upgrade_6.8.7-6.99.0.pl +++ b/docs/upgrades/upgrade_6.8.7-6.99.0.pl @@ -129,7 +129,8 @@ sub addWorkflow { None=>["WebGUI::Workflow::Activity::DecayKarma", "WebGUI::Workflow::Activity::TrashClipboard", "WebGUI::Workflow::Activity::CleanTempStorage", "WebGUI::Workflow::Activity::CleanFileCache", "WebGUI::Workflow::Activity::CleanLoginHistory", "WebGUI::Workflow::Activity::ArchiveOldThreads", "WebGUI::Workflow::Activity::TrashExpiredEvents", "WebGUI::Workflow::Activity::CreateCronJob", "WebGUI::Workflow::Activity::DeleteExpiredSessions", - "WebGUI::Workflow::Activity::DeleteExpiredGroupings", "WebGUI::Workflow::Activity::PurgeOldAssetRevisions"], + "WebGUI::Workflow::Activity::DeleteExpiredGroupings", "WebGUI::Workflow::Activity::PurgeOldAssetRevisions", + "WebGUI::Workflow::Activity::ExpireSubscriptionCodes", "WebGUI::Workflow::Activity::PurgeOldTrash"], "WebGUI::User"=>["WebGUI::Workflow::Activity::CreateCronJob"], "WebGUI::VersionTag"=>["WebGUI::Workflow::Activity::CommitVersionTag", "WebGUI::Workflow::Activity::RollbackVersionTag", "WebGUI::Workflow::Activity::TrashVersionTag", "WebGUI::Workflow::Activity::CreateCronJob"] @@ -153,6 +154,8 @@ sub addWorkflow { $activity->set("trashAfter", 60*60*24*30); $activity = $workflow->addActivity("WebGUI::Workflow::Activity::DeleteExpiredGroupings", "pbwfactivity0000000007"); $activity->set("title", "Delete groupings that have expired"); + $activity = $workflow->addActivity("WebGUI::Workflow::Activity::ExpireSubscriptionCodes", "pbwfactivity0000000011"); + $activity->set("title", "Expire old subscription codes"); WebGUI::Workflow::Cron->create($session, { title=>'Daily Maintenance', enabled=>1, diff --git a/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm b/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm new file mode 100644 index 000000000..acbf9607e --- /dev/null +++ b/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm @@ -0,0 +1,80 @@ +package WebGUI::Workflow::Activity::ExpireSubscriptionCodes; + + +=head1 LEGAL + + ------------------------------------------------------------------- + WebGUI is Copyright 2001-2006 Plain Black Corporation. + ------------------------------------------------------------------- + Please read the legal notices (docs/legal.txt) and the license + (docs/license.txt) that came with this distribution before using + this software. + ------------------------------------------------------------------- + http://www.plainblack.com info@plainblack.com + ------------------------------------------------------------------- + +=cut + +use strict; +use base 'WebGUI::Workflow::Activity'; +use File::Path; +use File::stat; + + +=head1 NAME + +Package WebGUI::Workflow::Activity::ExpireSubscriptionCodes + +=head1 DESCRIPTION + +Set old subscription codes expired. + +=head1 SYNOPSIS + +See WebGUI::Workflow::Activity for details on how to use any activity. + +=head1 METHODS + +These methods are available from this class: + +=cut + + +#------------------------------------------------------------------- + +=head2 definition ( session, definition ) + +See WebGUI::Workflow::Activity::defintion() for details. + +=cut + +sub definition { + my $class = shift; + my $session = shift; + my $definition = shift; + my $i18n = WebGUI::International->new($session, "Subscription"); + push(@{$definition}, { + name=>$i18n->get("expire subscription codes"), + properties=> { } + }); + return $class->SUPER::definition($session,$definition); +} + + +#------------------------------------------------------------------- + +=head2 execute ( ) + +See WebGUI::Workflow::Activity::execute() for details. + +=cut + +sub execute { + my $self = shift; + $self->session->db->write("update subscriptionCode set status='Expired' where status = 'Unused' and dateCreated + expires < ?", [time()]); +} + + +1; + + diff --git a/lib/WebGUI/i18n/English/Subscription.pm b/lib/WebGUI/i18n/English/Subscription.pm index 2a1b180d0..dd2595535 100755 --- a/lib/WebGUI/i18n/English/Subscription.pm +++ b/lib/WebGUI/i18n/English/Subscription.pm @@ -1,6 +1,12 @@ package WebGUI::i18n::English::Subscription; our $I18N = { + 'expire subscription codes' => { + message => q|Expire Subscription Codes|, + lastUpdated => 0, + context => q|the title of the expire subscription codes workflow activity| + }, + 'no subscription code batches' => { message => q|No subscription code batches have been created yet. Use the submenu on the right to generate a batch.|, lastUpdated => 1101228391, diff --git a/sbin/Hourly/ExpireSubscriptionCodes.pm b/sbin/Hourly/ExpireSubscriptionCodes.pm deleted file mode 100644 index 017aaafac..000000000 --- a/sbin/Hourly/ExpireSubscriptionCodes.pm +++ /dev/null @@ -1,12 +0,0 @@ -package Hourly::ExpireSubscriptionCodes; - -use strict; -use WebGUI::SQL; - -#------------------------------------------------------------------- -sub process { - WebGUI::SQL->write("update subscriptionCode set status='Expired' where status = 'Unused' and dateCreated + expires < ".time); -} - -1; -