{% extends 'app/base.html.twig' %} {% block title %}Mouvements de stock par mois{% endblock %} {% set moisNoms = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] %} {% set prevMois = mois - 1 %}{% set prevAnn = annee %} {% if prevMois < 1 %}{% set prevMois = 12 %}{% set prevAnn = annee - 1 %}{% endif %} {% set nextMois = mois + 1 %}{% set nextAnn = annee %} {% if nextMois > 12 %}{% set nextMois = 1 %}{% set nextAnn = annee + 1 %}{% endif %} {% set estMoisCourant = (annee == 'now'|date('Y')|number_format(0,'','') and mois == 'now'|date('n')|number_format(0,'','')) %} {% block body %}

Mouvements de stock

Entrées, sorties et ajustements (hors clôtures)
Retour aux stocks
{# ── Navigation mois ─────────────────────────────────────────────────── #}
{% if estMoisCourant %} {{ moisNoms[mois] }} {{ annee }} {% else %} {{ moisNoms[mois] }} {{ annee }} Mois actuel {% endif %} {% if moisDisponibles is not empty %} {% endif %}
{% if mouvements is empty %}
Aucun mouvement enregistré pour {{ moisNoms[mois] }} {{ annee }}.
{% else %}
{% for m in mouvements %} {% set ecart = m.quantite_apres - m.quantite_avant %} {% endfor %}
Date Produit Type Qté avant Qté après Écart Motif
{{ m.date_mouvement|date('d/m/Y H:i') }} {{ m.produit ?? '—' }} {% if m.type_mouvement == 'sortie' %} Sortie {% elseif m.type_mouvement == 'ajustement' %} Inventaire {% else %} Entrée {% endif %} {{ m.quantite_avant|number_format(3, ',', ' ') }} {{ m.unite ?? '' }} {{ m.quantite_apres|number_format(3, ',', ' ') }} {{ m.unite ?? '' }} {{ ecart >= 0 ? '+' : '' }}{{ ecart|number_format(3, ',', ' ') }} {{ m.motif ?? '—' }}
{% endif %} {% endblock body %}