ChargeDerivative   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
c 1
b 0
f 0
dl 0
loc 23
ccs 0
cts 19
cp 0
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 21 3
1
<?php
2
/**
3
 * PHP Billing Library
4
 *
5
 * @link      https://github.com/hiqdev/php-billing
6
 * @package   php-billing
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2017-2020, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hiqdev\php\billing\charge\derivative;
12
13
use hiqdev\php\billing\charge\Charge;
14
use hiqdev\php\billing\charge\ChargeInterface;
15
16
/**
17
 * Class ChargeDerivative
18
 *
19
 * @author Dmytro Naumenko <[email protected]>
20
 */
21
final class ChargeDerivative implements ChargeDerivativeInterface
22
{
23
    public function __invoke(ChargeInterface $originalCharge, ChargeDerivativeQueryInterface $query): ChargeInterface
24
    {
25
        $tempCharge = new Charge(
26
            $query->get('id', $originalCharge->getId()),
27
            $query->get('type', $originalCharge->getType()),
28
            $query->get('target', $originalCharge->getTarget()),
29
            $query->get('action', $originalCharge->getAction()),
30
            $query->get('price', $originalCharge->getPrice()),
31
            $query->get('usage', $originalCharge->getUsage()),
32
            $query->get('sum', $originalCharge->getSum()),
33
            $query->get('bill', $originalCharge->getBill())
34
        );
35
36
        if ($query->get('comment', $originalCharge->getComment()) !== null) {
37
            $tempCharge->setComment($query->get('comment', $originalCharge->getComment()));
38
        }
39
        if ($query->get('parent', $originalCharge->getParent()) !== null) {
40
            $tempCharge->setParent($query->get('parent', $originalCharge->getParent()));
41
        }
42
43
        return $tempCharge;
44
    }
45
}
46