160 lines
4.1 KiB
PHP
160 lines
4.1 KiB
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
use Yii;
|
|
use yii\behaviors\TimestampBehavior;
|
|
|
|
/**
|
|
* This is the model class for table "account".
|
|
*
|
|
* @property integer $id_account
|
|
* @property string $name
|
|
* @property integer $status
|
|
* @property integer $type
|
|
* @property string $created_at
|
|
* @property string $updated_at
|
|
*/
|
|
class Account extends \yii\db\ActiveRecord
|
|
{
|
|
|
|
const STATUS_DELETED = 0;
|
|
const STATUS_ACTIVE = 10;
|
|
|
|
const TYPE_ALL = 0;
|
|
const TYPE_VALUE_HIDDEN = 10;
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public static function tableName()
|
|
{
|
|
return 'account';
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function behaviors()
|
|
{
|
|
return [
|
|
[ 'class' => TimestampBehavior::className(),
|
|
'value' => function(){ return date('Y-m-d H:i:s' ); }
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['name', 'type'], 'required'],
|
|
[['name', ], 'unique'],
|
|
[['status', 'type'], 'integer'],
|
|
[['name'], 'string', 'max' => 64]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function attributeLabels()
|
|
{
|
|
return [
|
|
'id_account' => Yii::t('common/account', 'Id Account'),
|
|
'name' => Yii::t('common/account', 'Name'),
|
|
'status' => Yii::t('common/account', 'Status'),
|
|
'type' => Yii::t('common/account', 'Type'),
|
|
'created_at' => Yii::t('common/account', 'Created At'),
|
|
'updated_at' => Yii::t('common/account', 'Updated At'),
|
|
];
|
|
}
|
|
|
|
public function getUserAccountAssignments(){
|
|
return $this->hasMany(UserAccountAssignment::className(), ['id_account' => 'id_account']);
|
|
}
|
|
|
|
static function statuses() {
|
|
return [
|
|
self::STATUS_ACTIVE => Yii::t('common/account', 'Active'),
|
|
self::STATUS_DELETED => Yii::t('common/account', 'Inactive'),
|
|
];
|
|
}
|
|
|
|
public function getStatusHuman(){
|
|
$result = null;
|
|
$s = self::statuses($this->status);
|
|
if ( array_key_exists($this->status, $s)){
|
|
$result = $s[$this->status];
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
static function types() {
|
|
return [
|
|
self::TYPE_ALL => Yii::t('common/account', 'Visible for all'),
|
|
self::TYPE_VALUE_HIDDEN => Yii::t('common/account', 'Only the name is visible'),
|
|
];
|
|
}
|
|
|
|
public function getTypeHuman(){
|
|
$result = null;
|
|
$s = self::types($this->type);
|
|
if ( array_key_exists($this->type, $s)){
|
|
$result = $s[$this->type];
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
public function isInactive(){
|
|
return $this->status == self::STATUS_DELETED;
|
|
}
|
|
|
|
/**
|
|
* $param int $forceIncludeAccount id account, that should be included in list, even if it is inactive
|
|
* */
|
|
public static function readAccounts($forceIncludeAccount = null){
|
|
$accounts = null;
|
|
|
|
if ( $forceIncludeAccount == null){
|
|
$accounts = Account::find()->andWhere(['status' => Account::STATUS_ACTIVE])->all();
|
|
}else{
|
|
$accounts = Account::find()->andWhere( ['or', ['status' => Account::STATUS_ACTIVE], ['id_account' => $forceIncludeAccount ] ])->all();
|
|
}
|
|
|
|
return $accounts;
|
|
}
|
|
|
|
public static function read($forceIncludeAccount = null){
|
|
$accounts = null;
|
|
$query = Account::find();
|
|
$query->innerJoinWith('userAccountAssignments');
|
|
$query->andWhere(['user_account_assignment.id_user' => Yii::$app->user->id]);
|
|
$query->andWhere(['status' => Account::STATUS_ACTIVE]);
|
|
if ( $forceIncludeAccount == null){
|
|
$query->andWhere(['status' => Account::STATUS_ACTIVE])->all();
|
|
}else{
|
|
$query->andWhere( ['or', ['status' => Account::STATUS_ACTIVE], ['id_account' => $forceIncludeAccount ] ])->all();
|
|
}
|
|
|
|
$accounts = $query->all();
|
|
return $accounts;
|
|
}
|
|
|
|
public static function writeDefault($account){
|
|
$session = Yii::$app->session;
|
|
$session->set('id_account', $account->id_account);
|
|
|
|
}
|
|
|
|
public static function readDefault( ){
|
|
$session = Yii::$app->session;
|
|
$result = $session->get('id_account');
|
|
return $result;
|
|
|
|
}
|
|
|
|
}
|