BillNegation   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 23
ccs 0
cts 13
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A events() 0 7 1
A calculateSum() 0 6 2
1
<?php
2
/**
3
 * Finance module for HiPanel
4
 *
5
 * @link      https://github.com/hiqdev/hipanel-module-finance
6
 * @package   hipanel-module-finance
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2015-2019, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\modules\finance\behaviors;
12
13
use yii\behaviors\AttributeBehavior;
14
use yii\db\ActiveRecord;
15
16
class BillNegation extends AttributeBehavior
17
{
18
    public $sumAttribute = 'sum';
19
20
    public $typeAttribute = 'type';
21
22
    public $negativeTypes = [];
23
24
    public function events()
25
    {
26
        return [
27
            ActiveRecord::EVENT_BEFORE_INSERT => 'calculateSum',
28
            ActiveRecord::EVENT_BEFORE_UPDATE => 'calculateSum',
29
        ];
30
    }
31
32
    public function calculateSum()
33
    {
34
        if (in_array($this->owner->{$this->typeAttribute}, $this->negativeTypes, true)) {
35
            $this->owner->{$this->sumAttribute} = $this->owner->{$this->sumAttribute} * -1;
36
        }
37
    }
38
}
39