{% extends 'contact/base.html.twig' %} {% block contact_content %} {% set archivedSimulation = mission.demo or mission.request.simulated %} ← Toutes les consultations
CONSULTATION {{ '%03d'|format(mission.id) }} · {{ mission.request.externalReference }}

{{ mission.request.title }}

Un brief, les échanges fournisseurs et les réponses à comparer.

{{ mission.status }}
{% if archivedSimulation %}
Ancienne simulation archivée. Ces données fictives sont conservées pour historique. Elles sont exclues des consultations actives et du connecteur.
{% endif %}
Quantité{{ mission.brief.quantity|number_format(0, ',', ' ') }} pièces
Cible unitaire{{ mission.brief.targetPrice ?? 'À confirmer' }} {{ mission.brief.targetPrice ? mission.brief.currency : '' }}
Destination{{ mission.brief.destination }}

{{ mission.request.need }}

{% for spec in mission.request.specs %}
{{ spec.label }}
{{ spec.value }}
{% endfor %}
{% if mission.request.mainPhoto %}{{ mission.request.title }}{% endif %}
Consignes et fournisseurs autorisés

{{ mission.brief.requirements ?: 'Aucune consigne complémentaire.' }}

Consulter la fiche produit d’origine ↗
Message à transmettre
{{ mission.brief.message }}

Comparer les réponses {{ mission.replies|length }}

Actualiser ↻
{% if mission.replies is empty %}

Les réponses arriveront ici.

Accio peut déposer les réponses via le connecteur. Vous pouvez également recopier une réponse reçue.

{% else %}
{% for reply in mission.replies %}{% set p = reply.payload %}{% endfor %}
FournisseurPrix unitaireMinimumDélai annoncéRelecture
{{ p.supplierName }}{{ reply.source == 'simulation' ? 'Donnée fictive' : (reply.source == 'connector' ? 'Rapporté par le connecteur' : 'Saisi par l’équipe') }}{{ p.unitPrice ?? 'À confirmer' }} {{ p.unitPrice is not null ? p.currency : '' }}{{ p.moq is not null ? p.moq|number_format(0, ',', ' ') : 'À confirmer' }}{% if p.moq is not null and p.moq > mission.brief.quantity %}Au-dessus du besoin{% endif %}{{ p.leadTimeDays is not null ? p.leadTimeDays~' jours' : 'À confirmer' }}{{ mission.reviewed(reply) ? 'Relue' : 'À vérifier' }}

Prix annoncés, hors coûts non précisés. Aucun classement automatique. Une relecture n’est ni une commande ni une validation de conformité.

{% for reply in mission.replies %}{% set p = reply.payload %}

{{ p.supplierName }}

{{ reply.createdAt|date('d/m/Y H:i') }}

{{ p.message }}

{% endfor %}
{% endif %} {% if not archivedSimulation and not mission.closed %}
Ajouter une réponse reçue manuellement{% if replyErrors %}{% endif %}
{% for key,label in {externalId:'Identifiant unique de la réponse',supplierName:'Nom du fournisseur',supplierUrl:'Lien fournisseur',evidenceUrl:'Lien de la conversation, facultatif',unitPrice:'Prix unitaire, facultatif',moq:'Minimum de commande, facultatif',leadTimeDays:'Délai en jours, facultatif'} %}{% endfor %}
{% endif %}

Journal de la consultation

    {% for event in mission.events|reverse %}
  1. {{ event.createdAt|date('d/m H:i') }}
    {{ event.kind == 'reply' ? 'Réponse ajoutée · '~event.payload.supplierName : event.payload.label }}{{ event.source == 'simulation' ? 'Simulation locale' : (event.source == 'connector' ? 'Connecteur externe · à vérifier' : 'Équipe PÉPITE') }}
  2. {% endfor %}
{% if not mission.closed and not archivedSimulation %}{% endif %}
{% endblock %}