{% extends "layouts/base.twig" %} {% block title %}{{ translations.targets_metrics_title ?? 'Targety metryk' }} — {{ shop.getRepresentativeName() }}{% endblock %} {% block page_heading %}

{{ translations.targets_metrics_title ?? 'Targety metryk' }}

{{ shop.getRepresentativeName() }}

{% endblock %} {% block content %} {# ── FILTR OKRESU ─────────────────────────────────────────────────────────── #}
{# ── FORMULARZ TARGETÓW ──────────────────────────────────────────────────── #}

{{ translations.targets ?? 'Targety' }} — {{ months[month] }} {{ year }}

{# Makro wiersza metryki — translations przekazywane explicite (makra nie mają dostępu do zmiennych globalnych) #} {% macro metricRow(key, metric, adminTarget, consultantTarget, currency_symbol, translations) %} {% set col1 = adminTarget ? adminTarget.t1 : '' %} {% set col2 = adminTarget ? adminTarget.t2 : '' %} {% set col3 = adminTarget ? adminTarget.t3 : '' %} {{ metric.label }}
{% if metric.lower_is_better %} {{ translations.lower_is_better ?? 'niższy = lepiej' }} {% else %} {{ translations.higher_is_better ?? 'wyższy = lepiej' }} {% endif %}  ·  {% if metric.unit == 'pct' %}% {% elseif metric.unit == 'amount' %}{{ currency_symbol }} {% else %}{{ translations.unit_pcs ?? 'szt.' }} {% endif %} {% if key == 'net_margin_pct' %}
{{ translations.net_margin_note ?? 'Dotyczy marży netto: wynik netto / przychód' }} {% endif %} {% if key == 'b2b_clients_count' %}
{{ translations.b2b_clients_note ?? 'Unikalni klienci B2B z transakcją w miesiącu' }} {% endif %} {% if key == 'waste_pct' %}
{{ translations.waste_pct_note ?? 'Wartość odpadów (wg receptury brutto) / przychód netto × 100. Dane z ewidencji odpadów.' }} {% endif %} {% if consultantTarget %}
{{ translations.consultant ?? 'Konsultant' }}: {{ consultantTarget.t1 }} / {{ consultantTarget.t2 }} / {{ consultantTarget.t3 }} {% endif %} auto {% endmacro %} {# ── SEKCJA: Targety kosztowe (niższy = lepiej) ────────────────── #} {% for key, metric in metrics %} {% if metric.lower_is_better %} {{ _self.metricRow(key, metric, targets[key].admin ?? null, targets[key].consultant ?? null, currency_symbol, translations) }} {% endif %} {% endfor %}
{{ translations.cost_targets_heading ?? 'Targety kosztowe — niższy = lepiej' }}
{{ translations.metric ?? 'Metryka' }} 🟢 {{ translations.level_good ?? 'Dobry' }}
{{ translations.below_threshold_1 ?? '(poniżej progu 1)' }}
🟡 {{ translations.level_medium ?? 'Średni' }}
{{ translations.below_threshold_2 ?? '(poniżej progu 2)' }}
🟠 {{ translations.level_medium_bad_short ?? 'Śr. zły' }}
{{ translations.below_threshold_3 ?? '(poniżej progu 3)' }}
🔴 {{ translations.level_bad ?? 'Zły' }}
{{ translations.above_threshold_3 ?? '(od progu 3 wzwyż)' }}
{# ── SEKCJA: Targety biznesowe (wyższy = lepiej) ───────────────── #} {% for key, metric in metrics %} {% if not metric.lower_is_better %} {{ _self.metricRow(key, metric, targets[key].admin ?? null, targets[key].consultant ?? null, currency_symbol, translations) }} {% endif %} {% endfor %}
{{ translations.business_targets_heading ?? 'Targety biznesowe — wyższy = lepiej' }}
{{ translations.metric ?? 'Metryka' }} 🟢 {{ translations.level_good ?? 'Dobry' }}
{{ translations.above_threshold_1 ?? '(od progu 1 wzwyż)' }}
🟡 {{ translations.level_medium ?? 'Średni' }}
{{ translations.above_threshold_2 ?? '(od progu 2 wzwyż)' }}
🟠 {{ translations.level_medium_bad_short ?? 'Śr. zły' }}
{{ translations.above_threshold_3 ?? '(od progu 3 wzwyż)' }}
🔴 {{ translations.level_bad ?? 'Zły' }}
{{ translations.below_threshold_3 ?? '(poniżej progu 3)' }}
{# ── MODAL KOPIOWANIA Z INNEGO SKLEPU ────────────────────────────────────── #} {# ── MODAL POTWIERDZENIA KOPIOWANIA ──────────────────────────────────────── #} {% endblock %} {% block scripts %} {% endblock %}