AbstractOrderItemConditionPlugin::check()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 9
rs 10
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\Communication\Plugin\Oms\Condition;
9
10
use Orm\Zed\Sales\Persistence\SpySalesOrderItem;
11
use Spryker\Zed\Oms\Dependency\Plugin\Condition\ConditionInterface;
12
13
abstract class AbstractOrderItemConditionPlugin implements ConditionInterface
14
{
15
    /**
16
     * @return string
17
     */
18
    abstract protected function getConditionalStatus();
19
20
    /**
21
     * @api
22
     *
23
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
24
     *
25
     * @return bool
26
     */
27
    public function check(SpySalesOrderItem $orderItem)
28
    {
29
        $payment = $this->getPaymentAmazonpayBySalesOrderItem($orderItem);
30
31
        if ($payment === null) {
32
            return true;
33
        }
34
35
        return $payment->getStatus() === $this->getConditionalStatus();
36
    }
37
38
    /**
39
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
40
     *
41
     * @return \Orm\Zed\AmazonPay\Persistence\SpyPaymentAmazonpay|null
42
     */
43
    protected function getPaymentAmazonpayBySalesOrderItem(SpySalesOrderItem $orderItem)
44
    {
45
        $lastPayment = $orderItem->getSpyPaymentAmazonpaySalesOrderItems()->getLast();
46
47
        if (!$lastPayment) {
48
            return null;
49
        }
50
51
        return $lastPayment->getSpyPaymentAmazonpay();
52
    }
53
}
54