/**
  * 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
 }
Exemplo n.º 2
0
 /**
  * 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;
 }