{# BOM Validation Results Component #} {# Usage: {% include 'projects/_bom_validation_results.html.twig' with { validation_result: validation_result, show_summary: true, show_details: true } %} #} {% if validation_result is defined and validation_result is not empty %} {% set stats = validation_result %} {# Validation Summary #} {% if show_summary is defined and show_summary %}
{% trans %}project.bom_import.validation.summary{% endtrans %}
{{ stats.total_entries }}
{% trans %}project.bom_import.validation.total_entries{% endtrans %}
{{ stats.valid_entries }}
{% trans %}project.bom_import.validation.valid_entries{% endtrans %}
{{ stats.invalid_entries }}
{% trans %}project.bom_import.validation.invalid_entries{% endtrans %}
{% if stats.total_entries > 0 %} {{ ((stats.valid_entries / stats.total_entries) * 100) | round(1) }}% {% else %} 0% {% endif %}
{% trans %}project.bom_import.validation.success_rate{% endtrans %}
{% endif %} {# Validation Messages #} {% if validation_result.errors is defined and validation_result.errors is not empty %}

{% trans %}project.bom_import.validation.errors.title{% endtrans %}

{% trans %}project.bom_import.validation.errors.description{% endtrans %}

{% endif %} {% if validation_result.warnings is defined and validation_result.warnings is not empty %}

{% trans %}project.bom_import.validation.warnings.title{% endtrans %}

{% trans %}project.bom_import.validation.warnings.description{% endtrans %}

{% endif %} {% if validation_result.info is defined and validation_result.info is not empty %}

{% trans %}project.bom_import.validation.info.title{% endtrans %}

{% endif %} {# Detailed Line-by-Line Results #} {% if show_details is defined and show_details and validation_result.line_results is defined %}
{% trans %}project.bom_import.validation.details.title{% endtrans %}
{% for line_result in validation_result.line_results %} {% endfor %}
{% trans %}project.bom_import.validation.details.line{% endtrans %} {% trans %}project.bom_import.validation.details.status{% endtrans %} {% trans %}project.bom_import.validation.details.messages{% endtrans %}
{{ line_result.line_number }} {% if line_result.is_valid %} {% trans %}project.bom_import.validation.details.valid{% endtrans %} {% else %} {% trans %}project.bom_import.validation.details.invalid{% endtrans %} {% endif %} {% if line_result.errors is not empty %}
{% for error in line_result.errors %}
{{ error|raw }}
{% endfor %}
{% endif %} {% if line_result.warnings is not empty %}
{% for warning in line_result.warnings %}
{{ warning|raw }}
{% endfor %}
{% endif %} {% if line_result.info is not empty %}
{% for info in line_result.info %}
{{ info|raw }}
{% endfor %}
{% endif %}
{% endif %} {# Action Buttons #} {% if validation_result.is_valid is defined %}
{% if validation_result.is_valid %}
{% trans %}project.bom_import.validation.all_valid{% endtrans %}
{% else %}
{% trans %}project.bom_import.validation.fix_errors{% endtrans %}
{% endif %}
{% endif %} {% endif %}