255], ///////////////////// //cart ///////////////////// [['cart'], 'string', 'max' => 10] ]; } 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){ $this->addTransfer(); $this->addToCart(); } protected function addTransfer(){ $transfer = Transfer::createTicketTransfer($this->_account, $this->_discount, null, 1, $this); $transfer->status = Transfer::STATUS_PAID; if ( isset($this->comment)){ $transfer->comment = $this->comment; } $transfer->id_user = \Yii::$app->user->id; $transfer->save(); $this->_transfer = $transfer; } protected function addToCart(){ if ( $this->isAddToCart()){ $item = new UserSoldItem(); $item->id_transfer = $this->_transfer->id_transfer; $item->id_user = \Yii::$app->user->id; $item->save(false); } } public function isAddToCart(){ $result = false; if ( isset( $this->cart ) && $this->cart == 'add' ){ $result = true; } return $result; } }