use common\models\Distribution ; | use common\models\Distribution ; | ||||
use backend\models\MailForm ; | use backend\models\MailForm ; | ||||
use common\models\UserProducer ; | use common\models\UserProducer ; | ||||
use common\models\UserPointSale ; | |||||
/** | /** | ||||
* UserController implements the CRUD actions for User model. | * UserController implements the CRUD actions for User model. | ||||
]); | ]); | ||||
} | } | ||||
public function initForm($model) | |||||
{ | |||||
$userPointSaleArray = UserPointSale::searchAll([ | |||||
'id_user' => $model->id | |||||
]) ; | |||||
if($userPointSaleArray && count($userPointSaleArray) > 0) { | |||||
foreach($userPointSaleArray as $userPointSaleArray) { | |||||
$model->points_sale[] = $userPointSaleArray->id_point_sale ; | |||||
} | |||||
} | |||||
$pointsSaleArray = PointSale::searchAll() ; | |||||
return [ | |||||
'pointsSaleArray' => $pointsSaleArray | |||||
] ; | |||||
} | |||||
/** | /** | ||||
* Creates a new User model. | * Creates a new User model. | ||||
* If creation is successful, the browser will be redirected to the 'view' page. | * If creation is successful, the browser will be redirected to the 'view' page. | ||||
$useProducer->save(); | $useProducer->save(); | ||||
$model->sendMailWelcome($password) ; | $model->sendMailWelcome($password) ; | ||||
$this->processLinkPointSale($model) ; | |||||
return $this->redirect(['index']); | return $this->redirect(['index']); | ||||
} else { | } else { | ||||
return $this->render('create', [ | |||||
return $this->render('create', array_merge($this->initForm($model),[ | |||||
'model' => $model, | 'model' => $model, | ||||
]); | |||||
])); | |||||
} | } | ||||
} | } | ||||
$model->username = $model->email; | $model->username = $model->email; | ||||
$model->sendMailWelcome($password) ; | $model->sendMailWelcome($password) ; | ||||
} | } | ||||
$this->processLinkPointSale($model) ; | |||||
return $this->redirect(['index']); | return $this->redirect(['index']); | ||||
} else { | } else { | ||||
return $this->render('update', [ | |||||
'model' => $model, | |||||
]); | |||||
return $this->render('update', array_merge($this->initForm($model),[ | |||||
'model' => $model, | |||||
])); | |||||
} | } | ||||
} else { | } else { | ||||
throw new UserException("Vous ne pouvez pas modifier cet utilisateur, soit parce qu'il appartient à plusieurs établissements, soit parce qu'il n'est pas lié au votre."); | throw new UserException("Vous ne pouvez pas modifier cet utilisateur, soit parce qu'il appartient à plusieurs établissements, soit parce qu'il n'est pas lié au votre."); | ||||
} | } | ||||
} | } | ||||
/** | |||||
* Lie un utilisateur aux points de vente sélectionnés. | |||||
* | |||||
* @param User $modelUser | |||||
*/ | |||||
public function processLinkPointSale($modelUser) | |||||
{ | |||||
UserPointSale::deleteAll([ | |||||
'id_user' => $modelUser->id | |||||
]) ; | |||||
if(is_array($modelUser->points_sale) && count($modelUser->points_sale) > 0) { | |||||
foreach($modelUser->points_sale as $pointSaleId) { | |||||
echo $modelUser->id.' / '.$pointSaleId.' <br />' ; | |||||
$userPointSale = UserPointSale::searchOne([ | |||||
'id_user' => $modelUser->id, | |||||
'id_point_sale' => $pointSaleId | |||||
]) ; | |||||
if(!$userPointSale) { | |||||
$userPointSale = new UserPointSale ; | |||||
$userPointSale->id_user = $modelUser->id ; | |||||
$userPointSale->id_point_sale = $pointSaleId ; | |||||
$userPointSale->save() ; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
/** | /** | ||||
* Désactive l'utilisateur de l'établissement. | * Désactive l'utilisateur de l'établissement. | ||||
* | * |
<?= $form->field($model, 'phone')->textInput() ?> | <?= $form->field($model, 'phone')->textInput() ?> | ||||
<?= $form->field($model, 'email')->textInput() ?> | <?= $form->field($model, 'email')->textInput() ?> | ||||
<?= $form->field($model, 'address')->textarea() ?> | <?= $form->field($model, 'address')->textarea() ?> | ||||
<?= $form->field($model, 'points_sale')->checkboxlist(ArrayHelper::map($pointsSaleArray, 'id',function($pointSale) { return Html::encode($pointSale->name);})); ?> | |||||
<div class="form-group"> | <div class="form-group"> | ||||
<?= Html::submitButton($model->isNewRecord ? 'Ajouter' : 'Modifier', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | <?= Html::submitButton($model->isNewRecord ? 'Ajouter' : 'Modifier', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> |
<?php else: ?> | <?php else: ?> | ||||
<?= $this->render('_form', [ | <?= $this->render('_form', [ | ||||
'model' => $model, | 'model' => $model, | ||||
'pointsSaleArray' => $pointsSaleArray | |||||
]) ?> | ]) ?> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
</div> | </div> |
<div class="user-update"> | <div class="user-update"> | ||||
<?= $this->render('_form', [ | <?= $this->render('_form', [ | ||||
'model' => $model, | 'model' => $model, | ||||
'pointsSaleArray' => $pointsSaleArray | |||||
]) ?> | ]) ?> | ||||
</div> | </div> |
float: right; | float: right; | ||||
} | } | ||||
/* line 5, ../sass/user/_form.scss */ | |||||
.user-create #user-points_sale label, | |||||
.user-update #user-points_sale label { | |||||
font-weight: normal; | |||||
margin-right: 10px; | |||||
cursor: pointer; | |||||
background-color: white; | |||||
padding: 5px 10px; | |||||
border: solid 1px #e0e0e0; | |||||
} | |||||
/* line 4, ../sass/producer/_update.scss */ | /* line 4, ../sass/producer/_update.scss */ | ||||
.producer-update #nav-params { | .producer-update #nav-params { | ||||
margin-bottom: 30px; | margin-bottom: 30px; |
@import "distribution/_index.scss" ; | @import "distribution/_index.scss" ; | ||||
@import "user/_emails.scss" ; | @import "user/_emails.scss" ; | ||||
@import "user/_credit.scss" ; | @import "user/_credit.scss" ; | ||||
@import "user/_form.scss" ; | |||||
@import "producer/_update.scss" ; | @import "producer/_update.scss" ; | ||||
@import "point_sale/_index.scss" ; | @import "point_sale/_index.scss" ; |
.user-create, | |||||
.user-update { | |||||
#user-points_sale { | |||||
label { | |||||
font-weight: normal ; | |||||
margin-right: 10px ; | |||||
cursor: pointer ; | |||||
background-color: white ; | |||||
padding: 5px 10px ; | |||||
border: solid 1px #e0e0e0 ; | |||||
} | |||||
} | |||||
} |
var $password_old; | var $password_old; | ||||
var $password_new; | var $password_new; | ||||
var $password_new_confirm; | var $password_new_confirm; | ||||
var $points_sale = [] ; | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
['password_old', 'verifyPasswordOld'], | ['password_old', 'verifyPasswordOld'], | ||||
['password_new', 'verifyPasswordNew'], | ['password_new', 'verifyPasswordNew'], | ||||
['password_new_confirm', 'verifyPasswordNewConfirm'], | ['password_new_confirm', 'verifyPasswordNewConfirm'], | ||||
[['date_last_connection', 'password_old', 'password_new', 'password_new_confirm', 'password_hash'], 'safe'], | |||||
[['date_last_connection', 'password_old', 'password_new', 'password_new_confirm', 'password_hash','points_sale'], 'safe'], | |||||
]; | ]; | ||||
} | } | ||||
'password_old' => 'Ancien mot de passe', | 'password_old' => 'Ancien mot de passe', | ||||
'password_new' => 'Nouveau mot de passe', | 'password_new' => 'Nouveau mot de passe', | ||||
'password_new_confirm' => 'Confirmation du nouveau mot de passe', | 'password_new_confirm' => 'Confirmation du nouveau mot de passe', | ||||
'points_sale' => 'Points de vente' | |||||
]; | ]; | ||||
} | } | ||||