Passed
Push — feature/eco-574/eco-2266-check... ( efd21d )
by Aleksey
08:13
created

getPaymentOrderItemEntityByIdSalesOrderItemAndIdPayment()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 2
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\Afterpay\Business\Payment;
9
10
use Orm\Zed\Afterpay\Persistence\SpyPaymentAfterpay;
0 ignored issues
show
Bug introduced by
The type Orm\Zed\Afterpay\Persistence\SpyPaymentAfterpay 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 Orm\Zed\Afterpay\Persistence\SpyPaymentAfterpayOrderItem;
0 ignored issues
show
Bug introduced by
The type Orm\Zed\Afterpay\Persist...aymentAfterpayOrderItem 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 SprykerEco\Zed\Afterpay\Persistence\AfterpayQueryContainerInterface;
13
14
class PaymentWriter implements PaymentWriterInterface
15
{
16
    /**
17
     * @var \SprykerEco\Zed\Afterpay\Persistence\AfterpayQueryContainerInterface
18
     */
19
    protected $afterpayQueryContainer;
20
21
    /**
22
     * @param \SprykerEco\Zed\Afterpay\Persistence\AfterpayQueryContainerInterface $afterpayQueryContainer
23
     */
24
    public function __construct(AfterpayQueryContainerInterface $afterpayQueryContainer)
25
    {
26
        $this->afterpayQueryContainer = $afterpayQueryContainer;
27
    }
28
29
    /**
30
     * @param string $idReservation
31
     * @param int $idSalesOrder
32
     *
33
     * @return void
34
     */
35
    public function setIdReservationByIdSalesOrder(string $idReservation, int $idSalesOrder): void
36
    {
37
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
38
        $afterpayPaymentEntity
39
            ->setIdReservation($idReservation)
40
            ->save();
41
    }
42
43
    /**
44
     * @param int $authorizedTotal
45
     * @param int $idSalesOrder
46
     *
47
     * @return void
48
     */
49
    public function setAuthorizedTotalByIdSalesOrder(int $authorizedTotal, int $idSalesOrder): void
50
    {
51
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
52
        $afterpayPaymentEntity
53
            ->setAuthorizedTotal($authorizedTotal)
54
            ->save();
55
    }
56
57
    /**
58
     * @param int $amountToAdd
59
     * @param int $idSalesOrder
60
     *
61
     * @return void
62
     */
63
    public function increaseTotalCapturedAmountByIdSalesOrder(int $amountToAdd, int $idSalesOrder): void
64
    {
65
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
66
        $afterpayPaymentEntity
67
            ->setCapturedTotal($afterpayPaymentEntity->getCapturedTotal() + $amountToAdd)
68
            ->save();
69
    }
70
71
    /**
72
     * @param string $captureNumber
73
     * @param int $idSalesOrder
74
     *
75
     * @return void
76
     */
77
    public function updateExpensesCaptureNumber(string $captureNumber, int $idSalesOrder): void
78
    {
79
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
80
        $afterpayPaymentEntity
81
            ->setExpensesCaptureNumber($captureNumber)
82
            ->save();
83
    }
84
85
    /**
86
     * @param int $refundedAmount
87
     * @param int $idSalesOrder
88
     *
89
     * @return void
90
     */
91
    public function increaseRefundedTotalByIdSalesOrder(int $refundedAmount, int $idSalesOrder): void
92
    {
93
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
94
        $refundedTotal = $afterpayPaymentEntity->getRefundedTotal();
95
        $afterpayPaymentEntity
96
            ->setRefundedTotal($refundedTotal + $refundedAmount)
97
            ->save();
98
    }
99
100
    /**
101
     * @param int $captureNumber
102
     * @param int $idSalesOrderItem
103
     * @param int $idPayment
104
     *
105
     * @return void
106
     */
107
    public function setCaptureNumberByIdSalesOrderItemAndIdPayment(
108
        int $captureNumber,
109
        int $idSalesOrderItem,
110
        int $idPayment
111
    ): void {
112
        $afterpayPaymentOrderItemEntity = $this->getPaymentOrderItemEntityByIdSalesOrderItemAndIdPayment(
113
            $idSalesOrderItem,
114
            $idPayment
115
        );
116
        $afterpayPaymentOrderItemEntity
117
            ->setCaptureNumber($captureNumber)
118
            ->save();
119
    }
120
121
    /**
122
     * @param int $amountToAdd
123
     * @param int $idSalesOrder
124
     *
125
     * @return void
126
     */
127
    public function increaseTotalCancelledAmountByIdSalesOrder(int $amountToAdd, int $idSalesOrder): void
128
    {
129
        $afterpayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
130
        $afterpayPaymentEntity
131
            ->setCancelledTotal($afterpayPaymentEntity->getCancelledTotal() + $amountToAdd)
132
            ->save();
133
    }
134
135
    /**
136
     * @param int $idSalesOrder
137
     *
138
     * @return \Orm\Zed\Afterpay\Persistence\SpyPaymentAfterpay|null
139
     */
140
    protected function getPaymentEntityByIdSalesOrder(int $idSalesOrder): ?SpyPaymentAfterpay
141
    {
142
        $afterpayPaymentEntity = $this->afterpayQueryContainer
143
            ->queryPaymentByIdSalesOrder($idSalesOrder)
144
            ->findOne();
145
146
        return $afterpayPaymentEntity;
147
    }
148
149
    /**
150
     * @param int $idSalesOrderItem
151
     * @param int $idPayment
152
     *
153
     * @return \Orm\Zed\Afterpay\Persistence\SpyPaymentAfterpayOrderItem
154
     */
155
    protected function getPaymentOrderItemEntityByIdSalesOrderItemAndIdPayment(int $idSalesOrderItem, int $idPayment): ?SpyPaymentAfterpayOrderItem
156
    {
157
        $afterpayPaymentOrderItemEntity = $this->afterpayQueryContainer
158
            ->queryPaymentOrderItemByIdSalesOrderAndIdPayment($idSalesOrderItem, $idPayment)
159
            ->findOne();
160
161
        return $afterpayPaymentOrderItemEntity;
162
    }
163
}
164