/** * 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()); // 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')); $trans->save(); }
/** * 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(); }