Parcourir la source

Section clients inactifs

Ajout d'une section listant les clients inactifs, cad supprimés par le producteur et qui ont déjà passé au moins une commande.
dev
keun il y a 6 ans
Parent
révision
6b6ea1fc57
3 fichiers modifiés avec 28 ajouts et 11 suppressions
  1. +8
    -4
      backend/controllers/UserController.php
  2. +9
    -4
      backend/views/user/index.php
  3. +11
    -3
      common/models/User.php

+ 8
- 4
backend/controllers/UserController.php Voir le fichier

@@ -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,
]);
}


+ 9
- 4
backend/views/user/index.php Voir le fichier

@@ -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'
]);
}
}
],
],

+ 11
- 3
common/models/User.php Voir le fichier

@@ -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']]);

Chargement…
Annuler
Enregistrer