From 156252af6eaeae89141700fd6481367af617ceac Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Wed, 28 May 2008 21:56:58 +0000 Subject: [PATCH] Fixed ExpireSubcriptionCode workflow activity to use the new system. Added code to remove the ProcessRecurringPayments workflow activity from the config file. --- docs/upgrades/upgrade_7.5.10-7.5.11.pl | 16 ++++++++++++++++ .../Workflow/Activity/ExpireSubscriptionCodes.pm | 11 +++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/upgrades/upgrade_7.5.10-7.5.11.pl b/docs/upgrades/upgrade_7.5.10-7.5.11.pl index 0c42a53cc..2a12bf3f6 100644 --- a/docs/upgrades/upgrade_7.5.10-7.5.11.pl +++ b/docs/upgrades/upgrade_7.5.10-7.5.11.pl @@ -66,6 +66,7 @@ addDBLinkAccessToSQLMacro($session); addAssetManager( $session ); removeSqlForm($session); migratePaymentPlugins( $session ); +removeRecurringPaymentActivity( $session ); finish($session); # this line required @@ -1440,6 +1441,21 @@ sub migratePaymentPlugins { print "Done\n" unless $quiet; } +#---------------------------------------------------------------------------- +sub removeRecurringPaymentActivity { + my $session = shift; + print "\tRemoving the recurring payment workflow activity..."; + + my $activities = $session->config->get( 'workflowActivities' ); + + my $none = $activities->{ None }; + $activities->{ None } = [ grep { !/^WebGUI::Workflow::Activity::ProcessRecurringPayments$/ } @{ $none } ]; + + $session->config->set( 'workflowActivities', $activities ); + + print "Done.\n"; +} + # -------------- DO NOT EDIT BELOW THIS LINE -------------------------------- #---------------------------------------------------------------------------- diff --git a/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm b/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm index 2da08f096..ec5101ce8 100644 --- a/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm +++ b/lib/WebGUI/Workflow/Activity/ExpireSubscriptionCodes.pm @@ -52,7 +52,7 @@ sub definition { my $class = shift; my $session = shift; my $definition = shift; - my $i18n = WebGUI::International->new($session, "Subscription"); + my $i18n = WebGUI::International->new($session, "Asset_Subscription"); push(@{$definition}, { name=>$i18n->get("expire subscription codes"), properties=> { } @@ -71,7 +71,14 @@ See WebGUI::Workflow::Activity::execute() for details. sub execute { my $self = shift; - $self->session->db->write("update subscriptionCode set status='Expired' where status = 'Unused' and dateCreated + expires < ?", [time()]); + $self->session->db->write( + "update Subscription_code set status='Expired' where status = 'Unused' and batchId in" + ." ( select batchId from Subscription_codeBatch where expirationDate < ? )", + [ + time() + ] + ); + return $self->COMPLETE; }