Issues (1519)

system/modules/Ecommerce/models/Card/Item.php (1 issue)

1
<?php
2
3
/**
4
 * Card Item
5
 *
6
 * @author Alexey Krupskiy <[email protected]>
7
 * @link http://inji.ru/
8
 * @copyright 2015 Alexey Krupskiy
9
 * @license https://github.com/injitools/cms-Inji/blob/master/LICENSE
10
 */
11
12
namespace Inji\Ecommerce\Card;
13
/**
14
 * @property string $code
15
 * @property string $sum
16
 * @property int $card_id
17
 * @property int $user_id
18
 * @property int $card_level_id
19
 * @property string $date_create
20
 *
21
 * @property-read \Ecommerce\Card $card
22
 * @property-read \Ecommerce\Card\Level $level
23
 * @property-read \Users\User $user
24
 */
25
class Item extends \Inji\Model {
26
27
    public static $objectName = 'Карта пользователя';
28
    public static $cols = [
29
        'code' => ['type' => 'text'],
30
        'sum' => ['type' => 'text'],
31
        'card_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'card'],
32
        'user_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'user'],
33
        'card_level_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'level'],
34
        //Системные параметры
35
        'date_create' => ['type' => 'dateTime'],
36
    ];
37
    public static $labels = [
38
        'card_id' => 'Карта',
39
        'card_level_id' => 'Уровень карты',
40
        'user_id' => 'Пользователь',
41
        'sum' => 'Накопления',
42
        'code' => 'Уникальный код',
43
    ];
44
    public static $dataManagers = [
45
        'manager' => [
46
            'name' => 'Карты пользователей',
47
            'cols' => [
48
                'card_id',
49
                'card_level_id',
50
                'user_id',
51
                'sum',
52
                'code',
53
            ],
54
        ],
55
    ];
56
    public static $forms = [
57
        'manager' => [
58
            'map' => [
59
                ['card_id', 'card_level_id'],
60
                ['user_id', 'sum'],
61
                ['code'],
62
            ]
63
        ]];
64
65
    public function beforeSave() {
66
        foreach ($this->card->levels as $level) {
67
            if ((float) $level->sum <= (float) $this->sum) {
68
                $this->card_level_id = $level->id;
69
            }
70
        }
71
    }
72
73
    public static function relations() {
74
        return [
75
            'card' => [
76
                'model' => 'Inji\Ecommerce\Card',
77
                'col' => 'card_id'
78
            ],
79
            'level' => [
80
                'model' => 'Inji\Ecommerce\Card\Level',
81
                'col' => 'card_level_id'
82
            ],
83
            'user' => [
84
                'model' => 'Inji\Users\User',
85
                'col' => 'user_id'
86
            ]
87
        ];
88
    }
89
90
    public function name() {
91
        return $this->code ? $this->code : $this->id . ' - ' . $this->user->name();
0 ignored issues
show
Bug Best Practice introduced by
The property id does not exist on Inji\Ecommerce\Card\Item. Since you implemented __get, consider adding a @property annotation.
Loading history...
92
    }
93
94
}
95