andWhere(['or', ['and',[ 'in','key.number' , [$this->key]],"trim(coalesce(key.number, '')) <>'' " ], ['and', ['in','key.rfid_key' ,[ $this->key ] ],"trim(coalesce(key.rfid_key, '')) <>'' "], ]); $this->keyModel = $query->one(); if ( isset($this->keyModel) ){ $assignments = CardKeyAssignment::find()->andWhere(['id_key' => $this->keyModel->id_key])->all(); if ( count($assignments) > 0){ $this->unassign(); $this->action = 'unassign'; }else{ $this->assign(); } }else{ \Yii::$app->session->setFlash ( 'danger', 'Kulcs nem található!' ); } } public function assign(){ if ( isset($this->card) && isset($this->customer) ){ $assignments = CardKeyAssignment::find()->andWhere(['id_card' => $this->card->id_card])->all(); if ( count($assignments) > 0 ){ \Yii::$app->session->setFlash ( 'danger', 'A vendégnél egyszerre csak egy kulcs lehet' ); }else{ $assignment = new CardKeyAssignment(); $assignment->id_card = $this->card->id_card; $assignment->id_key = $this->keyModel->id_key; $assignment->id_user = \Yii::$app->user->id; $assignment->save(false); \Yii::$app->session->setFlash ( 'success', 'Kulcs kiadva!' ); } }else{ \Yii::$app->session->setFlash ( 'danger', 'Nincs vendég kiválasztva vagy érvénytelen kártya!' ); } } public function unassign(){ CardKeyAssignment::deleteAll(['id_key' => $this->keyModel->id_key]); \Yii::$app->session->setFlash ( 'success', 'Kulcs visszaadva!' ); } }