コード例 #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
 /**
  * Retrieve header text
  *
  * @return string
  */
 public function getHeaderText()
 {
     return Mage::helper('sales')->__("Transaction # %s | %s", $this->_txn->getTxnId(), $this->formatDate($this->_txn->getCreatedAt(), Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true));
 }
コード例 #5
0
 /**
  * Update transaction ids for further processing
  * If no transactions were set before invoking, may generate an "offline" transaction id
  *
  * @param string $type
  * @param Mage_Sales_Model_Order_Payment_Transaction $transactionBasedOn
  */
 protected function _generateTransactionId($type, $transactionBasedOn = false)
 {
     if (!$this->getParentTransactionId() && !$this->getTransactionId() && $transactionBasedOn) {
         $this->setParentTransactionId($transactionBasedOn->getTxnId());
     }
     // generate transaction id for an offline action or payment method that didn't set it
     if (($parentTxnId = $this->getParentTransactionId()) && !$this->getTransactionId()) {
         $this->setTransactionId("{$parentTxnId}-{$type}");
     }
 }
コード例 #6
0
 /**
  * Update transaction ids for further processing
  * If no transactions were set before invoking, may generate an "offline" transaction id
  *
  * @param string $type
  * @param Mage_Sales_Model_Order_Payment_Transaction $transactionBasedOn
  */
 protected function _generateTransactionId($payment, $type, $transactionBasedOn = false)
 {
     if (!$payment->getParentTransactionId() && $transactionBasedOn) {
         $payment->setParentTransactionId($transactionBasedOn->getTxnId());
     }
     // generate transaction id for an offline action or payment method that didn't set it
     if ($parentTxnId = $payment->getParentTransactionId()) {
         $transactionId = "{$parentTxnId}-{$type}";
         $collection = Mage::getModel('sales/order_payment_transaction')->getCollection()->setOrderFilter($payment->getOrder())->addPaymentIdFilter($payment->getId())->addTxnTypeFilter($type);
         if ($collection->count() > 0) {
             $transactionId .= '-' . ($collection->count() + 1);
         }
         $payment->setTransactionId($transactionId);
     }
 }
コード例 #7
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;
 }