Code Duplication    Length = 39-41 lines in 2 locations

src/SprykerEco/Zed/AmazonPay/Communication/Plugin/Oms/Condition/AbstractOrderItemConditionPlugin.php 1 location

@@ 13-53 (lines=41) @@
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
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
22
     *
23
     * @return bool
24
     */
25
    public function check(SpySalesOrderItem $orderItem)
26
    {
27
        $payment = $this->getPaymentAmazonpayBySalesOrderItem($orderItem);
28
29
        if ($payment === null) {
30
            return true;
31
        }
32
33
        return $payment->getStatus() === $this->getConditionalStatus();
34
    }
35
36
    /**
37
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
38
     *
39
     * @return \Orm\Zed\AmazonPay\Persistence\SpyPaymentAmazonpay|null
40
     */
41
    protected function getPaymentAmazonpayBySalesOrderItem(SpySalesOrderItem $orderItem)
42
    {
43
        $lastPayment = $orderItem->getSpyPaymentAmazonpaySalesOrderItems()->getLast();
44
45
        if (!$lastPayment) {
46
            return null;
47
        }
48
49
        return $lastPayment->getSpyPaymentAmazonpay();
50
    }
51
}
52

src/SprykerEco/Zed/AmazonPay/Communication/Plugin/Oms/Condition/AbstractByOrderItemConditionPlugin.php 1 location

@@ 13-51 (lines=39) @@
10
use Orm\Zed\Sales\Persistence\SpySalesOrderItem;
11
use Spryker\Zed\Oms\Dependency\Plugin\Condition\ConditionInterface;
12
13
abstract class AbstractByOrderItemConditionPlugin implements ConditionInterface
14
{
15
    /**
16
     * @return string
17
     */
18
    abstract protected function getPaymentStatus();
19
20
    /**
21
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
22
     *
23
     * @return bool
24
     */
25
    public function check(SpySalesOrderItem $orderItem)
26
    {
27
        $payment = $this->getPaymentAmazonpayBySalesOrderItem($orderItem);
28
29
        if ($payment === null) {
30
            return true;
31
        }
32
33
        return $payment->getStatus() === $this->getPaymentStatus();
34
    }
35
36
    /**
37
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
38
     *
39
     * @return \Orm\Zed\AmazonPay\Persistence\SpyPaymentAmazonpay|null
40
     */
41
    protected function getPaymentAmazonpayBySalesOrderItem(SpySalesOrderItem $orderItem)
42
    {
43
        $lastPayment = $orderItem->getSpyPaymentAmazonpaySalesOrderItems()->getLast();
44
45
        if (!$lastPayment) {
46
            return null;
47
        }
48
49
        return $lastPayment->getSpyPaymentAmazonpay();
50
    }
51
}
52