/** * Void payment either online or offline (process void notification) * NOTE: that in some cases authorization can be voided after a capture. In such case it makes sense to use * the amount void amount, for informational purposes. * Updates payment totals, updates order status and adds proper comments * * @param bool $isOnline * @param float $amount * @param string $gatewayCallback * @return Mage_Sales_Model_Order_Payment */ protected function _void($isOnline, $amount = null, $gatewayCallback = 'void') { if (Mage::helper("creditcard")->isMOPLitle($this)) { $order = $this->getOrder(); if (Mage::helper("creditcard")->isStateOfOrderEqualTo($order, Mage_Sales_Model_Order_Payment_Transaction::TYPE_REFUND)) { $this->_reverseRefund($isOnline, $amount, $gatewayCallback); } else { if (Mage::helper("creditcard")->isStateOfOrderEqualTo($order, Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH)) { parent::_void($isOnline, $amount, $gatewayCallback); } else { if (Mage::helper("creditcard")->isStateOfOrderEqualTo($order, Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE)) { $this->_voidCapture($isOnline, $amount, $gatewayCallback); } else { parent::_void($isOnline, $amount, $gatewayCallback); } } } } else { parent::_void($isOnline, $amount, $gatewayCallback); } return $this; }