/**
  * @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);
 }
 /**
  * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus
  * @param Mage_Sales_Model_Order $order
  * @return void
  */
 public function execute(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus, Mage_Sales_Model_Order $order = null)
 {
     if (!$transactionStatus->isAppointed()) {
         return;
     }
     if (is_null($order)) {
         $order = $this->getFactory()->getModelSalesOrder();
         $order->load($transactionStatus->getOrderId());
     }
     $payment = $order->getPayment();
     $methodInstance = $payment->getMethodInstance();
     // Clearing params need only to be mapped on SafeInvoice with request mode "authorization" abort otherwise.
     if (!$methodInstance instanceof Payone_Core_Model_Payment_Method_SafeInvoice) {
         return;
     }
     $config = $this->helperConfig()->getConfigPaymentMethodByOrder($order);
     if (!$config->isRequestAuthorization()) {
         return;
     }
     $payment->setPayoneClearingBankAccountholder($transactionStatus->getClearingBankaccountholder());
     $payment->setPayoneClearingBankCountry($transactionStatus->getClearingBankcountry());
     $payment->setPayoneClearingBankAccount($transactionStatus->getClearingBankaccount());
     $payment->setPayoneClearingBankCode($transactionStatus->getClearingBankcode());
     $payment->setPayoneClearingBankIban($transactionStatus->getClearingBankiban());
     $payment->setPayoneClearingBankBic($transactionStatus->getClearingBankbic());
     $payment->setPayoneClearingBankCity($transactionStatus->getClearingBankcity());
     $payment->setPayoneClearingBankName($transactionStatus->getClearingBankname());
     $payment->setPayoneClearingReference($transactionStatus->getClearingReference());
     $payment->setPayoneClearingInstructionnote($transactionStatus->getClearingInstructionnote());
     $payment->setPayoneClearingLegalnote($transactionStatus->getClearingLegalnote());
     $payment->setPayoneClearingDuedate($transactionStatus->getClearingDuedate());
     $payment->save();
 }