Example #1
0
 /**
  * Get reference ID of parent transaction
  * (e.g. get PNREF of AUTH transaction for request a CAPTURE transaction)
  *
  * @param \XLite\Model\Payment\BackendTransaction $backendTransaction Backend transaction object
  *
  * @return string
  */
 protected function getTransactionReferenceId(\XLite\Model\Payment\BackendTransaction $backendTransaction)
 {
     $referenceId = null;
     $paymentTransaction = $backendTransaction->getPaymentTransaction();
     switch ($backendTransaction->getType()) {
         case \XLite\Model\Payment\BackendTransaction::TRAN_TYPE_CAPTURE:
         case \XLite\Model\Payment\BackendTransaction::TRAN_TYPE_VOID:
             if (\XLite\Model\Payment\BackendTransaction::TRAN_TYPE_AUTH == $paymentTransaction->getType()) {
                 $referenceId = $paymentTransaction->getDataCell($this->getReferenceIdField())->getValue();
             }
             break;
         case \XLite\Model\Payment\BackendTransaction::TRAN_TYPE_REFUND:
             if (\XLite\Model\Payment\BackendTransaction::TRAN_TYPE_SALE == $paymentTransaction->getType()) {
                 $referenceId = $paymentTransaction->getDataCell($this->getReferenceIdField())->getValue();
             } elseif ($paymentTransaction->isCaptured()) {
                 foreach ($paymentTransaction->getBackendTransactions() as $bt) {
                     if (\XLite\Model\Payment\BackendTransaction::TRAN_TYPE_CAPTURE == $bt->getType() && \XLite\Model\Payment\Transaction::STATUS_SUCCESS == $bt->getStatus()) {
                         $referenceId = $bt->getDataCell($this->getReferenceIdField())->getValue();
                         break;
                     }
                 }
             }
             break;
         default:
             break;
     }
     return $referenceId;
 }
 /**
  * {@inheritDoc}
  */
 public function getType()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getType', array());
     return parent::getType();
 }