Passed
Pull Request — master (#12)
by Volodymyr
09:40 queued 04:32
created

RatepaySummaryWidget::getTemplate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
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 NAME = 'RatepaySummaryWidget';
25
    protected const TEMPLATE = '@Ratepay/partial/ratepay-summary-widget.twig';
26
27
    protected const PAYMENT_TRANSFER_MAP = [
28
        RatepayConfig::INVOICE => 'getRatepayInvoice',
29
        RatepayConfig::ELV => 'getRatepayElv',
30
        RatepayConfig::INSTALLMENT => 'getRatepayInstallment',
31
        RatepayConfig::PREPAYMENT => 'getRatepayPrepayment',
32
    ];
33
34
    /**
35
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
36
     */
37
    public function __construct(QuoteTransfer $quoteTransfer)
38
    {
39
        $this->addParameter(static::PARAMETER_RATEPAY_PAYMENT_TRANSFER, $this->getRatepayPaymentTransfer($quoteTransfer));
40
        $this->addParameter(static::PARAMETER_VIEW_NAME, $this->getViewName($quoteTransfer));
41
        $this->addParameter(static::PARAMETER_QUOTE_TRANSFER, $quoteTransfer);
42
    }
43
44
    /**
45
     * @return string
46
     */
47
    public static function getName(): string
48
    {
49
        return static::NAME;
50
    }
51
52
    /**
53
     * @return string
54
     */
55
    public static function getTemplate(): string
56
    {
57
        return static::TEMPLATE;
58
    }
59
60
    /**
61
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
62
     *
63
     * @return \Spryker\Shared\Kernel\Transfer\AbstractTransfer|null
64
     */
65
    protected function getRatepayPaymentTransfer(QuoteTransfer $quoteTransfer): ?AbstractTransfer
66
    {
67
        $paymentTransfer = $quoteTransfer->getPayment();
68
69
        if (!isset(static::PAYMENT_TRANSFER_MAP[$paymentTransfer->getPaymentMethod()])) {
70
            return null;
71
        }
72
73
        $getterName = static::PAYMENT_TRANSFER_MAP[$paymentTransfer->getPaymentMethod()];
74
75
        if (!method_exists($paymentTransfer, $getterName)) {
76
            return null;
77
        }
78
79
        return $quoteTransfer->getPayment()->$getterName();
80
    }
81
82
    /**
83
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
84
     *
85
     * @return string
86
     */
87
    protected function getViewName(QuoteTransfer $quoteTransfer): string
88
    {
89
        return strtolower($quoteTransfer->getPayment()->getPaymentMethod());
90
    }
91
}
92