Passed
Pull Request — master (#12)
by Volodymyr
05:25 queued 01:06
created

RatepaySummaryWidget::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\Ratepay\Widget;
9
10
use Generated\Shared\Transfer\QuoteTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\QuoteTransfer 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...
11
use Spryker\Shared\Kernel\Transfer\AbstractTransfer;
12
use Spryker\Yves\Kernel\Widget\AbstractWidget;
13
use SprykerEco\Shared\Ratepay\RatepayConfig;
14
15
/**
16
 * @method \SprykerEco\Yves\Ratepay\RatepayFactory getFactory()
17
 */
18
class RatepaySummaryWidget extends AbstractWidget
19
{
20
    protected const PARAMETER_RATEPAY_PAYMENT_TRANSFER = 'ratepayPaymentTransfer';
21
    protected const PARAMETER_QUOTE_TRANSFER = 'quoteTransfer';
22
    protected const PARAMETER_VIEW_NAME = 'view';
23
24
    protected const PAYMENT_TRANSFER_MAP = [
25
        RatepayConfig::INVOICE => 'getRatepayInvoice',
26
        RatepayConfig::ELV => 'getRatepayElv',
27
        RatepayConfig::INSTALLMENT => 'getRatepayInstallment',
28
        RatepayConfig::PREPAYMENT => 'getRatepayPrepayment'
29
    ];
30
31
    /**
32
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
33
     */
34
    public function __construct(QuoteTransfer $quoteTransfer)
35
    {
36
        $this->addParameter(static::PARAMETER_RATEPAY_PAYMENT_TRANSFER, $this->getRatepayPaymentTransfer($quoteTransfer));
37
        $this->addParameter(static::PARAMETER_VIEW_NAME, $this->getViewName($quoteTransfer));
38
        $this->addParameter(static::PARAMETER_QUOTE_TRANSFER, $quoteTransfer);
39
    }
40
41
    /**
42
     * @return string
43
     */
44
    public static function getName(): string
45
    {
46
        return 'RatepaySummaryWidget';
47
    }
48
49
    /**
50
     * @return string
51
     */
52
    public static function getTemplate(): string
53
    {
54
        return '@Ratepay/partial/ratepay-summary-widget.twig';
55
    }
56
57
    /**
58
     * @param QuoteTransfer $quoteTransfer
59
     *
60
     * @return AbstractTransfer|null
61
     */
62
    protected function getRatepayPaymentTransfer(QuoteTransfer $quoteTransfer): ?AbstractTransfer
63
    {
64
        $paymentTransfer = $quoteTransfer->getPayment();
65
66
        if (!isset(static::PAYMENT_TRANSFER_MAP[$paymentTransfer->getPaymentMethod()])) {
67
            return null;
68
        }
69
70
        $getterName = static::PAYMENT_TRANSFER_MAP[$paymentTransfer->getPaymentMethod()];
71
72
        if (!method_exists($paymentTransfer, $getterName)) {
73
            return null;
74
        }
75
76
        return $quoteTransfer->getPayment()->$getterName();
77
    }
78
79
    /**
80
     * @param QuoteTransfer $quoteTransfer
81
     *
82
     * @return string
83
     */
84
    protected function getViewName(QuoteTransfer $quoteTransfer): string
85
    {
86
        return strtolower($quoteTransfer->getPayment()->getPaymentMethod());
87
    }
88
}
89