templates/panier/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}Panier{% endblock %}
  3. {% block stylesheets %}
  4. {{ parent() }}
  5. <style>
  6. th, td {
  7. max-width: 65px;
  8. }
  9. </style>
  10. {% endblock %}
  11. {% block body %}
  12. {# <pre>
  13. {{ dump() }}
  14. </pre> #}
  15. <div class="container pt-3">
  16. <div class="row">
  17. <div class="col">
  18. <div class="alert alert-dark shadow-lg p-3 mb-4 rounded" role="alert">
  19. Contenu du panier
  20. </div>
  21. {% for flashError in app.flashes('error') %}
  22. <div class="alert alert-danger" role="alert">{{ flashError }}</div>
  23. {% endfor %}
  24. {% for key, elements in dataPanier %}
  25. <div class="alert alert-dark shadow-lg p-3 mb-3 rounded" role="alert">
  26. {{ elements.0.service.date|format_date('full',locale="fr") }}
  27. (Service de
  28. {{ elements.0.service.debutService|format_datetime('none','short',locale="fr") }}
  29. à
  30. {{ elements.0.service.finService|format_datetime('none','short',locale="fr") }}
  31. )
  32. </div>
  33. <table class="table-responsive-sm">
  34. <table class="table">
  35. <thead>
  36. <tr>
  37. <th>Produit</th>
  38. {% if elements.0.service.prixVisible == true %}
  39. <th class="text-end">Prix</th>
  40. {% else %}
  41. <th></th>
  42. {% endif %}
  43. {% if elements.0.service.prixVisible == true %}
  44. {% endif %}
  45. <th class="text-center">Quantité</th>
  46. {% if elements.0.service.prixVisible == true %}
  47. <th class="text-end">Total</th>
  48. {% else %}
  49. <th></th>
  50. {% endif %}
  51. <th>Actions</th>
  52. </tr>
  53. </thead>
  54. <tbody>
  55. {% for element in elements %}
  56. <tr>
  57. <td>{{ element.preparation.libelle }}</td>
  58. {% if elements.0.service.prixVisible == true %}
  59. <td class="text-end">{{ element.prix|number_format(2,',','') }}</td>
  60. {% else %}
  61. <td></td>
  62. {% endif %}
  63. <td class="text-center">{{ element.quantite }}</td>
  64. {% if elements.0.service.prixVisible == true %}
  65. <td class="text-end">{{ (element.quantite * element.prix)|number_format(2,',','') }}</td>
  66. {% else %}
  67. <td></td>
  68. {% endif %}
  69. <td>
  70. {% if element.quantite >= element.quantite_restante %}
  71. <a href="{{ path('panier_add', {serviceId: element.service.id, prepaId: element.preparation.id}) }}" class="btn btn-success disabled" tabindex="-1" role="button" aria-disabled="true">
  72. <i class="fa-solid fa-plus"></i>
  73. </a>
  74. {% else %}
  75. <a href="{{ path('panier_add', {serviceId: element.service.id, prepaId: element.preparation.id}) }}" class="btn btn-success">
  76. <i class="fa-solid fa-plus"></i>
  77. </a>
  78. {% endif %}
  79. <a href="{{ path('panier_remove', {serviceId: element.service.id, prepaId: element.preparation.id}) }}" class="btn btn-warning">
  80. <i class="fa-solid fa-minus"></i>
  81. </a>
  82. <a href="{{ path('panier_delete', {serviceId: element.service.id, prepaId: element.preparation.id}) }}" class="btn btn-danger">
  83. <i class="fa-solid fa-x"></i>
  84. </a>
  85. </td>
  86. </tr>
  87. {% endfor %}
  88. </tbody>
  89. <tfoot>
  90. {% if elements.0.service.prixVisible == true %}
  91. <tr>
  92. <td colspan="3"><b>Total</b></td>
  93. <td class="text-end"><b>{{ total[key]|number_format(2,',','') }}</b></td>
  94. <td> € TTC</td>
  95. </tr>
  96. {% endif %}
  97. <tr>
  98. <td colspan="2">
  99. <a href="{{ path('client_service_show',{'id':key}) }}" class="btn btn-primary">
  100. <i class="fa-solid fa-plus"></i>
  101. Ajouter
  102. </a>
  103. </td>
  104. <td colspan="2">
  105. <a href="{{ path('panier_delete_service', {id: key}) }}" class="btn btn-danger">
  106. <i class="fa-solid fa-trash"></i>
  107. Vider
  108. </a>
  109. </td>
  110. <td>
  111. <a href="{{ path('panier_confirm_commande', {id: key}) }}" class="btn btn-success">
  112. <i class="fa-solid fa-check"></i>
  113. OK
  114. </a>
  115. </td>
  116. </tr>
  117. </tfoot>
  118. </table>
  119. </table>
  120. <div class="alert alert-dark shadow-lg p-3 mb-3 rounded" role="alert">
  121. <div>
  122. <small>Fermeture des commandes en ligne 10 min avant la fin du service</small>
  123. </div>
  124. </div>
  125. {% else %}
  126. <div class="alert alert-info">Votre panier est vide</div>
  127. {% endfor %}
  128. {# <a href="{{ path('services_semaine') }}" class="btn btn-primary">Retour à la semaine</a> #}
  129. </div>
  130. </div>
  131. </div>
  132. {% endblock %}