fitness-web/common/models/Ticket.php

151 lines
4.0 KiB
PHP

<?php
namespace common\models;
use Yii;
/**
* This is the model class for table "ticket".
*
* @property integer $id_ticket
* @property integer $id_user
* @property integer $id_ticket_type
* @property integer $id_account
* @property integer $id_discount
* @property string $start
* @property string $end
* @property integer $max_usage_count
* @property integer $usage_count
* @property integer $status
* @property integer $price_brutto
* @property string $comment
* @property string $created_at
* @property string $updated_at
*/
class Ticket extends \common\models\BaseFitnessActiveRecord
{
const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
/**
* @inheritdoc
*/
public static function tableName()
{
return 'ticket';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_user', 'id_ticket_type', 'id_account', 'id_discount', 'max_usage_count', 'usage_count', 'status', 'price_brutto'], 'integer'],
[['start', 'end', 'created_at', 'updated_at'], 'safe'],
[['comment'], 'required'],
[['comment'], 'string', 'max' => 255]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id_ticket' => Yii::t('common/ticket', 'Id Ticket'),
'id_user' => Yii::t('common/ticket', 'Id User'),
'id_ticket_type' => Yii::t('common/ticket', 'Id Ticket Type'),
'id_account' => Yii::t('common/ticket', 'Id Account'),
'id_discount' => Yii::t('common/ticket', 'Id Discount'),
'start' => Yii::t('common/ticket', 'Start'),
'end' => Yii::t('common/ticket', 'End'),
'max_usage_count' => Yii::t('common/ticket', 'Max Usage Count'),
'usage_count' => Yii::t('common/ticket', 'Usage Count'),
'status' => Yii::t('common/ticket', 'Status'),
'price_brutto' => Yii::t('common/ticket', 'Price Brutto'),
'comment' => Yii::t('common/ticket', 'Comment'),
'created_at' => Yii::t('common/ticket', 'Created At'),
'updated_at' => Yii::t('common/ticket', 'Updated At'),
];
}
public function getCard(){
return $this->hasOne( Card::className(), ["id_card" =>"id_card" ] );
}
public function getUser(){
return $this->hasOne( User::className(), ["id" =>"id_user" ] );
}
public function getTicketType(){
return $this->hasOne( TicketType::className(), ["id_ticket_type" =>"id_ticket_type" ] );
}
public function getDiscount(){
return $this->hasOne( Discount::className(), ["id_discount" =>"id_discount" ] );
}
public function getAccount() {
return $this->hasOne ( Account::className (), [
'id_account' => 'id_account'
] );
}
public function getAccountName() {
$result = "";
$account = $this->account;
if ( isset($account) ){
$result = $this->account->name;
}
return $result;
}
public function getDiscountName() {
$result = "";
$discount = $this->discount;
if ( isset($discount) ){
$result = $this->discount->name;
}
return $result;
}
public function getTicketTypeName() {
$result = "";
$ticketType = $this->ticketType;
if ( isset($ticketType) ){
$result = $ticketType->name;
}
return $result;
}
public function getUserName() {
$result = "";
$user = $this->user;
if ( isset($user) ){
$result = $user->username;
}
return $result;
}
/**
* @param common\models\Card $card the card to which we are looking for
* */
public static function readActive($card){
if ( $card == null )
return [];
$query = Ticket::find();
$today = date('Y-m-d');
$query->andWhere(['id_card' => $card->id_card]);
$query->andWhere( 'start <= :today' ,[ 'today' => $today] );
$query->andWhere( 'end >= :today' ,[ 'today' => $today] );
$result = $query->all();
return $result;
}
}