injitools /
cms-Inji
| 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
Loading history...
|
|||
| 92 | } |
||
| 93 | |||
| 94 | } |
||
| 95 |