Sfoglia il codice sorgente

Historique des commandes

Affichage des commandes via GridView + pagination.
dev
keun 6 anni fa
parent
commit
4b6beb2284
6 ha cambiato i file con 175 aggiunte e 164 eliminazioni
  1. +1
    -0
      common/config/bootstrap.php
  2. +21
    -34
      producer/controllers/CommandeController.php
  3. +64
    -89
      producer/views/commande/historique.php
  4. BIN
      producer/web/.sass-cache/df296f4d5446ec0f190b7ff1f23eb998ea1b56e7/_layout.scssc
  5. +63
    -41
      producer/web/css/screen.css
  6. +26
    -0
      producer/web/sass/_layout.scss

+ 1
- 0
common/config/bootstrap.php Vedi File

@@ -29,6 +29,7 @@ Import::using('yii\db\*');
Import::using('yii\behaviors\*');
Import::using('yii\helpers\*');
Import::using('yii\web\NotFoundHttpException');
Import::using('yii\grid\*');

// models
Import::using('common\models\*');

+ 21
- 34
producer/controllers/CommandeController.php Vedi File

@@ -174,46 +174,33 @@ class CommandeController extends ProducerBaseController {
'credit' => $credit
];
}
/**
* Affiche l'historique des commandes de l'utilisateur
*
* @return ProducerView
*/

public function actionHistorique() {

$model_form_etablissement = new AddEtablissementForm();
if ($model_form_etablissement->load(Yii::$app->request->post()) && $model_form_etablissement->validate()) {
$model_form_etablissement->add();
$model_form_etablissement->code = '';
}

// liste des etablissements
$etablissements = Yii::$app->user->identity->getEtablissementsFavoris();

// liste des établissement disponibles
$arr_etablissements = Etablissement::getEtablissementsPopulateDropdown();
$data_etablissements_dispos = $arr_etablissements['data'];
$options_etablissements_dispos = $arr_etablissements['options'];

// liste des commandes
$commandes = Commande::find()
$data_provider_commandes = new ActiveDataProvider([
'query' => Commande::find()
->with('commandeProduits', 'pointVente', 'creditHistorique')
->joinWith('production', 'production.etablissement')
->where(['id_user' => Yii::$app->user->id])
//->andWhere('production.date < '.)
->orderBy('production.date DESC')
->limit(40)
->all();
// initilisation commandes
foreach ($commandes as $c)
$c->init();
->where([
'id_user' => Yii::$app->user->id,
'production.id_etablissement' => $this->getProducer()->id
])
->orderBy('production.date DESC'),
'pagination' => [
'pageSize' => 10,
],
]);

return $this->render('historique', [
'commandes' => $commandes,
'commande_ok' => Yii::$app->getRequest()->get('commande_ok', false),
'annule_ok' => Yii::$app->getRequest()->get('annule_ok', false),
'pate_deja_petrie' => Yii::$app->getRequest()->get('pate_deja_petrie', false),
'etablissements' => $etablissements,
'model_form_etablissement' => $model_form_etablissement,
'data_etablissements_dispos' => $data_etablissements_dispos,
'options_etablissements_dispos' => $options_etablissements_dispos,
'data_provider_commandes' => $data_provider_commandes,
'commande_ok' => Yii::$app->getRequest()->get('commande_ok', false),
'annule_ok' => Yii::$app->getRequest()->get('annule_ok', false),
]);
}


+ 64
- 89
producer/views/commande/historique.php Vedi File

@@ -19,95 +19,70 @@ $this->setTitle('Historique de mes commandes') ;
<div class="alert alert-success"><div class="icon"></div>Votre commande a bien été annulée.</div>
<?php endif; ?>

<div id="liste-boulangeries">
<?=
$this->render('_liste_etablissements.php',[
'etablissements' => $etablissements,
'context' => 'index'
]) ;
?>
<div class="col-md-6" id="bloc-add-etablissement">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><span class="glyphicon glyphicon-plus"></span> Ajouter un producteur</h3>
</div>
<div class="panel-body">
<?php $form = ActiveForm::begin(['id' => 'form-add-boulanger','enableClientValidation'=> false]); ?>
<?= $form->field($model_form_etablissement, 'id_etablissement')
->label('')
->dropDownList($data_etablissements_dispos,
['prompt' => '--',
'encode' => false,
'options' => $options_etablissements_dispos
]) ; ?>
<div id="bloc-code-acces">
<?= $form->field($model_form_etablissement, 'code',[
'inputTemplate' => '<div class="input-group"><span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>{input}</div>',
])
->label('Code')
->hint('Renseignez-vous auprès de votre producteur pour qu\'il vous fournisse le code d\'accès') ; ?>
</div>
<?= Html::submitButton('<span class="glyphicon glyphicon-plus"></span> Valider', ['class' => 'btn btn-default', 'name' => 'add-etablissement-button']) ?>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
<div class="clr"></div>
</div>

<h2 class="first">Historique</h2>
<?php if(count($commandes)): ?>
<p>Retrouvez ici vos dernières commandes.</p>

<table id="historique-commandes" class="table table-striped table-bordered">
<thead>
<tr>
<th>Producteur</th>
<th>Date livraison</th>
<th>Résumé</th>
<th>Lieu</th>
<th class="montant">Montant</th>
<th class="statut"></th>
</tr>
</thead>
<tbody>
<?php foreach($commandes as $c): ?>
<tr>
<td><?= Html::encode($c->production->etablissement->nom) ?></td>
<td><?php echo date('d/m/Y',strtotime($c->production->date)); ?></td>
<td class="resume"><?= $c->getResumePanier() ; ?></td>
<td><?= $c->getResumePointVente(); ?></td>
<td class="montant"><?= $c->getResumeMontant(); ?></td>
<td class="statut">
<?php if($c->getEtat() == Commande::ETAT_LIVREE): ?>
Livrée
<?php elseif($c->getEtat() == Commande::ETAT_PREPARATION): ?>
En préparation
<?php elseif($c->getEtat() == Commande::ETAT_MODIFIABLE): ?>
<div class="btn-group">
<a href="<?php echo Yii::$app->urlManager->createUrl(['commande/update','id'=>$c->id, 'id_etablissement'=>$c->production->etablissement->id]) ; ?>" class="btn btn-default"><span class="glyphicon glyphicon-pencil"></span> Modifier</a>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo Yii::$app->urlManager->createUrl(['commande/annuler','id'=>$c->id]) ; ?>"><span class="glyphicon glyphicon-trash"></span> Annuler la commande</a></li>
</ul>
</div>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<div class="alert alert-info">Vous n'avez pas encore passé de commandes</div>
<?php endif; ?>
<?=

</div>
GridView::widget([
'dataProvider' => $data_provider_commandes,
'summary' => '',
'beforeRow' => function($model) {
$model->init() ;
},
'columns' => [
[
'attribute' => 'production.date',
'label' => 'Date de livraison',
'value' => function($model) {
return date('d/m/Y', strtotime($model->production->date)) ;
}
],
[
'label' => 'Résumé',
'format' => 'raw',
'value' => function($model) {
return $model->getResumePanier();
}
],
[
'label' => 'Point de vente',
'format' => 'raw',
'value' => function($model) {
return $model->getResumePointVente();
}
],
[
'label' => 'Montant',
'format' => 'raw',
'value' => function($model) {
return $model->getResumeMontant();
}
],
[
'label' => 'Statut',
'format' => 'raw',
'value' => function($c) {
if($c->getEtat() == Commande::ETAT_LIVREE) {
return 'Livrée' ;
}
elseif($c->getEtat() == Commande::ETAT_PREPARATION) {
return 'En préparation' ;
}
elseif($c->getEtat() == Commande::ETAT_MODIFIABLE) {
return '<div class="btn-group">
<a href="'.Yii::$app->urlManager->createUrl(['commande/update','id'=>$c->id, 'id_etablissement'=>$c->production->etablissement->id]).'" class="btn btn-default"><span class="glyphicon glyphicon-pencil"></span> Modifier</a>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="'.Yii::$app->urlManager->createUrl(['commande/annuler','id'=>$c->id]).'"><span class="glyphicon glyphicon-trash"></span> Annuler la commande</a></li>
</ul>
</div>' ;
}
}
],
]
]);
?>

BIN
producer/web/.sass-cache/df296f4d5446ec0f190b7ff1f23eb998ea1b56e7/_layout.scssc Vedi File


+ 63
- 41
producer/web/css/screen.css Vedi File

@@ -112,29 +112,51 @@ body {
color: #8a6d3b;
}

/* line 54, ../sass/_layout.scss */
/* line 57, ../sass/_layout.scss */
ul.pagination li.active a {
background-color: #BB8757;
border: solid 1px #BB8757;
}
/* line 61, ../sass/_layout.scss */
ul.pagination li.active a:hover {
background-color: #F8F1DD;
border: solid 1px #F8F1DD;
color: #BB8757;
}
/* line 68, ../sass/_layout.scss */
ul.pagination li a {
color: #BB8757;
}
/* line 71, ../sass/_layout.scss */
ul.pagination li a:hover, ul.pagination li a:focus, ul.pagination li a:active {
background-color: #F8F1DD;
border: solid 1px #F8F1DD;
color: #BB8757;
}

/* line 80, ../sass/_layout.scss */
#header-bap {
background-color: #F8F1DD;
padding-top: 7px;
padding-bottom: 7px;
}
/* line 59, ../sass/_layout.scss */
/* line 85, ../sass/_layout.scss */
#header-bap .container {
padding-left: 0px;
padding-right: 0px;
}
/* line 64, ../sass/_layout.scss */
/* line 90, ../sass/_layout.scss */
#header-bap #logo {
color: black;
text-decoration: none;
position: relative;
top: 3px;
}
/* line 70, ../sass/_layout.scss */
/* line 96, ../sass/_layout.scss */
#header-bap #logo img {
width: 25px;
}
/* line 73, ../sass/_layout.scss */
/* line 99, ../sass/_layout.scss */
#header-bap #logo .text {
font-size: 17px;
font-family: "comfortaalight";
@@ -142,38 +164,38 @@ body {
bottom: 6px;
left: 3px;
}
/* line 82, ../sass/_layout.scss */
/* line 108, ../sass/_layout.scss */
#header-bap ul#nav-bap {
float: right;
}
/* line 85, ../sass/_layout.scss */
/* line 111, ../sass/_layout.scss */
#header-bap ul#nav-bap li {
float: right;
}
/* line 87, ../sass/_layout.scss */
/* line 113, ../sass/_layout.scss */
#header-bap ul#nav-bap li a {
color: black;
font-size: 15px;
color: #BB8757;
}
/* line 92, ../sass/_layout.scss */
/* line 118, ../sass/_layout.scss */
#header-bap ul#nav-bap li a:hover, #header-bap ul#nav-bap li a:focus {
color: #333;
color: #BB8757;
background: none;
}
/* line 99, ../sass/_layout.scss */
/* line 125, ../sass/_layout.scss */
#header-bap ul#nav-bap li ul {
background-color: #F8F1DD;
border-top: solid 2px #BB8757;
}
/* line 103, ../sass/_layout.scss */
/* line 129, ../sass/_layout.scss */
#header-bap ul#nav-bap li ul li a {
text-transform: uppercase;
font-size: 13px;
}

/* line 113, ../sass/_layout.scss */
/* line 139, ../sass/_layout.scss */
#header {
background-color: #BB8757;
text-align: center;
@@ -181,16 +203,16 @@ body {
padding-bottom: 70px;
border-bottom: solid 1px #e0e0e0;
}
/* line 120, ../sass/_layout.scss */
/* line 146, ../sass/_layout.scss */
#header .container {
position: relative;
padding: 0px;
}
/* line 125, ../sass/_layout.scss */
/* line 151, ../sass/_layout.scss */
#header h1, #header h2 {
color: white;
}
/* line 129, ../sass/_layout.scss */
/* line 155, ../sass/_layout.scss */
#header h1 {
text-transform: uppercase;
font-family: "myriadpro-regular";
@@ -198,13 +220,13 @@ body {
padding-bottom: 20px;
font-weight: bold;
}
/* line 137, ../sass/_layout.scss */
/* line 163, ../sass/_layout.scss */
#header h2 {
font-family: "myriadpro-it";
font-size: 18px;
padding-bottom: 15px;
}
/* line 143, ../sass/_layout.scss */
/* line 169, ../sass/_layout.scss */
#header #credit {
position: absolute;
top: 0px;
@@ -214,16 +236,16 @@ body {
border-bottom: solid 1px white;
padding: 7px 0px;
}
/* line 152, ../sass/_layout.scss */
/* line 178, ../sass/_layout.scss */
#header #credit span {
font-family: "myriadpro-light";
}

/* line 158, ../sass/_layout.scss */
/* line 184, ../sass/_layout.scss */
#main {
background-color: #F8F1DD;
}
/* line 161, ../sass/_layout.scss */
/* line 187, ../sass/_layout.scss */
#main #main-nav {
width: 100%;
position: relative;
@@ -231,14 +253,14 @@ body {
background-color: white;
border-bottom: solid 1px #e0e0e0;
}
/* line 170, ../sass/_layout.scss */
/* line 196, ../sass/_layout.scss */
#main #main-nav ul li a {
color: #BB8757;
text-transform: uppercase;
font-family: "myriadpro-regular";
border-right: solid 1px #e0e0e0;
}
/* line 177, ../sass/_layout.scss */
/* line 203, ../sass/_layout.scss */
#main #main-nav ul li a:hover, #main #main-nav ul li.active a {
background: none;
border-bottom: solid 1px #BB8757;
@@ -246,18 +268,18 @@ body {
-webkit-border-radius: 0px;
border-radius: 0px;
}
/* line 184, ../sass/_layout.scss */
/* line 210, ../sass/_layout.scss */
#main #main-nav ul li#btn-administration {
background-color: #F8F1DD;
float: right;
}
/* line 191, ../sass/_layout.scss */
/* line 217, ../sass/_layout.scss */
#main #main-nav #user {
color: #BB8757;
float: right;
padding: 10px;
}
/* line 198, ../sass/_layout.scss */
/* line 224, ../sass/_layout.scss */
#main #page-title {
padding-left: 15px;
padding-right: 15px;
@@ -270,7 +292,7 @@ body {
top: -10px;
text-align: center;
}
/* line 211, ../sass/_layout.scss */
/* line 237, ../sass/_layout.scss */
#main .container {
padding: 0px;
background-color: white;
@@ -278,30 +300,30 @@ body {
border-left: solid 1px #e0e0e0;
border-right: solid 1px #e0e0e0;
}
/* line 219, ../sass/_layout.scss */
/* line 245, ../sass/_layout.scss */
#main #content {
padding-bottom: 20px;
padding: 0px 20px 20px 20px;
}
/* line 223, ../sass/_layout.scss */
/* line 249, ../sass/_layout.scss */
#main #content h1, #main #content h2, #main #content h3, #main #content h4, #main #content h5, #main #content h6 {
font-family: "myriadpro-regular";
margin-top: 30px;
margin-bottom: 20px;
}
/* line 228, ../sass/_layout.scss */
/* line 254, ../sass/_layout.scss */
#main #content h1.first, #main #content h2.first, #main #content h3.first, #main #content h4.first, #main #content h5.first, #main #content h6.first {
margin-top: 0px;
}
/* line 233, ../sass/_layout.scss */
/* line 259, ../sass/_layout.scss */
#main #content h1 {
font-size: 30px;
}
/* line 237, ../sass/_layout.scss */
/* line 263, ../sass/_layout.scss */
#main #content h2 {
font-size: 25px;
}
/* line 242, ../sass/_layout.scss */
/* line 268, ../sass/_layout.scss */
#main #content h3 {
font-family: "myriadpro-light";
text-transform: uppercase;
@@ -310,35 +332,35 @@ body {
color: white;
text-align: center;
}
/* line 249, ../sass/_layout.scss */
/* line 275, ../sass/_layout.scss */
#main #content h3 span {
background-color: #BB8757;
padding: 10px 20px;
padding-top: 14px;
}
/* line 256, ../sass/_layout.scss */
/* line 282, ../sass/_layout.scss */
#main #content h4 {
font-size: 20px;
}
/* line 260, ../sass/_layout.scss */
/* line 286, ../sass/_layout.scss */
#main #content h5 {
font-size: 18px;
}
/* line 264, ../sass/_layout.scss */
/* line 290, ../sass/_layout.scss */
#main #content h6 {
font-size: 16px;
}

/* line 270, ../sass/_layout.scss */
/* line 296, ../sass/_layout.scss */
#footer {
background-color: #BB8757;
height: 100px;
}
/* line 274, ../sass/_layout.scss */
/* line 300, ../sass/_layout.scss */
#footer .container {
padding: 0px;
}
/* line 276, ../sass/_layout.scss */
/* line 302, ../sass/_layout.scss */
#footer .container .overflow {
height: 30px;
background-color: white;
@@ -346,12 +368,12 @@ body {
border-right: solid 1px #e0e0e0;
border-bottom: solid 1px #e0e0e0;
}
/* line 284, ../sass/_layout.scss */
/* line 310, ../sass/_layout.scss */
#footer .container .content {
padding-top: 20px;
color: white;
}
/* line 288, ../sass/_layout.scss */
/* line 314, ../sass/_layout.scss */
#footer .container .content a {
color: white;
text-decoration: underline;

+ 26
- 0
producer/web/sass/_layout.scss Vedi File

@@ -51,6 +51,32 @@ body {
}
}

ul.pagination {
li {
&.active {
a {
background-color: $color1 ;
border: solid 1px $color1 ;
&:hover {
background-color: $color2 ;
border: solid 1px $color2 ;
color: $color1 ;
}
}
}
a {
color: $color1 ;
&:hover, &:focus, &:active {
background-color: $color2 ;
border: solid 1px $color2 ;
color: $color1 ;
}
}
}
}

#header-bap {
background-color: $color2 ;
padding-top: 7px ;

Loading…
Annulla
Salva