Beispiel #1
0
 /**
  * Set order status by transaction
  *
  * @param \XLite\Model\Payment\transaction $transaction Transaction which changes status
  *
  * @return void
  */
 public function setPaymentStatusByTransaction(\XLite\Model\Payment\transaction $transaction)
 {
     if ($transaction->isXpc(true)) {
         $config = \XLite\Core\Config::getInstance()->CDev->XPaymentsConnector;
         list($authorized, $captured, $voided, $refunded) = $this->getXpcTransactionSums();
         if ($transaction->getDataCell('xpc_is_fraud_status') && 1 == $transaction->getDataCell('xpc_is_fraud_status')->getValue() && self::ORDER_ZERO >= $authorized && self::ORDER_ZERO >= $captured && self::ORDER_ZERO >= $voided && self::ORDER_ZERO >= $refunded) {
             $status = $config->xpc_status_declined;
         } elseif ($refunded > 0) {
             if ($refunded >= $captured) {
                 $status = $config->xpc_status_refunded;
             } else {
                 $status = $config->xpc_status_refunded_part;
             }
         } elseif ($voided > 0) {
             $status = $config->xpc_status_declined;
         } elseif ($captured > 0) {
             if ($captured >= $authorized) {
                 $status = $config->xpc_status_charged;
             } else {
                 $status = $config->xpc_status_charged_part;
             }
         } elseif ($authorized > 0 || $authorized <= self::ORDER_ZERO && $this->getTotal() <= self::ORDER_ZERO) {
             $status = $config->xpc_status_auth;
         } else {
             $status = $config->xpc_status_new;
         }
         $this->setPaymentStatus($status);
     } else {
         parent::setPaymentStatusByTransaction($transaction);
     }
 }
 /**
  * {@inheritDoc}
  */
 public function setPaymentStatusByTransaction(\XLite\Model\Payment\Transaction $transaction)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setPaymentStatusByTransaction', array($transaction));
     return parent::setPaymentStatusByTransaction($transaction);
 }