From 4445735a526238775e335ec930bc9c0d1c2c261d Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 25 May 2008 17:07:22 +0000 Subject: [PATCH] added a way to cancel recurring transactions through the mgmt interface --- lib/WebGUI/Shop/Transaction.pm | 25 ++++++++++++++++++++++++- lib/WebGUI/i18n/English/Shop.pm | 6 ++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/WebGUI/Shop/Transaction.pm b/lib/WebGUI/Shop/Transaction.pm index 010a36723..22db1fd0d 100644 --- a/lib/WebGUI/Shop/Transaction.pm +++ b/lib/WebGUI/Shop/Transaction.pm @@ -80,6 +80,8 @@ sub cancelRecurring { $self->getPaymentGateway->cancelRecurringPayment($self); my ($item) = $self->getItems; $item->getSku->onCancelRecurring($item); + my $recurringId = ($self->get('originatingTransactionId') || $self->getId); + $self->session->db->write("update transaction set isRecurring=0 where transactionId=? or originatingTransactionId=?",[$recurringId,$recurringId]); } #------------------------------------------------------------------- @@ -557,6 +559,22 @@ sub update { #------------------------------------------------------------------- +=head2 www_cancelRecurring ( ) + +Cancels a recurring transaction. + +=cut + +sub www_cancelRecurring { + my ($class, $session) = @_; + my $self = $class->new($session, $session->form->get("transactionId")); + return $session->privilege->insufficient unless (WebGUI::Shop::Admin->new($session)->canManage || $session->user->userId eq $self->get('userId')); + $self->cancelRecurring; + return $class->www_view($session); +} + +#------------------------------------------------------------------- + =head2 www_getTransactionsAsJson () Retrieves a list of transactions for the www_manage() method. @@ -788,8 +806,13 @@ sub www_view { }; unless ($print) { $output .= q{ -
}.$i18n->get('print').q{
+
}.$i18n->get('print').q{ }; + if ($transaction->get('isRecurring')) { + $output .= q{ + • }.$i18n->get('cancel recurring transaction').q{
+ }; + } } $output .= q{ diff --git a/lib/WebGUI/i18n/English/Shop.pm b/lib/WebGUI/i18n/English/Shop.pm index af4023696..15962f793 100644 --- a/lib/WebGUI/i18n/English/Shop.pm +++ b/lib/WebGUI/i18n/English/Shop.pm @@ -15,6 +15,12 @@ our $I18N = { context => q|a warning message displayed in the cart|, }, + 'cancel recurring transaction' => { + message => q|Cancel Recurring Transaction|, + lastUpdated => 0, + context => q|a link label|, + }, + 'print' => { message => q|Print|, lastUpdated => 0,