10], // [['cardNumber'], 'validateCustomerCard' ], [['partnerCardNumber'], 'string', 'max' => 10], // [['partnerCardNumber'], 'validatePartnerCard' ], [['replacementCardNumber'], 'filter', 'filter' => function($value){return Helper::fixAsciiChars($value);}], [['replacementCardNumber'], 'validateReplacementCard' ], [['name'], 'required' ], [['name'], 'string', 'max' => 128], [['email'], 'string', 'max' => 255], [['email'], 'email' ], [['email'], 'unique' ], [['email'], 'required', 'when' => function($model) { return !isset( $model->email ) || empty($model->phone) ; } , 'whenClient' => "function (attribute, value) { return false; }", 'message' => Yii::t('customer/frontend','E-mail or phone number required!') ], // [['password_plain','password_repeat'], 'string', 'max' => 32], [['sex'], 'integer'], [[ 'birthdate', ], 'date' ], [[ 'date_stundent_card_expire', ], 'date' ], [[ 'description', 'address'], 'string', 'max' => 255], [['phone', 'tax_number', 'country'], 'string', 'max' => 20], [['bank_account'], 'string', 'max' => 24], [['bank_name'], 'string', 'max' => 100], [['phone'], 'required', 'when' => function($model) { return !isset( $model->email ) || empty( $model->email ) ; } , 'whenClient' => "function (attribute, value) { return false; }", 'message' => Yii::t('customer/frontend','E-mail or phone number required!') ], [['zip'], 'string', 'max' => 8], [['city'], 'string', 'max' => 30], [['photo_data'] ,'safe'], [['birth_place'] ,'safe'], [['mother_name'] ,'safe'], [['warn_mail_ticket_expire_enabled'],'integer'] ]; } public function validateCustomerCard($a,$p){ // Customer::find()->andWhere( [$this->cardNumber ) } public function validatePartnerCard($a,$p){ // Customer::find()->andWhere( [$this->cardNumber ) } public function validateReplacementCard($a,$p){ $query = Card::find(); Card::addCardNumberCondition($query, $this->replacementCardNumber); $rcard = $query->one(); if ( !isset($rcard) ){ \Yii::info("csere kártya nem található"); $this->addError($a,"Csere kártya nem található"); return; } \Yii::info("csere kártya megtalálva"); $customer = $rcard->customer; if ( isset($customer) ){ \Yii::info("A csere kártyát már valaki használja!"); $this->addError($a ,"A csere kártya már használatban van"); return; } \Yii::info("A csere kártyát megfelel!"); $this->replacementCard = $rcard; } public function beforeSave($insert){ parent::beforeSave($insert); if ( isset($this->replacementCard ) ){ $this->originalCard = $this->card; $this->id_customer_card = $this->replacementCard->id_card; } return true; } public function afterSave($insert, $changedAttributes){ if ( isset($this->replacementCard)){ Ticket::updateAll( ['id_card' => $this->replacementCard->id_card ], ['id_card' => $this->originalCard->id_card] ); } if ( !$insert ){ Card::updateCardFlagTicket($this->id_customer_card); } } }