/** * only SR: Fill table sofort_orders_notification, e.g. in case of status-changes * @see updateTimeline() * @param int $sofortOrdersId - key from table sofort_orders * @param object $invoice with complete transactiondata * @param string $customerComment (optional) * @param string $sellerComment (optional) * @return last insert_id */ function insertSofortOrdersNotification($sofortOrdersId, PnagInvoice $PnagInvoice, $customerComment = '', $sellerComment = '') { if (!$sofortOrdersId || !is_object($PnagInvoice->getTransactionData()) || $PnagInvoice->getTransactionData()->getPaymentMethod() != 'sr') { return false; } $sqlDataArray = array('sofort_orders_id' => $sofortOrdersId, 'items' => serialize($PnagInvoice->getItems()), 'amount' => $PnagInvoice->getAmount(), 'customer_comment' => $customerComment, 'seller_comment' => $sellerComment, 'status_id' => $PnagInvoice->getState(), 'status' => $PnagInvoice->getStatus(), 'status_reason' => $PnagInvoice->getStatusReason(), 'invoice_status' => $PnagInvoice->getStatusOfInvoice(), 'invoice_objection' => $PnagInvoice->getInvoiceObjection()); xtc_db_query(HelperFunctions::getEscapedInsertInto('sofort_orders_notification', $sqlDataArray)); return xtc_db_insert_id(); // fetch and return the last insert id }
/** * cancel PNAG invoice * * @param Varien_Event_Observer $observer * @return $this */ public function sales_order_payment_cancel($observer) { // dont trigger if we are notifyed if (!empty($GLOBALS['isNotificationAction'])) { return $this; } //get payment $payment = $observer->getEvent()->getPayment(); $method = $payment->getMethod(); if ($method != 'sofortrechnung') { return $this; } $transactionId = $payment->getAdditionalInformation('sofort_transaction'); if (!empty($transactionId)) { $PnagInvoice = new PnagInvoice(Mage::getStoreConfig('payment/sofort/configkey'), $transactionId); if ($PnagInvoice->getStatus() != 'loss') { $PnagInvoice->cancelInvoice($transactionId); } if ($PnagInvoice->isError()) { Mage::throwException($PnagInvoice->getError()); } else { Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('pnsofortueberweisung')->__('Successfully canceled invoice: %s', $transactionId)); return $this; } } Mage::getSingleton('adminhtml/session')->addError(Mage::helper('pnsofortueberweisung')->__('Could not cancel invoice.')); return $this; }