12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Model\Order\Payment\State;
- use Magento\Framework\App\ObjectManager;
- use Magento\Sales\Api\Data\OrderInterface;
- use Magento\Sales\Api\Data\OrderPaymentInterface;
- use Magento\Sales\Model\Order;
- use Magento\Sales\Model\Order\StatusResolver;
- class CaptureCommand implements CommandInterface
- {
- /**
- * @var StatusResolver
- */
- private $statusResolver;
- /**
- * @param StatusResolver|null $statusResolver
- */
- public function __construct(StatusResolver $statusResolver = null)
- {
- $this->statusResolver = $statusResolver
- ? : ObjectManager::getInstance()->get(StatusResolver::class);
- }
- /**
- * @param OrderPaymentInterface $payment
- * @param string|float $amount
- * @param OrderInterface $order
- * @return \Magento\Framework\Phrase
- */
- public function execute(OrderPaymentInterface $payment, $amount, OrderInterface $order)
- {
- $state = Order::STATE_PROCESSING;
- $status = null;
- $message = 'Captured amount of %1 online.';
- if ($payment->getIsTransactionPending()) {
- $state = Order::STATE_PAYMENT_REVIEW;
- $message = 'An amount of %1 will be captured after being approved at the payment gateway.';
- }
- if ($payment->getIsFraudDetected()) {
- $state = Order::STATE_PAYMENT_REVIEW;
- $status = Order::STATUS_FRAUD;
- $message .= ' Order is suspended as its capturing amount %1 is suspected to be fraudulent.';
- }
- if (!isset($status)) {
- $status = $this->statusResolver->getOrderStatusByState($order, $state);
- }
- $order->setState($state);
- $order->setStatus($status);
- return __($message, $order->getBaseCurrency()->formatTxt($amount));
- }
- /**
- * @deprecated 100.1.9 Replaced by a StatusResolver class call.
- *
- * @param Order $order
- * @param string $status
- * @param string $state
- * @return void
- */
- protected function setOrderStateAndStatus(Order $order, $status, $state)
- {
- if (!$status) {
- $status = $order->getConfig()->getStateDefaultStatus($state);
- }
- $order->setState($state)->setStatus($status);
- }
- }
|