Issues (1092)

Model/Plugins/PaymentInformationManagement.php (7 issues)

Labels
Severity
1
<?php
2
3
/**
4
 * PAYONE Magento 2 Connector is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * PAYONE Magento 2 Connector is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with PAYONE Magento 2 Connector. If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * PHP version 5
18
 *
19
 * @category  Payone
20
 * @package   Payone_Magento2_Plugin
21
 * @author    FATCHIP GmbH <[email protected]>
22
 * @copyright 2003 - 2018 Payone GmbH
23
 * @license   <http://www.gnu.org/licenses/> GNU Lesser General Public License
24
 * @link      http://www.payone.de
25
 */
26
27
namespace Payone\Core\Model\Plugins;
28
29
use Magento\Checkout\Model\PaymentInformationManagement as PaymentInformationManagementOrig;
0 ignored issues
show
The type Magento\Checkout\Model\P...ntInformationManagement was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
30
use Magento\Framework\Exception\CouldNotSaveException;
0 ignored issues
show
The type Magento\Framework\Exception\CouldNotSaveException was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
31
32
/**
33
 * Plugin for Magentos PaymentInformationManagement class
34
 */
35
class PaymentInformationManagement
36
{
37
    /**
38
     * PAYONE shop helper
39
     *
40
     * @var \Payone\Core\Helper\Shop
41
     */
42
    protected $shopHelper;
43
44
    /**
45
     * Cart management object
46
     *
47
     * @var \Magento\Quote\Api\CartManagementInterface
0 ignored issues
show
The type Magento\Quote\Api\CartManagementInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
48
     */
49
    protected $cartManagement;
50
51
    /**
52
     * Constructor
53
     *
54
     * @param \Payone\Core\Helper\Shop                   $shopHelper
55
     * @param \Magento\Quote\Api\CartManagementInterface $cartManagement
56
     */
57
    public function __construct(
58
        \Payone\Core\Helper\Shop $shopHelper,
59
        \Magento\Quote\Api\CartManagementInterface $cartManagement
60
    ) {
61
        $this->shopHelper = $shopHelper;
62
        $this->cartManagement = $cartManagement;
63
    }
64
65
    /**
66
     * Fixes problem in Magento 2.1 that the error message isnt sent through to the frontend
67
     *
68
     * @param  PaymentInformationManagementOrig              $subject
69
     * @param  callable                                      $proceed
70
     * @param  int                                           $cartId
71
     * @param  \Magento\Quote\Api\Data\PaymentInterface      $paymentMethod
72
     * @param  \Magento\Quote\Api\Data\AddressInterface|null $billingAddress
73
     * @return int
74
     * @throws CouldNotSaveException
75
     */
76
    public function aroundSavePaymentInformationAndPlaceOrder(
77
        PaymentInformationManagementOrig $subject,
78
        callable $proceed,
79
        $cartId,
80
        \Magento\Quote\Api\Data\PaymentInterface $paymentMethod,
0 ignored issues
show
The type Magento\Quote\Api\Data\PaymentInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
81
        ?\Magento\Quote\Api\Data\AddressInterface $billingAddress = null
0 ignored issues
show
The type Magento\Quote\Api\Data\AddressInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
82
    ) {
83
        if (version_compare($this->shopHelper->getMagentoVersion(), '2.1.0', '>=') &&
84
            version_compare($this->shopHelper->getMagentoVersion(), '2.2.0', '<') &&
85
            strpos($paymentMethod->getMethod(), 'payone_') !== false
86
        ) { // is Magento 2.1.X
87
            $subject->savePaymentInformation($cartId, $paymentMethod, $billingAddress);
88
            try {
89
                $orderId = $this->cartManagement->placeOrder($cartId);
90
            } catch (\Magento\Framework\Exception\LocalizedException $e) {
0 ignored issues
show
The type Magento\Framework\Exception\LocalizedException was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
91
                throw new CouldNotSaveException(__($e->getMessage()), $e);
0 ignored issues
show
The function __ was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

91
                throw new CouldNotSaveException(/** @scrutinizer ignore-call */ __($e->getMessage()), $e);
Loading history...
92
            } catch (\Exception $e) {
93
                throw new CouldNotSaveException(__('An error occurred on the server. Please try to place the order again.'), $e);
94
            }
95
            return $orderId;
96
        }
97
        // execute standard functionality
98
        return $proceed($cartId, $paymentMethod, $billingAddress);
99
    }
100
}
101