{% extends 'layout/app.html.twig' %} {% block title %}Demandes - Portail{% endblock %} {% block breadcrumb %}Demandes{% endblock %} {% block app_content %}

Demandes

Les produits recherchés, importés du Radar. Chaque sourceur ne voit que les demandes qui lui sont adressées.

{{ app.environment in ['dev', 'test'] ? 'Synchronisation Radar' : 'Importer un JSON Radar' }}

{{ requests|length }} produit(s) · Import JSON manuel

{% if requests is empty %}
Aucune demande pour le moment. Reliez le Radar pour importer les produits en Sourcing, ou utilisez l’import JSON manuel.
{% else %}
{% for item in requests %} {% set photo = item.mainPhoto %} {% set assigned = item.activeAssignments %} {% endfor %}
Référence Produit Sourceurs assignés Propositions Importée le Statut
{% if photo %}{% endif %} {{ item.externalReference }} {{ item.title }} {% if assigned is empty %}à adresser {% else %}{{ assigned|map(a => a.sourcer.name)|join(', ') }}{% endif %} {# États calculés à la lecture, jamais stockés. #} {% set states = item.assignments|filter(a => a.proposal)|map(a => a.proposal.state.value) %} {% set parts = [] %} {% for value, label in { pending: 'à traiter', adjustment_requested: 'en ajustement', accepted: 'acceptée', rejected: 'refusée' } %} {% set count = states|filter(s => s == value)|length %} {% if count > 0 %}{% set parts = parts|merge([count ~ ' ' ~ label ~ (count > 1 and value in ['accepted', 'rejected'] ? 's' : '')]) %}{% endif %} {% endfor %} {% if parts is empty %}—{% else %}{{ parts|join(' · ') }}{% endif %} {{ item.importedAt|date('d/m/Y') }} {{ item.status.label }} Ouvrir
{% endif %} {% endblock %}