PriceSuggestionRequestForm   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 2
cbo 2
dl 0
loc 49
ccs 0
cts 30
cp 0
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A formName() 0 4 1
A rules() 0 14 2
A isObjectPredefined() 0 4 1
A attributeLabels() 0 9 1
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\models;
12
13
use Yii;
14
use yii\base\Model;
15
16
/**
17
 * Class PriceSuggestionRequestForm.
18
 *
19
 * @author Dmytro Naumenko <[email protected]>
20
 */
21
class PriceSuggestionRequestForm extends Model
22
{
23
    public const SCENARIO_PREDEFINED_OBJECT = 'predefinedObject';
24
25
    public $plan_id;
26
27
    public $plan_type;
28
29
    public $template_plan_id;
30
31
    public $type;
32
33
    public $object_id;
34
35
    public function formName()
36
    {
37
        return '';
38
    }
39
40
    public function rules()
41
    {
42
        $result = [
43
            [['plan_id', 'type'], 'required', 'on' => [self::SCENARIO_DEFAULT, self::SCENARIO_PREDEFINED_OBJECT]],
44
            [['object_id', 'type'], 'required', 'on' => [self::SCENARIO_DEFAULT]],
45
            [['plan_id', 'object_id', 'template_plan_id'], 'integer', 'on' => [self::SCENARIO_DEFAULT, self::SCENARIO_PREDEFINED_OBJECT]],
46
            [['type'], 'safe', 'on' => [self::SCENARIO_DEFAULT, self::SCENARIO_PREDEFINED_OBJECT]],
47
        ];
48
        if ($this->plan_type !== Plan::TYPE_TEMPLATE) {
49
            $result[] = [['template_plan_id'], 'required'];
50
        }
51
52
        return $result;
53
    }
54
55
    public function isObjectPredefined(): bool
56
    {
57
        return $this->scenario === self::SCENARIO_PREDEFINED_OBJECT;
58
    }
59
60
    public function attributeLabels()
61
    {
62
        return [
63
            'plan_id' => Yii::t('hipanel.finance.price', 'Tariff plan'),
64
            'template_plan_id' => Yii::t('hipanel.finance.price', 'Template tariff plan'),
65
            'type' => Yii::t('hipanel', 'Type'),
66
            'object_id' => Yii::t('hipanel', 'Object'),
67
        ];
68
    }
69
}
70