87 lines
2.2 KiB
PHP
87 lines
2.2 KiB
PHP
<?php
|
|
namespace frontend\models;
|
|
|
|
use common\models\Ticket;
|
|
use common\models\TicketType;
|
|
use common\models\Account;
|
|
use common\models\Discount;
|
|
use common\models\Transfer;
|
|
|
|
class TicketCreate extends Ticket{
|
|
|
|
public $_currency;
|
|
public $_account;
|
|
public $_discount;
|
|
|
|
public function rules()
|
|
{
|
|
return [
|
|
/////////////////////
|
|
//ticket type
|
|
/////////////////////
|
|
[[ 'id_ticket_type'], 'required'],
|
|
[[ 'id_ticket_type'], 'integer'],
|
|
[[ 'id_ticket_type'], 'validateTicketType'],
|
|
/////////////////////
|
|
//id_account
|
|
/////////////////////
|
|
[[ 'id_account'], 'required'],
|
|
[[ 'id_account'], 'integer'],
|
|
[[ 'id_account'], 'validateAccount'],
|
|
/////////////////////
|
|
//id_discount
|
|
/////////////////////
|
|
[[ 'id_discount'], 'integer'],
|
|
[[ 'id_discount'], 'validateDiscount'],
|
|
/////////////////////
|
|
// start and end date
|
|
/////////////////////
|
|
[['start', 'end' ], 'required'],
|
|
[['start', 'end' ], 'date'],
|
|
/////////////////////
|
|
//id_account
|
|
/////////////////////
|
|
[[ 'max_usage_count'], 'required'],
|
|
[[ 'max_usage_count'], 'integer'],
|
|
/////////////////////
|
|
//price
|
|
/////////////////////
|
|
[[ 'price_brutto'], 'required'],
|
|
[[ 'price_brutto'], 'integer'],
|
|
/////////////////////
|
|
//comment
|
|
/////////////////////
|
|
[['comment'], 'string', 'max' => 255]
|
|
];
|
|
}
|
|
|
|
|
|
public function validateTicketType($attribute,$params){
|
|
$type = TicketType::findOne($this->id_ticket_type);
|
|
if ( !isset($type)) {
|
|
$this->addError($attribute,Yii::t('frontend/ticket' , 'Invalid ticket type' ));
|
|
}
|
|
}
|
|
|
|
public function validateAccount($attribute,$params){
|
|
$this->_account = Account::findOne($this->id_account);
|
|
if ( !isset($this->_account )) {
|
|
$this->addError($attribute,Yii::t('frontend/ticket' , 'Invalid transfer' ));
|
|
}
|
|
}
|
|
|
|
public function validateDiscount($attribute,$params){
|
|
$this->_discount = Discount::findOne($this->id_discount);
|
|
if ( !isset($this->_discount)) {
|
|
$this->addError($attribute,Yii::t('frontend/ticket' , 'Invalid discount' ));
|
|
}
|
|
}
|
|
|
|
public function afterSave($insert, $changedAttributes){
|
|
|
|
$transfer = Transfer::createTicketTransfer($this->_account, $this->_discount, null, 1, $this);
|
|
|
|
}
|
|
|
|
|
|
} |