12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Paypal\Model\Method\Checks;
- use Magento\Payment\Model\MethodInterface;
- use Magento\Payment\Model\Checks\SpecificationInterface;
- use Magento\Paypal\Model\Config;
- use Magento\Paypal\Model\Billing\AgreementFactory;
- use Magento\Quote\Model\Quote;
- /**
- * Plugin for \Magento\Payment\Model\Checks\Composite
- */
- class SpecificationPlugin
- {
- /**
- * @var AgreementFactory
- */
- private $agreementFactory;
- /**
- * @param AgreementFactory $agreementFactory
- */
- public function __construct(AgreementFactory $agreementFactory)
- {
- $this->agreementFactory = $agreementFactory;
- }
- /**
- * Override check for Billing Agreements
- *
- * @param SpecificationInterface $specification
- * @param bool $result
- * @param MethodInterface $paymentMethod
- * @param Quote $quote
- * @return bool
- *
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function afterIsApplicable(
- SpecificationInterface $specification,
- $result,
- MethodInterface $paymentMethod,
- Quote $quote
- ) {
- if (!$result) {
- return false;
- }
- if ($paymentMethod->getCode() == Config::METHOD_BILLING_AGREEMENT) {
- if ($quote->getCustomerId()) {
- $availableBA = $this->agreementFactory->create()->getAvailableCustomerBillingAgreements(
- $quote->getCustomerId()
- );
- return count($availableBA) > 0;
- }
- return false;
- }
- return true;
- }
- }
|