['integer']], [['money' ,'payment_method'],'integer'], [['payment_method'],'validatePaymentMethod'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ ]; } public function validatePaymentMethod( $attribute, $params ){ if ( !empty($this->payment_method)){ // echo $this->payment_method; $arr = Transfer::paymentMethods(); if ( !array_key_exists($this->payment_method, $arr) ){ $this->addError($attribute, "Érvénytelen fizetési mód"); } } } public function payout(){ $valid = $this->validate(); if ( !$valid ){ return false; } if ( isset($this->selected) && count($this->selected) > 0 ){ $items = $this->loadTransfers($this->selected); if ( count($items) == count($this->selected) ){ foreach ($items as $item){ $this->changePaymentMethod($item); $item->payout(); } \Yii::$app->session->setFlash('success', 'Kifizetve'); return true; }else{ \Yii::$app->session->setFlash('danger', 'Időközben változtak a kosrában található tételek'); return false; } }else{ \Yii::$app->session->setFlash('danger', 'Nem választott ki terméket'); return false; } } public function changePaymentMethod($item){ if ( !empty($this->payment_method)){ $item->payment_method = $this->payment_method; } } public function run(){ $this->readTransfers(); } public function readTransfers( ) { $this->transfers = $this->loadTransfers(); } public function loadTransfers($id_tranfer_array = null){ $query = Transfer::find(); $query->innerJoin("user_sold_item", "user_sold_item.id_transfer = transfer.id_transfer"); $query->andWhere(["user_sold_item.id_user" => \Yii::$app->user->id]); if (isset($id_tranfer_array)){ $query->andWhere(["in", "transfer.id_transfer" , $id_tranfer_array ]); } return $query->all(); } }