/** * @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 []; }
/** * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer * * @return \Generated\Shared\Transfer\PayonePaymentTransfer */ protected function getPayment(OrderTransfer $orderTransfer) { $payment = $this->queryContainer->getPaymentByOrderId($orderTransfer->getIdSalesOrder())->findOne(); $paymentDetail = $payment->getSpyPaymentPayoneDetail(); $paymentDetailTransfer = new PaymentDetailTransfer(); $paymentDetailTransfer->fromArray($paymentDetail->toArray(), true); $paymentTransfer = new PayonePaymentTransfer(); $paymentTransfer->fromArray($payment->toArray(), true); $paymentTransfer->setPaymentDetail($paymentDetailTransfer); return $paymentTransfer; }