<?php
namespace backendmodels;
use commonComponentfunctions;
use Yii;
use yiihelpersArrayHelper;
/**
* This is the model class for table "{{%end_users}}".
*
* @property string $detail_id
* @property integer $user_id
* @property string $mobile_number
* @property string $name
* @property string $family
* @property integer $birth_date
* @property integer $gender
* @property string $profile_picture
* @property string $meli_code
* @property string $meli_picture
* @property integer $meli_picture_authorized
* @property integer $phone_number_authorized
* @property integer $email_authorized
* @property integer $city_id
* @property string $address
* @property string $postal_code
* @property double $lat
* @property double $lng
* @property double $stock_account
* @property integer $date_added
* @property integer $last_update
* @property integer $enabled
*
* @property User $user
* @property Locate $city
* @property Factors[] $factors
* @property Shops[] $shops
*/
class EndUsers extends yiidbActiveRecord
{
public $meli_image;
public $profile_image;
//scenario ha
const Scenario_Update_Profile='profile';
const Scenario_Update_Personal_Information='personalinformation';
const Scenario_Update_Mobile='mobile';
const Scenario_Update_Meli='meli';
//
private $_oldAttributes;
/**
* @inheritdoc
*/
public static function tableName()
{
retu '{{%end_users}}';
}
/**
* @inheritdoc
*/
public function rules()
{
retu [
[['user_id', 'mobile_number', 'date_added', 'last_update'], 'required'],
[['user_id', 'birth_date', 'gender', 'meli_picture_authorized', 'phone_number_authorized', 'email_authorized', 'city_id', 'date_added', 'last_update', 'enabled'], 'integer'],
[['lat', 'lng', 'stock_account'], 'number'],
[['mobile_number', 'meli_code', 'postal_code'], 'string', 'max' => 15],
[['name'], 'string', 'max' => 30],
[['family'], 'string', 'max' => 50],
[['profile_picture', 'meli_picture'], 'string', 'max' => 100],
[['address'], 'string', 'max' => 500],
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
[['city_id'], 'exist', 'skipOnError' => true, 'targetClass' => Locate::className(), 'targetAttribute' => ['city_id' => 'idLocate']],
[['meli_image'], 'safe'],
[['meli_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
[['profile_image'], 'safe'],
[['profile_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
retu [
'detail_id' => Yii::t('app', 'Detail ID'),
'user_id' => Yii::t('app', 'User ID'),
'mobile_number' => Yii::t('app', 'شماره موبایل'),
'name' => Yii::t('app', 'نام'),
'family' => Yii::t('app', 'نام خانوادگی'),
'birth_date' => Yii::t('app', 'تاریخ تولد'),
'gender' => Yii::t('app', 'جنسیت'),
'profile_picture' => Yii::t('app', 'تصویر پروفایل'),
'meli_image' => Yii::t('app', 'تصویر ملی'),
'profile_image' => Yii::t('app', 'تصویر پروفایل'),
'meli_code' => Yii::t('app', 'کد ملی'),
'meli_picture' => Yii::t('app', 'تصویر ملی'),
'meli_picture_authorized' => Yii::t('app', 'Meli Picture Authorized'),
'phone_number_authorized' => Yii::t('app', 'Phone Number Authorized'),
'email_authorized' => Yii::t('app', 'Email Authorized'),
'city_id' => Yii::t('app', 'City ID'),
'address' => Yii::t('app', 'آدرس'),
'postal_code' => Yii::t('app', 'کد پستی'),
'lat' => Yii::t('app', 'Lat'),
'lng' => Yii::t('app', 'Lng'),
'stock_account' => Yii::t('app', 'Stock Account'),
'date_added' => Yii::t('app', 'Date Added'),
'last_update' => Yii::t('app', 'Last Update'),
'enabled' => Yii::t('app', 'Enabled'),
];
}
public function save($runValidation = true, $attributeNames = null)
{
if (isset($_POST['birth_date'])){
$timeStamp =functions::convertDateToTimeStamp(Yii::$app->request->post('birth_date'));
$this->birth_date = $timeStamp;
}
if (isset($_POST['gender'])){
$this->gender = Yii::$app->request->post('gender');
}
if (isset($_POST['city_id'])){
$this->city_id = Yii::$app->request->post('city_id');
}
$this->last_update = time();
retu parent::save($runValidation, $attributeNames); // TODO: Change the autogenerated stub
}
public function update($runValidation = true, $attributeNames = null)
{
$this->last_update=time();
retu parent::update($runValidation, $attributeNames); // TODO: Change the autogenerated stub
}
/**
* @retu yiidbActiveQuery
*/
public function getUser()
{
retu $this->hasOne(User::className(), ['id' => 'user_id']);
}
/**
* @retu yiidbActiveQuery
*/
public function getLocate()
{
retu $this->hasOne(Locate::className(), ['idLocate' => 'city_id']);
}
/**
* @retu yiidbActiveQuery
*/
public function getFactors()
{
retu $this->hasMany(Factors::className(), ['user_detail_id' => 'detail_id']);
}
/**
* @retu yiidbActiveQuery
*/
public function getShops()
{
retu $this->hasMany(Shops::className(), ['owner_detail' => 'detail_id']);
}
public function uploadMeliImage()
{
if ($this->validate()) {
$this->meli_image->saveAs(Yii::getAlias('@meli2') . '/' . $this->meli_picture);
retu true;
} else {
retu false;
}
}
public function uploadProfileImage()
{
if ($this->validate()) {
$this->profile_image->saveAs(Yii::getAlias('@profile2') . '/' . $this->profile_picture);
retu true;
} else {
retu false;
}
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios[self::Scenario_Update_Profile] = ['profile_picture'];
$scenarios[self::Scenario_Update_Meli] = ['meli_code'];
$scenarios[self::Scenario_Update_Mobile] = ['mobile_number'];
$scenarios[self::Scenario_Update_Personal_Information] = ['name'];
retu $scenarios;
}
public function afterFind()
{
$this->_oldAttributes = $this->attributes;
parent::afterFind(); // TODO: Change the autogenerated stub
}
public function beforeSave($action)
{
switch($this->scenario) {
case self::Scenario_Update_Profile:
$only = ['detail_id','profile_picture'];
$attributes = $this->_oldAttributes;
foreach($only as $field) {
$attributes[$field] = $this->attributes[$field];
}
$this->attributes = $attributes;
break;
}
retu parent::beforeSave($action); // TODO: Change the autogenerated stub
}
}
برچسب:
نویسنده: خنجی