/**
  * @param Mage_Sales_Model_Order $order
  * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus
  * @return void
  */
 public function updateByTransactionStatus(Mage_Sales_Model_Order $order, Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus)
 {
     // Update Status of Transaction
     $order->setPayoneTransactionStatus($transactionStatus->getTxaction());
     // Update dunning status
     if ($transactionStatus->getReminderlevel()) {
         $order->setPayoneDunningStatus($transactionStatus->getReminderlevel());
     }
     // Status mapping of Order by Transaction Status
     $statusMapping = $this->getConfigStore()->getGeneral()->getStatusMapping();
     $txAction = $transactionStatus->getTxaction();
     /**
      * @var $paymentMethod Payone_Core_Model_Payment_Method_Abstract
      */
     $paymentMethod = $order->getPayment()->getMethodInstance();
     $type = $paymentMethod->getMethodType();
     // Mapping
     $mapping = $statusMapping->getByType($type);
     if (!is_array($mapping) or !array_key_exists($txAction, $mapping)) {
         return;
     }
     // Check for valid Mapping
     $mappingOrderState = $mapping[$txAction];
     if (!is_array($mappingOrderState) or !array_key_exists('status', $mappingOrderState) or !array_key_exists('state', $mappingOrderState)) {
         return;
     }
     // Get State / Status and set to Order
     $newOrderState = $mappingOrderState['state'];
     $newOrderStatus = $mappingOrderState['status'];
     if ($newOrderState != '') {
         $order->setState($newOrderState, $newOrderStatus);
     } else {
         $order->setStatus($newOrderStatus);
     }
 }
 /**
  * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus
  * @return bool
  */
 public function forward(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus)
 {
     $currentTxAction = $transactionStatus->getTxaction();
     $config = $this->getConfigForwarding()->getConfig($currentTxAction);
     foreach ($config as $configHost) {
         $response = $this->forwardToHost($configHost, $transactionStatus);
     }
     if ($this->hasExceptions()) {
         return false;
     }
     return true;
 }
 /**
  * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus
  * @return Payone_Core_Model_Domain_Transaction
  */
 public function updateByTransactionStatus(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus)
 {
     $transaction = $this->getFactory()->getModelTransaction();
     $transaction->load($transactionStatus->getTxid(), 'txid');
     $data = $transactionStatus->getData();
     unset($data['id']);
     unset($data['created_at']);
     unset($data['updated_at']);
     unset($data['processed_at']);
     unset($data['processing_status']);
     $transaction->setLastTxaction($transactionStatus->getTxaction());
     $transaction->setLastSequencenumber($transactionStatus->getSequencenumber());
     $transaction->addData($data);
     $transaction->save();
     return $transaction;
 }
 /**
  * @param Mage_Sales_Model_Order $order
  * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus
  */
 public function addByTransactionStatus(Mage_Sales_Model_Order $order, Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus)
 {
     if ($transactionStatus->isAppointed()) {
         $comment = 'PAYONE accepted the payment-request.';
     } elseif ($transactionStatus->isCapture()) {
         $comment = 'PAYONE confirmed the collection.';
     } elseif ($transactionStatus->isPaid()) {
         $comment = 'PAYONE confirmed the payment receipt.';
     } elseif ($transactionStatus->isUnderpaid()) {
         $comment = 'PAYONE confirmed the payment receipt. There is an underpayment.';
     } elseif ($transactionStatus->isCancelation()) {
         $comment = 'The payment was rejected.';
     } elseif ($transactionStatus->isRefund()) {
         $comment = 'PAYONE confirmed the credit.';
     } elseif ($transactionStatus->isDebit()) {
         $comment = 'PAYONE confirmed the claim.';
     } elseif ($transactionStatus->isReminder()) {
         $comment = 'The dunning status was updated, status is %s';
     } elseif ($transactionStatus->isTransfer()) {
         $comment = 'Transactionstatus: transfer';
     } elseif ($transactionStatus->isVauthorization()) {
         $comment = 'Transactionstatus: vauthorization';
     } elseif ($transactionStatus->isVsettlement()) {
         $comment = 'Transactionstatus: vsettlement';
     } elseif ($transactionStatus->isInvoice()) {
         $comment = 'Transactionstatus: invoice';
     } else {
         $comment = $transactionStatus->getTxaction();
     }
     $this->addCommentToOrder($order, $comment);
 }