function do_transaction($transaction)
 {
     $this->session_addDonorData();
     $this->setCurrentTransaction($transaction);
     switch ($transaction) {
         case 'Donate':
         case 'DonateXclick':
         case 'DonateRecurring':
             $result = parent::do_transaction($transaction);
             $this->finalizeInternalStatus(FinalStatus::COMPLETE);
             return $result;
     }
 }
 /**
  * Because GC has some processes that involve more than one do_transaction 
  * chained together, we're catching those special ones in an overload and 
  * letting the rest behave normally. 
  */
 public function do_transaction($transaction)
 {
     switch ($transaction) {
         case 'Confirm_CreditCard':
             $this->getStopwatch('Confirm_CreditCard', true);
             $result = $this->transactionConfirm_CreditCard();
             $this->saveCommunicationStats('Confirm_CreditCard', $transaction);
             return $result;
             break;
         default:
             return parent::do_transaction($transaction);
     }
 }
 /**
  * Because GC has some processes that involve more than one do_transaction
  * chained together, we're catching those special ones in an overload and
  * letting the rest behave normally.
  * @return PaymentTransactionResponse
  */
 public function do_transaction($transaction)
 {
     $this->session_addDonorData();
     switch ($transaction) {
         case 'Confirm_CreditCard':
             $this->profiler->getStopwatch('Confirm_CreditCard', true);
             $result = $this->transactionConfirm_CreditCard();
             $this->profiler->saveCommunicationStats('Confirm_CreditCard', $transaction);
             return $result;
         case 'Direct_Debit':
             $this->profiler->getStopwatch('Direct_Debit', true);
             $result = $this->transactionDirect_Debit();
             $this->profiler->saveCommunicationStats('Direct_Debit', $transaction);
             return $result;
         case 'Recurring_Charge':
             return $this->transactionRecurring_Charge();
         default:
             return parent::do_transaction($transaction);
     }
 }