Ajout d'une section listant les clients inactifs, cad supprimés par le producteur et qui ont déjà passé au moins une commande.refactoring
@@ -43,18 +43,21 @@ class UserController extends BackendController { | |||
* Lists all User models. | |||
* @return mixed | |||
*/ | |||
public function actionIndex($id_point_vente = 0) { | |||
public function actionIndex($id_point_vente = 0, $section_clients_inactifs = false) { | |||
$params = Yii::$app->request->queryParams; | |||
if($id_point_vente) | |||
$params['id_point_vente'] = $id_point_vente ; | |||
if($section_clients_inactifs) | |||
$params['inactifs'] = true ; | |||
$query = User::findBy($params); | |||
$dataProvider = new ActiveDataProvider([ | |||
'query' => $query | |||
]); | |||
$etablissement = Etablissement::find() | |||
->where(['id' => Yii::$app->user->identity->id_etablissement]) | |||
->one(); | |||
->where(['id' => Yii::$app->user->identity->id_etablissement]) | |||
->one(); | |||
$points_vente = PointVente::find()->where(['id_etablissement' => $etablissement->id])->all() ; | |||
@@ -62,7 +65,8 @@ class UserController extends BackendController { | |||
'dataProvider' => $dataProvider, | |||
'etablissement' => $etablissement, | |||
'id_point_vente_active' => $id_point_vente, | |||
'points_vente' => $points_vente | |||
'points_vente' => $points_vente, | |||
'section_clients_inactifs' => $section_clients_inactifs, | |||
]); | |||
} | |||
@@ -20,7 +20,7 @@ $this->params['breadcrumbs'][] = $this->title; | |||
</h1> | |||
<ul id="tabs-points-vente" class="nav nav-tabs" role="tablist"> | |||
<li class="<?php if(!$id_point_vente_active): ?>active<?php endif; ?>"> | |||
<li class="<?php if(!$id_point_vente_active && !$section_clients_inactifs): ?>active<?php endif; ?>"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/index']); ?>">Tous</a> | |||
</li> | |||
<?php foreach($points_vente as $pv): ?> | |||
@@ -28,6 +28,9 @@ $this->params['breadcrumbs'][] = $this->title; | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/index','id_point_vente'=>$pv->id]); ?>"><?= Html::encode($pv->nom) ?></a> | |||
</li> | |||
<?php endforeach; ?> | |||
<li class="<?php if($section_clients_inactifs): ?>active<?php endif; ?>"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/index','section_clients_inactifs' => 1]); ?>">Inactifs</a> | |||
</li> | |||
</ul> | |||
<?= Html::a('<span class="glyphicon glyphicon-envelope"></span> Liste des emails', ['mail', 'id_point_vente' => $id_point_vente_active], ['class' => 'btn btn-default btn-liste-emails']) ?> | |||
@@ -161,9 +164,11 @@ $this->params['breadcrumbs'][] = $this->title; | |||
} | |||
}, | |||
'delete' => function($url, $model) { | |||
return Html::a('<span class="glyphicon glyphicon-trash"></span> Supprimer', Yii::$app->urlManager->createUrl(['user/delete','id' => $model['user_id']]), [ | |||
'title' => Yii::t('app', 'Supprimer'), 'class' => 'btn btn-default' | |||
]); | |||
if($model['actif']) { | |||
return Html::a('<span class="glyphicon glyphicon-trash"></span> Supprimer', Yii::$app->urlManager->createUrl(['user/delete','id' => $model['user_id']]), [ | |||
'title' => Yii::t('app', 'Supprimer'), 'class' => 'btn btn-default' | |||
]); | |||
} | |||
} | |||
], | |||
], |
@@ -161,9 +161,10 @@ class User extends ActiveRecord implements IdentityInterface { | |||
$query = (new \yii\db\Query()) | |||
->select(['user.id AS user_id', 'user.prenom', 'user.nom', 'user.telephone', 'user.email', 'user.created_at', 'user.date_derniere_connexion', 'user_etablissement.*']) | |||
->from('user') | |||
->innerJoin('user_etablissement','user.id = user_etablissement.id_user AND user_etablissement.actif = 1 AND user_etablissement.id_etablissement = :id_etablissement', [':id_etablissement' => $params['id_etablissement']]) | |||
; | |||
->from('user'); | |||
$actif = (isset($params['inactifs']) && $params['inactifs']) ? 0 : 1 ; | |||
$query->innerJoin('user_etablissement','user.id = user_etablissement.id_user AND user_etablissement.actif = '.$actif.' AND user_etablissement.id_etablissement = :id_etablissement', [':id_etablissement' => $params['id_etablissement']]) ; | |||
if(isset($params['id_point_vente']) && $params['id_point_vente']) { | |||
$point_vente = PointVente::findOne(['id' => $params['id_point_vente']]) ; | |||
@@ -179,6 +180,13 @@ class User extends ActiveRecord implements IdentityInterface { | |||
} | |||
} | |||
if(isset($params['inactifs']) && $params['inactifs']) { | |||
$query->innerJoin( | |||
'commande', | |||
'user.id = commande.id_user' | |||
) | |||
->groupBy('user.id'); | |||
} | |||
if (isset($params['nom'])) | |||
$query->andFilterWhere(['like', 'nom', $params['nom']]); |