add hidden account support add delete/payout buttons to carts add backend product sales with pdf export add frontend product sales with pdf export add frontend ticket sales with pdf export
184 lines
4.7 KiB
PHP
184 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
use Yii;
|
|
use yii\behaviors\TimestampBehavior;
|
|
use yii\helpers\ArrayHelper;
|
|
|
|
/**
|
|
* 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', 'Account'),
|
|
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]);
|
|
if ( $forceIncludeAccount == null){
|
|
$query->andWhere(['status' => Account::STATUS_ACTIVE])->all();
|
|
}else{
|
|
$query->andWhere( ['or', ['status' => Account::STATUS_ACTIVE], ['id_account' => $forceIncludeAccount ] ])->all();
|
|
}
|
|
|
|
$query->orderBy( ['name' => SORT_ASC]);
|
|
|
|
$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;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* read assigned account
|
|
* */
|
|
public static function readOne($idAccount){
|
|
$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]);
|
|
$query->andWhere(['account.id_account' => $idAccount]);
|
|
$accounts = $query->one();
|
|
|
|
return $accounts;
|
|
}
|
|
|
|
public static function toAccaountMap($accounts){
|
|
return ArrayHelper::map( $accounts,'id_account','name' );
|
|
}
|
|
|
|
}
|