{# Bloc « Traitement » guidé — remplace l'ancien « Suivi des colis ». Lecture de bas en haut : la demande démarre en bas (dépôt), chaque étape franchie s'empile, l'étape EN COURS est le bloc de gestion tout en haut. Fil conducteur plein entre étapes passées, pointillé vers l'étape en cours. Rechargé en AJAX (?fragment=1) après chaque action : pas de refresh page. Attendu : demande, transporteurs, peutSaisirAller, peutSaisirRetour, allerTrackable, retourTrackable #} {% set s = demande.statut.value %} {% set allerPose = demande.numSuiviAller is not empty %} {% set retourPose = demande.numSuiviRetour is not empty %} {% set currentStep = s == 'nouvelle' ? 'validation' : (s == 'validee' and not allerPose ? 'aller' : (s == 'validee' ? 'reception' : (s == 'recue' ? 'retour' : (s == 'expediee' ? 'livraison' : null)))) %} {# Macro : saisie d'un numéro de suivi (formulaire compact réutilisé aller/retour). #} {% macro trackingForm(sens, transporteurs, transporteur, numero, url) %} {% set libre = transporteur and transporteur.value == 'libre' %}
{{ transporteur ? transporteur.label : 'Transporteur inconnu' }} {{ numero }} {% if lastStatus %} {{ lastStatus.label }} {% endif %} {% if publicUrl %}suivi public ↗{% endif %} {% if trackable %} {% endif %}
{% if checkedAt %}Vérifié le {{ checkedAt|date('d/m/Y à H:i') }}{% if deliveredAt %} · livré le {{ deliveredAt|date('d/m/Y à H:i') }}{% endif %}
{% endif %} {% endmacro %} {% import _self as flow %}Vérifiez le volume annoncé puis validez : l'établissement recevra les instructions d'expédition de ses lames.
Dès que l'établissement a remis son colis au transporteur, enregistrez le numéro de suivi : le client reçoit le lien de suivi et vous verrez le colis arriver.
{{ flow.trackingForm('aller', transporteurs, demande.transporteurAller, demande.numSuiviAller, demande.trackingUrlAller) }}Le colis est en route. Dès qu'il arrive à l'atelier, validez la réception : le client saura que ses lames sont entre vos mains et l'affûtage peut commencer.
Une fois les lames affûtées et le colis retour déposé chez le transporteur, enregistrez son suivi : la demande passe en « Retour expédié » et le client reçoit « vos lames sont en route ».
{{ flow.trackingForm('retour', transporteurs, demande.transporteurRetour, demande.numSuiviRetour, demande.trackingUrlRetour) }}Le retour est en route. La synchro du suivi passera la demande en « Livrée » automatiquement (toutes les 2 h) — ou validez-la manuellement dès confirmation. Aucun email client pour cette étape.