HasBalance   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
eloc 18
dl 0
loc 57
rs 10
c 0
b 0
f 0
ccs 14
cts 14
cp 1

7 Methods

Rating   Name   Duplication   Size   Complexity  
A setBalanceEUR() 0 4 1
A isCHF() 0 3 1
A getBalanceCHF() 0 4 1
A setIsCHF() 0 3 1
A getBalanceEUR() 0 4 1
A getFormattedBalance() 0 3 1
A setBalanceCHF() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Traits;
6
7
use Application\Utility;
8
use Doctrine\ORM\Mapping as ORM;
9
use Ecodev\Felix\Api\Scalar\CHFType;
10
use Ecodev\Felix\Api\Scalar\EURType;
11
use GraphQL\Doctrine\Attribute as API;
12
use Money\Money;
13
14
trait HasBalance
15
{
16
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
17
    private bool $isCHF = true;
18
19
    #[ORM\Column(type: 'CHF')]
20
    private Money $balanceCHF;
21
22
    #[ORM\Column(type: 'EUR')]
23
    private Money $balanceEUR;
24
25
    /**
26
     * Set balance.
27
     */
28 20
    #[API\Input(type: CHFType::class)]
29
    public function setBalanceCHF(Money $balanceCHF): void
30
    {
31 20
        $this->balanceCHF = $balanceCHF;
32
    }
33
34 21
    #[API\Field(type: CHFType::class)]
35
    public function getBalanceCHF(): Money
36
    {
37 21
        return $this->balanceCHF;
38
    }
39
40
    /**
41
     * Set balance.
42
     */
43 20
    #[API\Input(type: EURType::class)]
44
    public function setBalanceEUR(Money $balanceEUR): void
45
    {
46 20
        $this->balanceEUR = $balanceEUR;
47
    }
48
49 21
    #[API\Field(type: EURType::class)]
50
    public function getBalanceEUR(): Money
51
    {
52 21
        return $this->balanceEUR;
53
    }
54
55 9
    public function isCHF(): bool
56
    {
57 9
        return $this->isCHF;
58
    }
59
60 14
    public function setIsCHF(bool $isCHF): void
61
    {
62 14
        $this->isCHF = $isCHF;
63
    }
64
65
    /**
66
     * Returns the non-zero balance formatted as string.
67
     */
68 11
    public function getFormattedBalance(): string
69
    {
70 11
        return Utility::getFormattedBalance($this);
71
    }
72
}
73