Completed
Push — master ( 8f260e...cc8332 )
by Oleksandr
17s queued 14s
created

findPaymentPayoneOrderItemByFilter()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 11
nc 2
nop 1
dl 0
loc 18
rs 9.9
c 1
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\Zed\Payone\Persistence;
9
10
use Generated\Shared\Transfer\PaymentPayoneOrderItemTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...PayoneOrderItemTransfer 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 Generated\Shared\Transfer\PayoneOrderItemFilterTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...OrderItemFilterTransfer 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...
12
use Orm\Zed\Payone\Persistence\SpyPaymentPayoneOrderItemQuery;
0 ignored issues
show
Bug introduced by
The type Orm\Zed\Payone\Persisten...entPayoneOrderItemQuery 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...
13
use Spryker\Zed\Kernel\Persistence\AbstractRepository;
14
15
/**
16
 * @method \SprykerEco\Zed\Payone\Persistence\PayonePersistenceFactory getFactory()
17
 */
18
class PayoneRepository extends AbstractRepository implements PayoneRepositoryInterface
19
{
20
    /**
21
     * @param \Generated\Shared\Transfer\PayoneOrderItemFilterTransfer $payoneOrderItemFilerTransfer
22
     *
23
     * @return \Generated\Shared\Transfer\PaymentPayoneOrderItemTransfer[]
24
     */
25
    public function findPaymentPayoneOrderItemByFilter(PayoneOrderItemFilterTransfer $payoneOrderItemFilerTransfer): array
26
    {
27
        $paymentPayoneOrderItemQuery = $this->getFactory()->createPaymentPayoneOrderItemQuery();
28
        $paymentPayoneOrderItemQuery = $this->setPayoneOrderItemFilters(
29
            $paymentPayoneOrderItemQuery,
30
            $payoneOrderItemFilerTransfer
31
        );
32
33
        $paymentPayoneOrderItemEntities = $paymentPayoneOrderItemQuery->find();
34
        $paymentPayoneOrderItemTransfers = [];
35
36
        foreach ($paymentPayoneOrderItemEntities as $paymentPayoneOrderItemEntity) {
37
            $paymentPayoneOrderItemTransfers[] = $this->getFactory()
38
                ->createPayonePersistenceMapper()
39
                ->mapEntityToPaymentPayoneOrderItemTransfer($paymentPayoneOrderItemEntity, new PaymentPayoneOrderItemTransfer());
40
        }
41
42
        return $paymentPayoneOrderItemTransfers;
43
    }
44
45
    /**
46
     * @param \Orm\Zed\Payone\Persistence\SpyPaymentPayoneOrderItemQuery $paymentPayoneOrderItemQuery
47
     * @param \Generated\Shared\Transfer\PayoneOrderItemFilterTransfer $payoneOrderItemFilerTransfer
48
     *
49
     * @return \Orm\Zed\Payone\Persistence\SpyPaymentPayoneOrderItemQuery
50
     */
51
    protected function setPayoneOrderItemFilters(
52
        SpyPaymentPayoneOrderItemQuery $paymentPayoneOrderItemQuery,
53
        PayoneOrderItemFilterTransfer $payoneOrderItemFilerTransfer
54
    ): SpyPaymentPayoneOrderItemQuery {
55
        if ($payoneOrderItemFilerTransfer->getIdSalesOrder()) {
56
            $paymentPayoneOrderItemQuery
57
                ->useSpyPaymentPayoneQuery()
58
                    ->filterByFkSalesOrder($payoneOrderItemFilerTransfer->getIdSalesOrder())
59
                ->endUse();
60
        }
61
62
        if (count($payoneOrderItemFilerTransfer->getSalesOrderItemIds())) {
63
            $paymentPayoneOrderItemQuery->filterByFkSalesOrderItem_In(
64
                $payoneOrderItemFilerTransfer->getSalesOrderItemIds()
65
            );
66
        }
67
68
        return $paymentPayoneOrderItemQuery;
69
    }
70
}
71