{% extends 'admin/hub/layout.html.twig' %} {% set hub_title = 'Mercuriale' %} {% set hub_breadcrumbs = [ { label: 'Mercuriale', url: path('app_produits_liste') }, { label: 'Apercu' } ] %} {% block title %}Preview Import - Mercuriale.io{% endblock %} {% block stylesheets %} {{ parent() }} {% endblock %} {% block hub_content %}

Previsualisation de l'import

{% include 'components/_import_progress.html.twig' with { current_step: 3 } only %} {# Import info #}
{{ import.originalFilename }}
{{ import.fournisseur.nom }} {% if import.etablissements|length > 0 %} - {{ import.etablissements|map(e => e.nom)|join(', ') }} {% else %} - Prix groupe {% endif %}
{{ import.totalRows }} lignes
{% if error %} {# Error state #}

Erreur lors de l'analyse

{{ error }}

Modifier le mapping
{% elseif preview %} {# Stats cards #}
{{ preview.totalRows }}
Lignes totales
{{ preview.createCount }}
Creations
{{ preview.updateCount }}
Mises a jour
{{ preview.errorRows }}
Erreurs
{# Success rate #} {% if preview.canProceed %}
Pret pour l'import — {{ preview.validRows }} lignes valides sur {{ preview.totalRows }} ({{ preview.successRate }}%)
{% else %}
Import impossible — {{ preview.errorRows }} ligne(s) contiennent des erreurs
{# Show first errors as summary #} {% set errorLines = preview.lines|filter(line => line.hasErrors)|slice(0, 5) %} {% if errorLines|length > 0 %}
Erreurs detectees :
{% if preview.errorRows > 5 %} {% endif %}
{% endif %} {% endif %} {# Lines detail #}

Detail des lignes

{% for line in preview.lines|slice(0, 100) %} {% endfor %}
Ligne Action Code Designation Unite Prix Statut
{{ line.row }} {% if line.action == 'create' %} Creation {% elseif line.action == 'update' %} Mise a jour {% elseif line.action == 'skip' %} Ignore {% else %} Erreur {% endif %} {{ line.codeFournisseur ?: '-' }} {{ line.designation ?: '-' }} {{ line.unite ?: '-' }} {% if line.prix %} {{ line.prix|number_format(4, ',', ' ') }} EUR {% else %} - {% endif %} {% if line.hasErrors %}
{% for error in line.errors %}
{{ error.message }}
{% endfor %}
{% elseif line.hasWarnings %}
{% for warning in line.warnings %}
{{ warning.message }}
{% endfor %}
{% else %} {% endif %}
{% if preview.lines|length > 100 %}
Affichage limite aux 100 premieres lignes ({{ preview.lines|length }} lignes au total)
{% endif %}
{# Actions #}
Modifier le mapping {% if preview.canProceed %}
{% else %} {% endif %}
{% endif %}
{% endblock %}