ReverseSaver   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
eloc 20
c 1
b 0
f 0
dl 0
loc 50
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A save() 0 9 1
A saveComputopDetails() 0 21 5
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\Computop\Business\Payment\Handler\Saver;
9
10
use Generated\Shared\Transfer\ComputopApiReverseResponseTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...ReverseResponseTransfer 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\OrderTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\OrderTransfer 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 Spryker\Shared\Kernel\Transfer\TransferInterface;
13
use Spryker\Zed\Kernel\Persistence\EntityManager\TransactionTrait;
14
15
class ReverseSaver extends AbstractSaver
16
{
17
    use TransactionTrait;
18
19
    public const METHOD = 'REVERSE';
20
21
    /**
22
     * @param \Spryker\Shared\Kernel\Transfer\TransferInterface $responseTransfer
23
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
24
     *
25
     * @return \Spryker\Shared\Kernel\Transfer\TransferInterface
26
     */
27
    public function save(TransferInterface $responseTransfer, OrderTransfer $orderTransfer)
28
    {
29
        $this->getTransactionHandler()->handleTransaction(
30
            function () use ($responseTransfer, $orderTransfer) {
31
                $this->saveComputopDetails($responseTransfer, $orderTransfer);
32
            }
33
        );
34
35
        return $responseTransfer;
36
    }
37
38
    /**
39
     * @param \Generated\Shared\Transfer\ComputopApiReverseResponseTransfer $responseTransfer
40
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
41
     *
42
     * @return void
43
     */
44
    public function saveComputopDetails(ComputopApiReverseResponseTransfer $responseTransfer, OrderTransfer $orderTransfer)
45
    {
46
        $this->logHeader($responseTransfer->getHeader(), self::METHOD);
47
48
        if (!$responseTransfer->getHeader()->getIsSuccess()) {
49
            return;
50
        }
51
52
        /** @var \Orm\Zed\Computop\Persistence\SpyPaymentComputop $paymentEntity */
53
        $paymentEntity = $this
54
            ->queryContainer
55
            ->queryPaymentByPayId($responseTransfer->getHeader()->getPayId())
56
            ->findOne();
57
58
        foreach ($orderTransfer->getItems() as $selectedItem) {
59
            foreach ($paymentEntity->getSpyPaymentComputopOrderItems() as $item) {
60
                if ($item->getFkSalesOrderItem() !== $selectedItem->getIdSalesOrderItem()) {
61
                    continue;
62
                }
63
                $item->setStatus($this->config->getOmsStatusCancelled());
64
                $item->save();
65
            }
66
        }
67
    }
68
}
69