public function transactionDetailModalAction()
 {
     if ($this->getRequest()->getParam('vendortxcode') || $this->getRequest()->getParam('vpstxid')) {
         $id = $this->getRequest()->getParam('vendortxcode') ? $this->getRequest()->getParam('vendortxcode') : $this->getRequest()->getParam('vpstxid');
         try {
             if ($this->getRequest()->getParam('vpstxid')) {
                 $response = Mage::getModel('sagepayreporting/sagepayreporting')->getTransactionDetails(null, urldecode($id));
                 $relatedTrns = Mage::getModel('sagepayreporting/sagepayreporting')->getRelatedTransactions(urldecode($id));
                 if ($relatedTrns['ok'] === true) {
                     Mage::register('sagepay_related_transactions', $relatedTrns['result']);
                 } else {
                     $response = new Varien_Object();
                     $response->setError($relatedTrns['result']);
                     $response->setErrorcode('-1');
                 }
             } else {
                 Mage::register('sagepay_related_transactions', new Varien_Object());
                 $response = Mage::getModel('sagepayreporting/sagepayreporting')->getTransactionDetails($id, null);
             }
         } catch (Exception $exc) {
             //$this->_getSession()->addError($exc->getMessage());
             $response = new Varien_Object();
             $response->setError($exc->getMessage());
             $response->setErrorcode('-1');
         }
         if ($response->getErrorcode() == '0000') {
             Mage::register('sagepay_detail', $response);
         } else {
             $this->_getSession()->addError(Mage::helper('sagepayreporting/error')->parseError($response->getError(), Mage::getStoreConfig('sagepayreporting/account/vendor')));
         }
     } else {
         Mage::register('sagepay_detail', null);
     }
     $this->loadLayout('popup_sagepay')->renderLayout();
 }