Passed
Branch feature/ECO-965-refactoring (c9cdee)
by Andrey
06:34 queued 01:51
created

CancelOrderTransaction::updatePaymentEntity()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 21
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 11
nc 6
nop 1
dl 0
loc 21
rs 8.7624
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\AmazonPay\Business\Payment\Handler\Transaction;
9
10
use Generated\Shared\Transfer\AmazonpayCallTransfer;
11
use SprykerEco\Shared\AmazonPay\AmazonPayConfig;
12
13
class CancelOrderTransaction extends AbstractAmazonpayTransaction
14
{
15
    /**
16
     * @param \Generated\Shared\Transfer\AmazonpayCallTransfer $amazonPayCallTransfer
17
     *
18
     * @return \Generated\Shared\Transfer\AmazonpayCallTransfer
19
     */
20
    public function execute(AmazonpayCallTransfer $amazonPayCallTransfer)
21
    {
22
        $amazonPayCallTransfer = parent::execute($amazonPayCallTransfer);
23
24
        $this->updatePaymentEntity($amazonPayCallTransfer);
25
26
        return $amazonPayCallTransfer;
27
    }
28
29
    /**
30
     * @param \Generated\Shared\Transfer\AmazonpayCallTransfer $amazonPayCallTransfer
31
     *
32
     * @return void
33
     */
34
    protected function updatePaymentEntity(AmazonpayCallTransfer $amazonPayCallTransfer)
35
    {
36
        if (!$this->paymentEntity) {
37
            return;
38
        }
39
40
        $isPartialProcessing = $this->isPartialProcessing($this->paymentEntity, $amazonPayCallTransfer);
41
42
        if (!$this->apiResponse->getResponseHeader()->getIsSuccess()) {
43
            return;
44
        }
45
46
        if ($isPartialProcessing) {
47
            $this->paymentEntity = $this->paymentProcessor->duplicatePaymentEntity($this->paymentEntity);
48
        }
49
50
        $this->paymentEntity->setStatus(AmazonPayConfig::STATUS_CANCELLED);
51
        $this->paymentEntity->save();
52
53
        if ($isPartialProcessing) {
54
            $this->paymentProcessor->assignAmazonpayPaymentToItems($this->paymentEntity, $amazonPayCallTransfer);
55
        }
56
    }
57
58
    /**
59
     * @return bool
60
     */
61
    protected function allowPartialProcessing()
62
    {
63
        return false;
64
    }
65
}
66