Completed
Push — master ( 7ec96a...9f5631 )
by Dmitry
15:28 queued 13:03
created

PlanGridView   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 4
dl 0
loc 64
ccs 0
cts 51
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A columns() 0 52 1
A prepareBadges() 0 8 2
1
<?php
2
3
namespace hipanel\modules\finance\grid;
4
5
use hipanel\grid\MainColumn;
6
use hipanel\grid\RefColumn;
7
use hipanel\helpers\Url;
8
use hipanel\modules\client\grid\ClientColumn;
9
use hipanel\modules\finance\menus\PlanActionsMenu;
10
use hiqdev\yii2\menus\grid\MenuColumn;
11
use yii\helpers\Html;
12
use Yii;
13
14
class PlanGridView extends \hipanel\grid\BoxedGridView
15
{
16
    public function columns()
17
    {
18
        return array_merge(parent::columns(), [
19
            'client' => [
20
                'class' => ClientColumn::class,
21
            ],
22
            'name' => [
23
                'attribute' => 'name',
24
                'filterAttribute' => 'name_ilike',
25
                'filterOptions' => ['class' => 'narrow-filter'],
26
                'class' => MainColumn::class,
27
                'note' => 'note',
28
                'noteOptions' => [
29
                    'url' => Url::to(['@plan/set-note']),
30
                ],
31
                'badges' => function ($model) {
32
                    return $this->prepareBadges($model);
33
                },
34
            ],
35
            'simple_name' => [
36
                'attribute' => 'name',
37
                'format' => 'html',
38
                'value' => function ($model) {
39
                    return sprintf('%s %s', $model->name, $this->prepareBadges($model));
40
                },
41
            ],
42
            'state' => [
43
                'attribute' => 'state',
44
                'class' => RefColumn::class,
45
                'filterAttribute' => 'state',
46
                'filterOptions' => ['class' => 'narrow-filter'],
47
                'format' => 'html',
48
                'gtype' => 'state,tariff',
49
            ],
50
            'type' => [
51
                'attribute' => 'type',
52
                'class' => RefColumn::class,
53
                'filterAttribute' => 'type',
54
                'filterOptions' => ['class' => 'narrow-filter'],
55
                'format' => 'html',
56
                'gtype' => 'type,tariff',
57
            ],
58
            'actions' => [
59
                'class' => MenuColumn::class,
60
                'menuClass' => PlanActionsMenu::class,
61
            ],
62
            'monthly' => [
63
                'attribute' => 'monthly',
64
                'contentOptions' => ['id' => 'plan-monthly-value'],
65
            ],
66
        ]);
67
    }
68
69
    protected function prepareBadges($model)
70
    {
71
        $localization = Yii::t('hipanel.finance.plan', 'Grouping');
72
        if ($model->is_grouping) {
73
            return Html::tag('span', $localization, ['class' => 'label bg-olive', 'style' => 'float:right']);
74
        }
75
        return '';
76
    }
77
}
78