![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales-rule/Model/Coupon/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\SalesRule\Model\Coupon; use Magento\Sales\Api\Data\OrderInterface; use Magento\SalesRule\Model\Coupon\Usage\Processor as CouponUsageProcessor; use Magento\SalesRule\Model\Coupon\Usage\UpdateInfo; use Magento\SalesRule\Model\Coupon\Usage\UpdateInfoFactory; /** * Updates the coupon usages */ class UpdateCouponUsages { /** * @var CouponUsageProcessor */ private $couponUsageProcessor; /** * @var UpdateInfoFactory */ private $updateInfoFactory; /** * @param CouponUsageProcessor $couponUsageProcessor * @param UpdateInfoFactory $updateInfoFactory */ public function __construct( CouponUsageProcessor $couponUsageProcessor, UpdateInfoFactory $updateInfoFactory ) { $this->couponUsageProcessor = $couponUsageProcessor; $this->updateInfoFactory = $updateInfoFactory; } /** * Executes the current command * * @param OrderInterface $subject * @param bool $increment * @return OrderInterface */ public function execute(OrderInterface $subject, bool $increment): OrderInterface { if (!$subject || !$subject->getAppliedRuleIds()) { return $subject; } /** @var UpdateInfo $updateInfo */ $updateInfo = $this->updateInfoFactory->create(); $updateInfo->setAppliedRuleIds(explode(',', $subject->getAppliedRuleIds())); $updateInfo->setCouponCode((string)$subject->getCouponCode()); $updateInfo->setCustomerId((int)$subject->getCustomerId()); $updateInfo->setIsIncrement($increment); if ($subject->getOrigData('coupon_code') !== null) { $updateInfo->setCouponAlreadyApplied(true); } $this->couponUsageProcessor->process($updateInfo); return $subject; } }