BillNegation::events()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 7
ccs 0
cts 7
cp 0
rs 10
cc 1
nc 1
nop 0
crap 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