Passed
Pull Request — master (#18)
by Volodymyr
06:11
created

PaymentWriter::setCustomerNumberByIdSalesOrder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 2
dl 0
loc 6
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 string $customerNumber
45
     * @param int $idSalesOrder
46
     *
47
     * @return void
48
     */
49
    public function setCustomerNumberByIdSalesOrder(string $customerNumber, int $idSalesOrder): void
50
    {
51
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
52
        $afterPayPaymentEntity
53
            ->setInfoscoreCustomerNumber($customerNumber)
54
            ->save();
55
    }
56
57
    /**
58
     * @param int $authorizedTotal
59
     * @param int $idSalesOrder
60
     *
61
     * @return void
62
     */
63
    public function setAuthorizedTotalByIdSalesOrder(int $authorizedTotal, int $idSalesOrder): void
64
    {
65
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
66
        $afterPayPaymentEntity
67
            ->setAuthorizedTotal($authorizedTotal)
68
            ->save();
69
    }
70
71
    /**
72
     * @param int $amountToAdd
73
     * @param int $idSalesOrder
74
     *
75
     * @return void
76
     */
77
    public function increaseTotalCapturedAmountByIdSalesOrder(int $amountToAdd, int $idSalesOrder): void
78
    {
79
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
80
        $afterPayPaymentEntity
81
            ->setCapturedTotal($afterPayPaymentEntity->getCapturedTotal() + $amountToAdd)
82
            ->save();
83
    }
84
85
    /**
86
     * @param string $captureNumber
87
     * @param int $idSalesOrder
88
     *
89
     * @return void
90
     */
91
    public function updateExpensesCaptureNumber(string $captureNumber, int $idSalesOrder): void
92
    {
93
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
94
        $afterPayPaymentEntity
95
            ->setExpensesCaptureNumber($captureNumber)
96
            ->save();
97
    }
98
99
    /**
100
     * @param int $refundedAmount
101
     * @param int $idSalesOrder
102
     *
103
     * @return void
104
     */
105
    public function increaseRefundedTotalByIdSalesOrder(int $refundedAmount, int $idSalesOrder): void
106
    {
107
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
108
        $refundedTotal = $afterPayPaymentEntity->getRefundedTotal();
109
        $afterPayPaymentEntity
110
            ->setRefundedTotal($refundedTotal + $refundedAmount)
111
            ->save();
112
    }
113
114
    /**
115
     * @param string $captureNumber
116
     * @param int $idSalesOrderItem
117
     * @param int $idPayment
118
     *
119
     * @return void
120
     */
121
    public function setCaptureNumberByIdSalesOrderItemAndIdPayment(
122
        string $captureNumber,
123
        int $idSalesOrderItem,
124
        int $idPayment
125
    ): void {
126
        $afterPayPaymentOrderItemEntity = $this->getPaymentOrderItemEntityByIdSalesOrderItemAndIdPayment(
127
            $idSalesOrderItem,
128
            $idPayment
129
        );
130
        $afterPayPaymentOrderItemEntity
131
            ->setCaptureNumber($captureNumber)
132
            ->save();
133
    }
134
135
    /**
136
     * @param int $amountToAdd
137
     * @param int $idSalesOrder
138
     *
139
     * @return void
140
     */
141
    public function increaseTotalCancelledAmountByIdSalesOrder(int $amountToAdd, int $idSalesOrder): void
142
    {
143
        $afterPayPaymentEntity = $this->getPaymentEntityByIdSalesOrder($idSalesOrder);
144
        $afterPayPaymentEntity
145
            ->setCancelledTotal($afterPayPaymentEntity->getCancelledTotal() + $amountToAdd)
146
            ->save();
147
    }
148
149
    /**
150
     * @param int $idSalesOrder
151
     *
152
     * @return \Orm\Zed\AfterPay\Persistence\SpyPaymentAfterPay|null
153
     */
154
    protected function getPaymentEntityByIdSalesOrder(int $idSalesOrder): ?SpyPaymentAfterPay
155
    {
156
        $afterPayPaymentEntity = $this->afterPayQueryContainer
157
            ->queryPaymentByIdSalesOrder($idSalesOrder)
158
            ->findOne();
159
160
        return $afterPayPaymentEntity;
161
    }
162
163
    /**
164
     * @param int $idSalesOrderItem
165
     * @param int $idPayment
166
     *
167
     * @return \Orm\Zed\AfterPay\Persistence\SpyPaymentAfterPayOrderItem|null
168
     */
169
    protected function getPaymentOrderItemEntityByIdSalesOrderItemAndIdPayment(int $idSalesOrderItem, int $idPayment): ?SpyPaymentAfterPayOrderItem
170
    {
171
        $afterPayPaymentOrderItemEntity = $this->afterPayQueryContainer
172
            ->queryPaymentOrderItemByIdSalesOrderAndIdPayment($idSalesOrderItem, $idPayment)
173
            ->findOne();
174
175
        return $afterPayPaymentOrderItemEntity;
176
    }
177
}
178