<?php

use yii\helpers\Html;
use yii\grid\GridView;
use common\models\User ;
use common\models\Commande ;

/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Utilisateurs';
$this->params['breadcrumbs'][] = $this->title;
?>


<div class="user-index">
    <h1>
        <?= Html::encode($this->title) ?> 
        <?= Html::a('Ajouter', ['create'], ['class' => 'btn btn-primary']) ?>
        <?= Html::a('<span class="glyphicon glyphicon-envelope"></span> Liste des emails', ['mail'], ['class' => 'btn btn-default']) ?>
    </h1>

    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => true,
        'columns' => [
            [
                'attribute' => 'nom',
                'filter' => Html::input(
                        'string', 
                        'nom',
                        isset(Yii::$app->request->queryParams['nom']) ? Html::encode(Yii::$app->request->queryParams['nom']) : '',
                        [ 'class' => 'form-control']
                )
            ],
            [
                'attribute' => 'prenom',
                'filter' => Html::input(
                        'string', 
                        'prenom',
                        isset(Yii::$app->request->queryParams['prenom']) ? Html::encode(Yii::$app->request->queryParams['prenom']) : '',
                        ['class' => 'form-control']
                )
            ],
            [
                'attribute' => 'telephone',
                'filter' => Html::input(
                        'string', 
                        'telephone',
                        isset(Yii::$app->request->queryParams['telephone']) ? Html::encode(Yii::$app->request->queryParams['telephone']) : '',
                        ['class' => 'form-control']
                )
            ],
            [
                'attribute' => 'email',
                'filter' => Html::input(
                        'string', 
                        'email',
                        isset(Yii::$app->request->queryParams['email']) ? Html::encode(Yii::$app->request->queryParams['email']) : '',
                        ['class' => 'form-control']
                )
            ],
            [
                'attribute' => 'created_at',
                'label' => 'Date d\'inscription',
                'value' => function($model) {
                    if(isset($model['created_at']))
                        return date('m/d/Y à H:i', $model['created_at']); 
                }
            ],
            [
                'attribute' => 'date_derniere_connexion',
                'label' => 'Dernière connexion',
                'value' => function($model) {
                    if(isset($model['date_derniere_connexion']))
                        return date('m/d/Y à H:i', strtotime($model['date_derniere_connexion'])); 
                    else
                        return '' ;
                }
            ],
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{commandes}',
                'headerOptions' => ['class' => 'actions'],
                'buttons' => [
                    'commandes' => function ($url, $model) {
                        $url = Yii::$app->urlManager->createUrl(['user/commandes','id' => $model['user_id']]) ;
                        $count_commandes = Commande::find()
                                ->joinWith('production')
                                ->where([
                                    'id_user' => $model['user_id'], 
                                    'production.id_etablissement' => Yii::$app->user->identity->id_etablissement])
                                ->count() ;
                        $html = '' ;
                        if($count_commandes)
                        {
                            $s = '' ;
                            if($count_commandes > 1) $s = 's' ;
                            $html .= Html::a('<span class="glyphicon glyphicon-eye-open"></span> '.$count_commandes.' commande'.$s, $url, [
                                    'title' => Yii::t('app', 'Commandes'), 'class' => 'btn btn-default '
                            ]); ;
                        }
                        else {
                            $html .= 'Aucune commande' ;
                        }

                        return $html ;
                    },
                ],
            ],
            [
                'attribute' => 'credit',
                'format' => 'raw',
                'value' => function($model) use($etablissement) {
                        $html = '<div class="input-group">
                            <input type="text" class="form-control input-credit" readonly="readonly" value="'.number_format($model['credit'],2).' €" placeholder="">
                            <span class="input-group-btn">
                              '.Html::a(
                                '<span class="glyphicon glyphicon-euro"></span> Crédit',
                                Yii::$app->urlManager->createUrl(['user/credit','id' => $model['id']]),
                                [
                                    'title' => 'Crédit', 
                                    'class' => 'btn btn-default'
                                ]
                            ).'
                            </span>
                          </div>' ;
                    return $html ;
                }
            ], 
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{update}',
                'headerOptions' => ['class' => 'actions'],
                'buttons' => [
                    'update' => function ($url, $model) {
                        $url = Yii::$app->urlManager->createUrl(['user/update','id' => $model['id']]) ;
                        $user = User::find()->with('userEtablissement')->where(['id' => $model['id']])->one() ;
                        if(count($user->userEtablissement) <= 1)
                        {
                            return Html::a('<span class="glyphicon glyphicon-pencil"></span> Modifier', $url, [
                                        'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default'
                            ]);
                        }
                        else {
                            return '<span data-toggle="tooltip" data-placement="top" title="Vous ne pouvez pas modifier les utilisateurs qui appartiennent à plusieurs boulangeries."><span class="glyphicon glyphicon-remove-sign"></span> Non modifiable</span>' ;
                        }
                    },
                ],
            ],
        ],
    ]); ?>
</div>