コード例 #1
0
ファイル: RefundPlugin.php プロジェクト: spryker/Payone
 /**
  * @param array $orderItems
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  * @param \Spryker\Zed\Oms\Business\Util\ReadOnlyArrayObject $data
  *
  * @return array Array
  */
 public function run(array $orderItems, SpySalesOrder $orderEntity, ReadOnlyArrayObject $data)
 {
     $payoneRefundTransfer = new PayoneRefundTransfer();
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($orderEntity->toArray(), true);
     $refundTransfer = $this->getFactory()->getRefundFacade()->calculateRefund($orderItems, $orderEntity);
     $payoneRefundTransfer->setAmount($refundTransfer->getAmount() * -1);
     $paymentPayoneEntity = $orderEntity->getSpyPaymentPayones()->getFirst();
     $payonePaymentTransfer = new PayonePaymentTransfer();
     $payonePaymentTransfer->fromArray($paymentPayoneEntity->toArray(), true);
     $payoneRefundTransfer->setPayment($payonePaymentTransfer);
     $payoneRefundTransfer->setUseCustomerdata(PayoneApiConstants::USE_CUSTOMER_DATA_YES);
     $narrativeText = $this->getFactory()->getConfig()->getNarrativeText($orderItems, $orderEntity, $data);
     $payoneRefundTransfer->setNarrativeText($narrativeText);
     $this->getFacade()->refundPayment($payoneRefundTransfer);
     return [];
 }