Commit 59f8f5bc authored by Mat's avatar Mat

améliorations

parent cf181e2f
......@@ -4,6 +4,7 @@ namespace PotageBundle\Controller;
use PotageBundle\Entity\Commande;
use PotageBundle\Entity\CommandeLegumes;
use PotageBundle\Entity\Depot;
use PotageBundle\Entity\Groupe;
use PotageBundle\Entity\Lettre;
use PotageBundle\Entity\Offre;
......@@ -145,14 +146,21 @@ class MembreController extends MasterController
$total += $item->getPrix();
}
}
$commande->setPrixTotal($total);
$em = $this->getDoctrine()->getManager();
$em->persist($commande);
$em->flush();
$this->addFlash('success', 'Votre commande a bien été enregistrée.');
return $this->redirectToRoute('potage_resume');
if ($total !== 0) {
$commande->setPrixTotal($total);
$em = $this->getDoctrine()->getManager();
$em->persist($commande);
$em->flush();
$this->addFlash('success', 'Votre commande a bien été enregistrée.');
return $this->redirectToRoute('potage_resume');
} else {
$this->addFlash('warning', 'Votre panier est encore vide.');
}
}
......@@ -173,6 +181,7 @@ class MembreController extends MasterController
/**
* Récupère la chaîne d'objets
* User -> Utilisateur -> Groupes -> Lettres -> Offre -> Legumes
* -> Depot
*
* @param User $user
* @return \Doctrine\Common\Collections\Collection
......@@ -188,8 +197,12 @@ class MembreController extends MasterController
foreach ($groupes as $groupe)
{
/**
* @var Depot $depot
* @var Lettre $lettre
*/
$depot = $groupe->getDepot();
dump($depot);
$lettres = $groupe->getLettres();
foreach ($lettres as $lettre)
{
......
{% if groupe.lettres %}
{% for lettre in groupe.lettres %}
{% if lettre.offre.status == 'current' %}
<li>
<a href="{{ path('potage_today_one', { 'offre_ref': lettre.offre.reference }) }}" >
Offre {{ lettre.offre.reference }}
</a><br>
Infolettre {{ lettre.reference }} → Période du {{ lettre.startedAt|date('d/m/Y') }} au {{ lettre.endedAt|date('d/m/Y') }}<br>
Sujet: {{ lettre.subject }}<br>
Pour: Groupe de {{ groupe.nom }}
</li>
{% endif %}
{% endfor %}
{% endif %}
<h1>Les offres en cours</h1>
{% for groupe in groupes %}
{% if groupe.lettres %}
<div class="cartouche ml-5 mt-5">
<h3 class="mb-2">Groupe de {{ groupe.nom }}</h3>
<p>
<strong>Livraison</strong>: chaque
{{ groupe.depot.jourPanier|replace({
'1': 'lundi',
'2': 'mardi',
'3': 'mercredi',
'4': 'jeudi',
'5': 'vendredi',
'6': 'samedi',
'7': 'dimanche',
}) }}, à partir de
{{ groupe.depot.heurePanier|date('H:i') }}<br>
<strong>Point de dépôt</strong>: {{ groupe.depot.localisation }}<br>
{##}
</p>
</div>
<ul>
{% for lettre in groupe.lettres %}
{% if lettre.offre.status == 'current' %}
<li class="mb-3">
<a href="{{ path('potage_today_one', { 'offre_ref': lettre.offre.reference }) }}" >
Offre {{ lettre.offre.reference }}
</a><br>
<i class="far fa-envelope fa-fw"></i> {{ lettre.reference }} → Période du {{ lettre.startedAt|date('d/m/Y') }} au {{ lettre.endedAt|date('d/m/Y') }}<br>
Sujet: {{ lettre.subject }}<br>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endfor %}
<div class="col-7">
{% if offreOne is not null %}
<div class="col-7">
{% if groupeOne is not null %}
<div class="livraison">
<h3>Groupe de {{ groupeOne.nom }}</h3>
<p>
<strong>Livraison</strong>: chaque
{{ groupeOne.depot.jourPanier|replace({
'1': 'lundi',
'2': 'mardi',
'3': 'mercredi',
'4': 'jeudi',
'5': 'vendredi',
'6': 'samedi',
'7': 'dimanche',
}) }}, à partir de
{{ groupeOne.depot.heurePanier|date('H:i') }}<br>
<strong>Point de dépôt</strong>: {{ groupeOne.depot.localisation }}<br>
</p>
</div>
{% endif %}
</div>
<div class="col-5">
{% if app.user %}
<div class="user">
{% if app.user.utilisateur %}
<h3>{{ app.user.utilisateur.prenom }} {{ app.user.utilisateur.nom }}</h3>
{% endif %}
<div class="livraison">
<h3>Groupe de {{ groupeOne.nom }}</h3>
<p>
{% if is_granted('ROLE_SUPER_ADMIN') %}Administrateur<br>
{% elseif is_granted('ROLE_ADMIN') %}Maraîcher<br>{% else %}{% endif %}
Username: {{ app.user.username }}<br>
Email: {{ app.user.email }}<br>
{#
Dernière connexion: {{ app.user.lastLogin|date("d M Y, à H:i:s") }}
#}
<strong>Livraison</strong>: chaque
{{ groupeOne.depot.jourPanier|replace({
'1': 'lundi',
'2': 'mardi',
'3': 'mercredi',
'4': 'jeudi',
'5': 'vendredi',
'6': 'samedi',
'7': 'dimanche',
}) }}, à partir de
{{ groupeOne.depot.heurePanier|date('H:i') }}<br>
<strong>Point de dépôt</strong>: {{ groupeOne.depot.localisation }}<br>
</p>
</div>
{% endif %}
</div>
\ No newline at end of file
</div>
<div class="col-5">
{% if app.user %}
<div class="user">
{% if app.user.utilisateur %}
<h3>{{ app.user.utilisateur.prenom }} {{ app.user.utilisateur.nom }}</h3>
{% endif %}
<p>
{% if is_granted('ROLE_SUPER_ADMIN') %}Administrateur<br>
{% elseif is_granted('ROLE_ADMIN') %}Maraîcher<br>{% else %}{% endif %}
Username: {{ app.user.username }}<br>
Email: {{ app.user.email }}<br>
{#
Dernière connexion: {{ app.user.lastLogin|date("d M Y, à H:i:s") }}
#}
</p>
</div>
{% endif %}
</div>
{% endif %}
......@@ -12,6 +12,14 @@
</tbody>
</table>
{% for label, messages in app.flashes() %}
{% for message in messages %}
<div class="alert alert-{{ label }}" role="alert">
{{ message }}
</div>
{% endfor %}
{% endfor %}
{{ form_start(formCommande) }}
<ul id="commandeLegumes">
{% for legume in formCommande.commandeLegumes %}
......@@ -28,7 +36,6 @@
<span class="h1"><i class="far fa-lightbulb"></i></span>
Pour remplir votre panier, survolez les articles proposés et déplacez le curseur !
</p>
</div>
</div>
......
......@@ -22,14 +22,10 @@
{% else %}
{% if groupes %}
<ul>
{% for groupe in groupes %}
{# ou si aucune offre n'est pointée spécifiquement #}
{% include '@Potage/Membre/inc/lesOffres.html.twig' %}
{# ou si aucune offre n'est pointée spécifiquement #}
{% include '@Potage/Membre/inc/lesOffres.html.twig' %}
{% endfor %}
</ul>
{% else %}
<div class="alert alert-danger">Vous n'êtes dans aucun groupe !</div>
{% endif %}
......@@ -37,7 +33,7 @@
{% endif %}
<div class="row ">
<div class="row mb-5">
{% include '@Potage/Membre/inc/livraison.html.twig' %}
</div>
......
......@@ -26,7 +26,7 @@ let unItems = [];
let libItems = [];
gridItems.forEach(function(gridItem) {
unItems.push(gridItem.querySelector("span.unite").textContent);
libItems.push(gridItem.querySelector("div.texte h5").textContent);
libItems.push(gridItem.querySelector("div.texte h5").textContent); // TODO ne prendre que les 20 premiers caractères
});
let form = document.querySelector("form.formulaire_commande");
......@@ -91,8 +91,20 @@ gridItems.forEach(function(item)
// rafraîchit le tableau des légumes
resumePanier();
clearWarning();
});
}
// au scroll de la souris sur les articles
item.addEventListener('wheel', function()
{
let slider = this.querySelector("input.slider");
});
});
/*
......@@ -103,6 +115,18 @@ function ecrireLesQuantites(quantite, unite)
return quantite + ' ' + unite + (unite !== 'kg' && quantite > 1 ? 's' : '');
}
/*
* Supprime éventuellement tous les flashs warning
*/
function clearWarning()
{
let warningMessages = document.querySelectorAll("div.alert-warning");
warningMessages.forEach(function(message)
{
message.remove();
});
}
/*
* Tableau des articles du panier
*/
......
......@@ -455,6 +455,6 @@ input[type=range][orient=vertical] {
div#astuce {
padding: 2em;
background-color: #f1f1f1;
border-radius: 10px;
border-radius: 5px;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment