123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Paypal\Plugin;
- use Magento\Framework\Exception\LocalizedException;
- use Magento\Paypal\Model\Adminhtml\Express;
- use Magento\Sales\Api\Data\OrderInterface;
- use Magento\Sales\Model\Order\Validation\CanInvoice;
- /**
- * Decorates order canInvoice validator method for PayPal Express payments
- * when payment action set to "Order".
- */
- class ValidatorCanInvoice
- {
- /**
- * @var Express
- */
- private $express;
- /**
- * Initialize dependencies.
- *
- * @param Express $express
- */
- public function __construct(Express $express)
- {
- $this->express = $express;
- }
- /**
- * Checks a possibility to invoice of PayPal Express payments when payment action is "order".
- *
- * @param CanInvoice $subject
- * @param array $result
- * @param OrderInterface $order
- * @return array
- * @throws LocalizedException
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function afterValidate(CanInvoice $subject, array $result, OrderInterface $order): array
- {
- if ($this->express->isOrderAuthorizationAllowed($order->getPayment())) {
- $result[] = __('An invoice cannot be created when none of authorization transactions available.');
- }
- return $result;
- }
- }
|