AuthorizeSaver::save()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 9
rs 10
cc 1
nc 1
nop 2
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\ComputopApiAuthorizeResponseTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...thorizeResponseTransfer 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 AuthorizeSaver extends AbstractSaver
16
{
17
    use TransactionTrait;
18
19
    public const METHOD = 'AUTHORIZE';
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\ComputopApiAuthorizeResponseTransfer $responseTransfer
40
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
41
     *
42
     * @return void
43
     */
44
    protected function saveComputopDetails(ComputopApiAuthorizeResponseTransfer $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->getOmsStatusAuthorized());
64
                $item->save();
65
            }
66
        }
67
68
        $paymentEntityDetails = $paymentEntity->getSpyPaymentComputopDetail();
69
        $paymentEntityDetails->setRefNr($responseTransfer->getRefNr());
70
        $paymentEntityDetails->save();
71
    }
72
}
73