コード例 #1
0
 protected function _toHtml()
 {
     $this->setTxnIdHtml($this->escapeHtml($this->_txn->getTxnId()));
     $this->setParentTxnIdUrlHtml($this->escapeHtml($this->getUrl('*/sales_transactions/view', array('txn_id' => $this->_txn->getParentId()))));
     $this->setParentTxnIdHtml($this->escapeHtml($this->_txn->getParentTxnId()));
     $this->setOrderIncrementIdHtml($this->escapeHtml($this->_txn->getOrder()->getIncrementId()));
     $this->setTxnTypeHtml($this->escapeHtml($this->_txn->getTxnType()));
     $this->setOrderIdUrlHtml($this->escapeHtml($this->getUrl('*/sales_order/view', array('order_id' => $this->_txn->getOrderId()))));
     $this->setIsClosedHtml($this->_txn->getIsClosed() ? Mage::helper('sales')->__('Yes') : Mage::helper('sales')->__('No'));
     $createdAt = strtotime($this->_txn->getCreatedAt()) ? $this->formatDate($this->_txn->getCreatedAt(), Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true) : $this->__('N/A');
     $this->setCreatedAtHtml($this->escapeHtml($createdAt));
     return parent::_toHtml();
 }
コード例 #2
0
ファイル: Transaction.php プロジェクト: jpbender/mage_virtual
 /**
  * Update transactions in database using provided transaction as parent for them
  * have to repeat the business logic to avoid accidental injection of wrong transactions
  * @param Mage_Sales_Model_Order_Payment_Transaction $transaction
  */
 public function injectAsParent(Mage_Sales_Model_Order_Payment_Transaction $transaction)
 {
     $txnId = $transaction->getTxnId();
     if ($txnId && Mage_Sales_Model_Order_Payment_Transaction::TYPE_PAYMENT === $transaction->getTxnType() && ($id = $transaction->getId())) {
         $adapter = $this->_getWriteAdapter();
         // verify such transaction exists, determine payment and order id
         $verificationRow = $adapter->fetchRow($adapter->select()->from($this->getMainTable(), array('payment_id', 'order_id'))->where("{$this->getIdFieldName()} = ?", (int) $id));
         if (!$verificationRow) {
             return;
         }
         list($paymentId, $orderId) = array_values($verificationRow);
         // inject
         $adapter->update($this->getMainTable(), array('parent_id' => $id), sprintf('%s <> %d AND parent_id IS NULL AND payment_id = %d AND order_id = %d AND parent_txn_id = %s', $this->getIdFieldName(), $id, (int) $paymentId, (int) $orderId, $adapter->quote($txnId)));
     }
 }
コード例 #3
0
 /**
  * Re-create order with new transaction returned by Eway
  * @param $data
  */
 private function __createNewTransaction(Mage_Sales_Model_Order $order, $transId)
 {
     // Load transaction
     $currentTrans = Mage::getModel('sales/order_payment_transaction')->getCollection()->addFieldToFilter('order_id', array('eq' => $order->getEntityId()));
     foreach ($currentTrans as $t) {
     }
     if ($t == null) {
         $t = new Mage_Sales_Model_Order_Payment_Transaction();
     }
     $trans = new Mage_Sales_Model_Order_Payment_Transaction();
     // Load payment object
     $payment = Mage::getModel('sales/order_payment')->load($t->getPaymentId());
     $trans->setOrderPaymentObject($payment);
     $trans->setOrder($order);
     $trans->setParentId($t->getTransactionId());
     $trans->setOrderId($order->getEntityId());
     $trans->setPaymentId($t->getPaymentId());
     $trans->setTxnId($transId);
     $trans->setParentTxnId($t->getTxnId());
     $trans->setTxnType($t->getTxnType());
     $trans->setIsClosed($t->getIsClosed());
     $trans->setCreatedAt(date('Y-m-d H:i:s'));
     $trans->save();
 }
コード例 #4
0
 /**
  * Create new transaction with base order
  * @param $data
  */
 private function __createNewTransaction(Mage_Sales_Model_Order $order, $transId)
 {
     // Load transaction
     $currentTrans = Mage::getModel('sales/order_payment_transaction')->getCollection()->addFieldToFilter('order_id', array('eq' => $order->getEntityId()));
     foreach ($currentTrans as $t) {
     }
     if ($t == null) {
         $t = new Mage_Sales_Model_Order_Payment_Transaction();
     }
     $trans = new Mage_Sales_Model_Order_Payment_Transaction();
     // Load payment object
     $payment = Mage::getModel('sales/order_payment')->load($t->getPaymentId());
     $trans->setOrderPaymentObject($payment);
     $trans->setOrder($order);
     $trans->setParentId($t->getTransactionId());
     $trans->setOrderId($order->getEntityId());
     $trans->setPaymentId($t->getPaymentId());
     // Get new TxnId
     $break = true;
     for ($i = 0; $i < 100; $i++) {
         $transId += 1;
         $newTrans = Mage::getModel('sales/order_payment_transaction')->getCollection()->addFieldToFilter('txn_id', array('eq' => $transId));
         if (count($newTrans) == 0) {
             $break = false;
             break;
         }
     }
     if ($break) {
         return false;
     }
     $trans->setTxnId($transId);
     $trans->setParentTxnId($t->getTxnId());
     $trans->setTxnType($t->getTxnType());
     $trans->setIsClosed($t->getIsClosed());
     $trans->setCreatedAt(date('Y-m-d H:i:s'));
     try {
         $trans->save();
     } catch (Exception $e) {
         // Do something
     }
     return true;
 }
コード例 #5
0
ファイル: Data.php プロジェクト: xiaoguizhidao/bb
 /**
  * Determine if a transaction has been voided, using the "txn_type" field
  * instead of "type" like the native isVoided method does
  *
  * @param Mage_Sales_Model_Order_Payment_Transaction $trans
  * @return bool
  */
 public function transactionIsVoided($trans)
 {
     $children = $trans->getChildTransactions();
     $result = false;
     if (Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH === $trans->getTxnType()) {
         foreach ($children as $child) {
             if (Mage_Sales_Model_Order_Payment_Transaction::TYPE_VOID === $child->getTxnType()) {
                 $result = true;
             }
         }
     }
     return $result;
 }